demo_term/demko_term/AcceptStatementWindow.axaml.cs
2025-04-14 08:39:47 +03:00

85 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using demko_term.Models;
namespace demko_term;
public partial class AcceptStatementWindow : Window
{
public List<string> AcceptApplicantList { get; }
public List<string> AcceptSpecialtyList { get; }
public AcceptStatementWindow()
{
using var context = new DemoCourseworkContext();
InitializeComponent();
AcceptApplicantList = context.Applicants.Select(a => a.Code.ToString()).ToList();
AcceptApplicantComboBox.ItemsSource = AcceptApplicantList;
AcceptSpecialtyList = context.Specialties.Select(s => s.Code).ToList();
AcceptSpecialtyListBox.ItemsSource = AcceptSpecialtyList;
}
private void AcceptStatementButton_OnClick(object? sender, RoutedEventArgs e)
{
using var context = new DemoCourseworkContext();
if (AcceptApplicantComboBox.SelectedItem == null || AcceptSpecialtyListBox.SelectedItems == null)
{
return;
}
string selectedApplicantCodeStr = AcceptApplicantComboBox.SelectedItem.ToString()!;
var applicant = context.Applicants.FirstOrDefault(a => a.Code.ToString() == selectedApplicantCodeStr);
if (applicant == null)
{
return;
}
int? points = null;
if (int.TryParse(PointsTextBox.Text, out int parsedPoints))
{
points = parsedPoints;
}
foreach (var selectedSpecialtyCode in AcceptSpecialtyListBox.SelectedItems.Cast<string>())
{
var specialty = context.Specialties.FirstOrDefault(s => s.Code == selectedSpecialtyCode);
if (specialty == null)
continue;
string personalNumber = $"{specialty.Code}-{applicant.Code}";
var statement = new Statement
{
PersonalNumber = personalNumber,
SubmissionDate = DateOnly.FromDateTime(DateTime.Now),
SubmissionTime = TimeOnly.FromDateTime(DateTime.Now),
ApplicantCode = applicant.Id,
ApplicantSpeciality = specialty.Id,
Passport = PassportCheckBox.IsChecked,
Diploma = DiplomaCheckBox.IsChecked,
Points = points
};
context.Statements.Add(statement);
}
context.SaveChanges();
}
private void CreateApplicantWindowButton_OnClick(object? sender, RoutedEventArgs e)
{
CreateApplicantWindow ordersWindow = new CreateApplicantWindow();
ordersWindow.ShowDialog(this);
}
}