Clienty/Clienty/MainWindow.axaml.cs
Guitaras_Fingerchpoker cb72cb6ed6 first commit
2025-05-15 15:13:12 +03:00

114 lines
3.9 KiB
C#

using Avalonia.Controls;
using Clienty.Models;
using System;
using System.Collections.Generic;
using System.Linq;
namespace Clienty
{
public partial class MainWindow : Window
{
List<Client> filteredClientList = new List<Client>();
public MainWindow()
{
InitializeComponent();
Listbox.ItemsSource = Helper.ClientList;
// Список для ComboBox "Пол"
List<string> polList = new List<string>
{
"По умолчанию",
"мужчины",
"женщины"
};
FiltrPoPolu.ItemsSource = polList;
// Список для ComboBox "Отсортировать по"
List<string> sortList = new List<string>
{
"в алфавитном порядке",
"по дате регистрации"
};
FiltVsyakoe.ItemsSource = sortList;
}
private void TextBox_TextChanged(object? sender, Avalonia.Controls.TextChangedEventArgs e)
{
Change();
}
private void ComboBox_SelectionChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
{
Change();
}
private void ComboBox_SelectionChanged_1(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
{
Change();
}
public void Change()
{
try
{
filteredClientList = Helper.ClientList;
// search
if (!string.IsNullOrEmpty(SearchClient.Text) || !string.IsNullOrWhiteSpace(SearchClient.Text))
{
var searchText = SearchClient.Text.ToLower().Trim();
filteredClientList = string.IsNullOrWhiteSpace(searchText)
? Helper.ClientList.ToList() // Если нет текста, показываем всех клиентов
: Helper.ClientList.Where(c =>
c.Firstname.ToLower().Contains(searchText) ||
c.Lastname.ToLower().Contains(searchText) ||
(c.Patronymic != null && c.Patronymic.ToLower().Contains(searchText)) ||
(c.Email != null && c.Email.ToLower().Contains(searchText)) ||
c.Phone.Contains(searchText)
).ToList();
}
// sort
switch (FiltVsyakoe.SelectedIndex)
{
case 0:
filteredClientList = filteredClientList.OrderBy(c => c.Lastname).ToList();
break;
case 1:
filteredClientList = filteredClientList.OrderBy(c => c.Registrationdate).ToList();
break;
}
// filter
if (FiltrPoPolu.SelectedIndex > 0)
{
var selectedGender = FiltrPoPolu.SelectedIndex > 0 && FiltrPoPolu.SelectedItem.ToString() == "мужчины" ? 1 : 2;
filteredClientList = filteredClientList.Where(c => c.Gendercode == selectedGender.ToString().ToCharArray()[0]).ToList();
}
Listbox.ItemsSource = filteredClientList;
}
catch
{
return;
}
//Kolich.Text =
}
private async void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
await new AddEdit().ShowDialog(this);
Change();
}
private async void Border_DoubleTapped(object? sender, Avalonia.Input.TappedEventArgs e)
{
//var clientId = int.Parse(((sender as Border).Tag as string));
//await new AddEdit(clientId).ShowDialog(this);
//Change();
}
}
}