Agents/MainWindow.axaml.cs

168 lines
6.7 KiB
C#
Raw Permalink Normal View History

2025-03-24 09:34:12 +00:00
using Avalonia.Controls;
using System;
using Agents.Models;
using System.Collections.ObjectModel;
using Avalonia.Interactivity;
using System.Linq;
using System.Runtime.ExceptionServices;
namespace Agents
{
public partial class MainWindow : Window
{
2025-04-05 17:05:02 +00:00
static User11Context db = new User11Context(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>
ObservableCollection<Agent> AgentsitemSource = new ObservableCollection<Agent>(db.Agents.OrderBy(it=>it.Title)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ObservableCollection<Agent> ListAgents2; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-24 09:34:12 +00:00
public MainWindow()
{
InitializeComponent();
2025-04-05 17:05:02 +00:00
2025-03-24 09:34:12 +00:00
ListAgents.ItemsSource = AgentsitemSource;
2025-03-29 19:54:15 +00:00
ListAgents2 = AgentsitemSource;
2025-03-24 09:34:12 +00:00
}
2025-04-05 17:05:02 +00:00
private void SortAg(object? sender, Avalonia.Controls.SelectionChangedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-24 09:34:12 +00:00
{
2025-04-05 17:05:02 +00:00
SortAgent();
2025-03-24 09:34:12 +00:00
}
2025-04-05 17:05:02 +00:00
private void ListAgents_SelectionChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-24 09:34:12 +00:00
{
2025-04-05 17:05:02 +00:00
UpdateInfoListProduct();
2025-03-29 19:54:15 +00:00
}
2025-04-05 17:05:02 +00:00
private void SortListProductAgents_method(object? sender, Avalonia.Controls.SelectionChangedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-29 19:54:15 +00:00
{
2025-04-05 17:05:02 +00:00
UpdateInfoListProduct();
2025-03-29 19:54:15 +00:00
}
2025-04-05 17:05:02 +00:00
void SortAgent() // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-29 19:54:15 +00:00
{
2025-04-05 17:05:02 +00:00
switch (SortListAgents.SelectedIndex)
2025-03-29 19:54:15 +00:00
{
2025-04-05 17:05:02 +00:00
case 1: AgentsitemSource = new ObservableCollection<Agent>(AgentsitemSource.OrderByDescending(it => it.Title).ToList()); break; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
case 2: AgentsitemSource = new ObservableCollection<Agent>(AgentsitemSource.OrderBy(it => it.Title).ToList()); break; // <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
default: AgentsitemSource = ListAgents2; break; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-24 09:34:12 +00:00
}
2025-04-05 17:05:02 +00:00
ListAgents.ItemsSource = new ObservableCollection<Agent>(AgentsitemSource);
2025-03-24 09:34:12 +00:00
}
2025-04-05 17:05:02 +00:00
private void UpdateInfoListProduct() // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
2025-03-24 09:34:12 +00:00
{
2025-04-05 17:05:02 +00:00
Agent? agent = db.Agents.Where(it => it == ListAgents.SelectedItem).FirstOrDefault(); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (agent != null)
2025-03-24 09:34:12 +00:00
{
Productsale? PS = db.Productsales.Where(it => it.Agentid == agent.Id).FirstOrDefault();
2025-03-24 09:34:12 +00:00
var prods = db.Productsales
.Where(PWS => PWS.Agentid == agent.Id)
2025-04-05 17:05:02 +00:00
.Select(PWS => new ProductDTO
2025-03-24 09:34:12 +00:00
{
Title = PWS.Product.Title,
Image = PWS.Product.Image,
Producttypeid = PWS.Product.Producttypeid,
Productionpersoncount = PWS.Product.Productionpersoncount,
Mincostforagent = PWS.Product.Mincostforagent,
Description = PWS.Product.Description,
2025-04-05 17:05:02 +00:00
Articlenumber = PWS.Product.Articlenumber,
SalesCount = db.Productsales.Where(it => it.Productid == PWS.Productid).Count(),
ProductDiscount = productDiscount(db.Productsales.Where(it => it.Productid == PWS.Productid).Count())
2025-03-24 09:34:12 +00:00
}).ToList();
2025-03-29 19:54:15 +00:00
switch (SortListProductAgents.SelectedIndex)
2025-03-24 09:34:12 +00:00
{
case 1: prods = prods.OrderBy(p => p.Title).ToList(); break;
case 2: prods = prods.OrderByDescending(p => p.Title).ToList(); break;
default: break;
}
2025-04-05 17:05:02 +00:00
ListProducts.ItemsSource = new ObservableCollection<ProductDTO>(prods);
2025-03-24 09:34:12 +00:00
}
}
2025-04-05 17:05:02 +00:00
2025-03-29 19:54:15 +00:00
2025-04-05 17:05:02 +00:00
static int productDiscount(int SalesCount) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
2025-04-05 17:05:02 +00:00
int Discount = 0;
if (10_000 <= SalesCount && SalesCount < 50_000)
{
Discount = 5;
}
else if (50_000 <= SalesCount && SalesCount < 150_000)
{
Discount = 10;
}
else if (150_000 <= SalesCount && SalesCount < 500_000)
{
Discount = 20;
}
else if (SalesCount>500_000)
{
Discount = 25;
}
2025-04-05 17:05:02 +00:00
return Discount;
}
2025-04-05 17:05:02 +00:00
void Button_search(object sender, RoutedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-03-29 19:54:15 +00:00
{
string? Search = search.Text;
if (search.Text != "")
{
2025-04-05 17:05:02 +00:00
AgentsitemSource = new ObservableCollection<Agent>(db.Agents.Where(it => it.Title == search.Text ||
it.Address == search.Text ||
it.Inn == search.Text ||
it.Kpp == search.Text ||
it.Directorname == search.Text ||
it.Phone == search.Text ||
it.Email == search.Text
2025-03-29 19:54:15 +00:00
));
if (AgentsitemSource != null)
{
ListAgents.ItemsSource = AgentsitemSource;
ListAgents2 = AgentsitemSource;
SortAgent();
}
else
{
ListAgents.ItemsSource = null;
}
}
else
{
AgentsitemSource = new ObservableCollection<Agent>(db.Agents.OrderBy(it => it.Title));
ListAgents2 = AgentsitemSource;
SortAgent();
}
}
2025-04-05 17:05:02 +00:00
private void ButtonUpdate(object sender, RoutedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
UpdateInfoListProduct();
}
private void ButtonAgentEidtor(object sender, RoutedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
new AgentEidtor().Show();
Close();
}
private void ButtonProductEidtor(object sender, RoutedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
new ProductEditor().Show();
Close();
}
private void ButtonAddProduct(object sender, RoutedEventArgs e) // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
new AddProduct().Show();
Close();
}
2025-03-24 09:34:12 +00:00
}
}