121 lines
3.4 KiB
C#
121 lines
3.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.ObjectModel;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text.RegularExpressions;
|
|
using Avalonia.Controls;
|
|
using Avalonia.Input;
|
|
using Avalonia.Interactivity;
|
|
using Avalonia.Media.Imaging;
|
|
using demo4_true.Models;
|
|
using demo4_true.ModelsMy;
|
|
|
|
namespace demo4_true;
|
|
|
|
public partial class MainWindow : Window
|
|
{
|
|
ObservableCollection<EventPresenter> events = new ObservableCollection<EventPresenter>();
|
|
List<EventPresenter> dataSourceEvent;
|
|
ObservableCollection<ClientAuth> authClients = new ObservableCollection<ClientAuth>();
|
|
List<ClientAuth> dataSourceClient;
|
|
public List<string> DirectionsList { get; }
|
|
public List<DateTime> DatesList { get; }
|
|
public static ObservableCollection<ClientAuth> ClientAuthList { get; set; }
|
|
|
|
public MainWindow()
|
|
{
|
|
InitializeComponent();
|
|
using var context = new Demo4Context();
|
|
|
|
dataSourceEvent = context.Events.Select(it => new EventPresenter
|
|
{
|
|
Sobitie = it.Sobitie,
|
|
Date = it.Date,
|
|
Days = it.Days,
|
|
City = it.City,
|
|
Photopath = it.Photopath,
|
|
DirectionId = it.DirectionId,
|
|
}).ToList();
|
|
EventListBox.ItemsSource = events;
|
|
|
|
dataSourceClient = context.Clients.Select(it => new ClientAuth
|
|
{
|
|
Id = it.Id,
|
|
Password = it.Password,
|
|
Role = it.Role,
|
|
FIO = it.Fio,
|
|
PhotoPath = it.Photopath,
|
|
}).ToList();
|
|
|
|
DirectionsList = context.Directions.Select(it => it.Name).ToList();
|
|
DirectionComboBox.ItemsSource = DirectionsList;
|
|
DatesList = dataSourceEvent.Select(s => s.Date).ToList();
|
|
DateComboBox.ItemsSource = DatesList;
|
|
|
|
DisplayServices();
|
|
}
|
|
|
|
public class EventPresenter() : Event
|
|
{
|
|
Bitmap? Image
|
|
{
|
|
get
|
|
{
|
|
try
|
|
{
|
|
string absolutePath = Path.Combine(AppContext.BaseDirectory, Photopath);
|
|
return new Bitmap(absolutePath);
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void DisplayServices()
|
|
{
|
|
var temp = dataSourceEvent;
|
|
var temp2 = dataSourceClient;
|
|
|
|
events.Clear();
|
|
if (DirectionComboBox != null)
|
|
{
|
|
temp = temp.Where(it => it.Direction == DirectionComboBox.SelectedItem).ToList();
|
|
}
|
|
if (DateComboBox.SelectedItem != null)
|
|
{
|
|
DateTime selectedDate = (DateTime)DateComboBox.SelectedItem;
|
|
temp = temp.Where(it => it.Date.Date == selectedDate.Date).ToList();
|
|
}
|
|
|
|
foreach (var item in temp)
|
|
{
|
|
events.Add(item);
|
|
}
|
|
|
|
foreach (var item in temp2)
|
|
{
|
|
authClients.Add(item);
|
|
}
|
|
ClientAuthList = authClients;
|
|
}
|
|
|
|
private void AuthButton_OnClick(object? sender, RoutedEventArgs e)
|
|
{
|
|
Auth auth = new Auth();
|
|
auth.ShowDialog(this);
|
|
}
|
|
|
|
private void DirectionComboBox_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
|
|
{
|
|
DisplayServices();
|
|
}
|
|
|
|
private void DateComboBox_OnSelectionChanged(object? sender, SelectionChangedEventArgs e)
|
|
{
|
|
DisplayServices();
|
|
}
|
|
} |