Service/AvaloniaAppApplication/ClientServiceWindow.axaml.cs
Guitaras_Fingerchpoker e5d1f72e7d first commit
2025-05-15 11:20:37 +03:00

146 lines
4.8 KiB
C#
Raw Permalink Blame History

using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using AvaloniaAppApplication.Context;
using AvaloniaAppApplication.DTO;
using AvaloniaAppApplication.Models;
using Microsoft.EntityFrameworkCore;
using MsBox.Avalonia;
using System;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text;
namespace AvaloniaAppApplication;
public partial class ClientServiceWindow : Window
{
string time = "";
string date = "";
ServiceDTO currentService;
User19Context dbContext = new User19Context();
public ClientServiceWindow(ServiceDTO service)
{
InitializeComponent();
currentService = service;
DataContext = currentService;
ComboClients.ItemsSource = dbContext.Clients.Select(c => c.Firstname + " " + c.Lastname + " " + c.Patronymic);
}
private void TextBox_TextChanged(object? sender, Avalonia.Controls.TextChangedEventArgs e)
{
try
{
DateTime parsedStartTime;
string characters = "0123456789.:";
string processedText = ServiceStartTimeTX.Text ?? string.Empty;
string[] timeFormats = {
"HH.mm",
"H.mm",
"HH:mm",
"H:mm"
};
if (DateTime.TryParseExact(processedText, timeFormats, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedStartTime))
{
ServiceStartTimeBorder.BorderBrush = new SolidColorBrush(Colors.Green);
time = parsedStartTime.ToString("HH:mm");
ManageEndDateTime();
}
else
{
ServiceStartTimeBorder.BorderBrush = new SolidColorBrush(Colors.Red);
}
}
catch
{
return;
}
}
string startDateTimeString;
public void ManageEndDateTime()
{
try
{
if (!string.IsNullOrEmpty(date) && !string.IsNullOrEmpty(time) && int.TryParse(DurationInMinutesTN.Text, out int minutes))
{
startDateTimeString = date + " " + time;
string[] formats = { "dd.MM.yy HH:mm", "d.M.yyyy H:mm" };
if (DateTime.TryParseExact(startDateTimeString, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime startDateTime))
{
DateTime endDateTime = startDateTime.AddMinutes(minutes);
string endDateTimeString = endDateTime.ToString("dd.MM.yyyy HH.mm", CultureInfo.InvariantCulture); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CultureInfo
ServiceEndTimeTB.Text = endDateTimeString;
}
else
{
ServiceEndTimeTB.Text = string.Empty; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
}
}
catch (Exception ex)
{
return;
}
}
private void Calendar_SelectedDatesChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
{
var selectedDate = (DateTime)((Avalonia.Controls.Calendar)sender).SelectedDate;
date = selectedDate.ToString("dd.MM.yy");
ManageEndDateTime();
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
private async void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
try
{
StringBuilder errors = new StringBuilder();
IBrush red = new SolidColorBrush(Colors.Red);
bool isBorderBrushRed = ServiceStartTimeBorder.BorderBrush is SolidColorBrush solidBrush
&& solidBrush.Color == Colors.Red;
if (ComboClients.SelectedIndex == -1)
errors.AppendLine("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
if (isBorderBrushRed
|| ServiceStartTimeTX.Text == null
|| CalendarControl.SelectedDate == null)
errors.AppendLine("<22><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
if (errors != null && errors.Length > 0)
{
var msBox = MessageBoxManager.GetMessageBoxStandard("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!", errors.ToString());
var rs = msBox.ShowWindowDialogAsync(this);
return;
}
Clientservice newClientService = new Clientservice()
{
Clientid = ComboClients.SelectedIndex + 1,
Starttime = startDateTimeString,
Serviceid = currentService.Id
};
dbContext.Clientservices.Add(newClientService);
dbContext.SaveChanges();
var msbox = MessageBoxManager.GetMessageBoxStandard("OK!", "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
var res = await msbox.ShowWindowDialogAsync(this);
Close();
}
catch
{
return;
}
}
}