Vizual_Zurnal/Zurnal_Vizual/Views/MainWindow.axaml.cs
2024-12-06 10:26:58 +03:00

101 lines
3.1 KiB
C#
Raw Blame History

using Avalonia.Controls;
using data.RemoteData.RemoteDataBase.DAO;
using ReactiveUI;
using System;
using System.Collections.ObjectModel;
using System.Reactive;
namespace Views.MainWindow
{
public class MainViewModel : ReactiveObject
{
private ObservableCollection<GroupDao> _groups;
private GroupDao _selectedGroup;
private ObservableCollection<UserDao> _students;
private string _selectedSortOption;
public ObservableCollection<GroupDao> Groups
{
get => _groups;
set => this.RaiseAndSetIfChanged(ref _groups, value);
}
public GroupDao SelectedGroup
{
get => _selectedGroup;
set
{
this.RaiseAndSetIfChanged(ref _selectedGroup, value);
LoadStudents();
}
}
public ObservableCollection<UserDao> Students
{
get => _students;
set => this.RaiseAndSetIfChanged(ref _students, value);
}
public string SelectedSortOption
{
get => _selectedSortOption;
set
{
this.RaiseAndSetIfChanged(ref _selectedSortOption, value);
SortStudents();
}
}
public ReactiveCommand<Unit, Unit> DeleteAllStudentsCommand { get; }
public ReactiveCommand<Unit, Unit> ImportStudentsCommand { get; }
private ObservableCollection<string> _sortOptions;
public ObservableCollection<string> SortOptions
{
get => _sortOptions;
set => this.RaiseAndSetIfChanged(ref _sortOptions, value);
}
public MainViewModel()
{
DeleteAllStudentsCommand = ReactiveCommand.Create(DeleteAllStudents);
ImportStudentsCommand = ReactiveCommand.Create(ImportStudents);
Groups = new ObservableCollection<GroupDao>();
Students = new ObservableCollection<UserDao>();
SortOptions = new ObservableCollection<string> { "<22><> <20><><EFBFBD><EFBFBD><EFBFBD>", "<22><> <20><><EFBFBD><EFBFBD>" };
}
public void LoadStudents()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> Excel <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
public void SortStudents()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> Id
}
public void DeleteAllStudents()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> Id
}
public void ImportStudents()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
public void ShowContextMenu(Window window)
{
var contextMenu = new ContextMenu();
var deleteItem = new MenuItem { Header = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" };
deleteItem.Click += (sender, e) => DeleteAllStudentsCommand.Execute().Subscribe();
contextMenu.Items.Add(deleteItem);
var importItem = new MenuItem { Header = "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" };
importItem.Click += (sender, e) => ImportStudentsCommand.Execute().Subscribe();
contextMenu.Items.Add(importItem);
window.ContextMenu = contextMenu;
}
}
}