1
@@ -1,7 +1,7 @@
|
|||||||
<Application xmlns="https://github.com/avaloniaui"
|
<Application xmlns="https://github.com/avaloniaui"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
x:Class="demoBicycle.App"
|
x:Class="demoBicycle.App"
|
||||||
RequestedThemeVariant="Default">
|
RequestedThemeVariant="Light">
|
||||||
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
|
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
|
||||||
|
|
||||||
<Application.Styles>
|
<Application.Styles>
|
||||||
|
|||||||
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -1,8 +0,0 @@
|
|||||||
<Window xmlns="https://github.com/avaloniaui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
|
||||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
|
||||||
x:Class="demoBicycle.MainWindow"
|
|
||||||
Title="demoBicycle">
|
|
||||||
</Window>
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
using Avalonia.Controls;
|
|
||||||
|
|
||||||
namespace demoBicycle;
|
|
||||||
|
|
||||||
public partial class MainWindow : Window
|
|
||||||
{
|
|
||||||
public MainWindow()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -16,4 +16,12 @@ public partial class Adress
|
|||||||
public string HouseNumber { get; set; } = null!;
|
public string HouseNumber { get; set; } = null!;
|
||||||
|
|
||||||
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
||||||
|
|
||||||
|
public string AllAdress
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return $"г. {CityName}, ул. {StreetName}, {HouseNumber}";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.ComponentModel.DataAnnotations.Schema;
|
||||||
|
|
||||||
namespace demoBicycle.Models;
|
namespace demoBicycle.Models;
|
||||||
|
|
||||||
@@ -26,4 +27,18 @@ public partial class Order
|
|||||||
public virtual OrderType OrderType { get; set; } = null!;
|
public virtual OrderType OrderType { get; set; } = null!;
|
||||||
|
|
||||||
public virtual User User { get; set; } = null!;
|
public virtual User User { get; set; } = null!;
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public DateTimeOffset DateTimeOffsetOrder
|
||||||
|
{
|
||||||
|
get => new(OrderDate.ToDateTime(TimeOnly.MinValue));
|
||||||
|
set => OrderDate = DateOnly.FromDateTime(value.DateTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
[NotMapped]
|
||||||
|
public DateTimeOffset DateTimeOffsetDelivery
|
||||||
|
{
|
||||||
|
get => new(OrderDeliviry.ToDateTime(TimeOnly.MinValue));
|
||||||
|
set => OrderDeliviry = DateOnly.FromDateTime(value.DateTime);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,4 +10,8 @@ public partial class OrderType
|
|||||||
public string OrderTypeName { get; set; } = null!;
|
public string OrderTypeName { get; set; } = null!;
|
||||||
|
|
||||||
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return OrderTypeName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,4 +18,8 @@ public partial class User
|
|||||||
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
public virtual ICollection<Order> Orders { get; set; } = new List<Order>();
|
||||||
|
|
||||||
public virtual UserType UserType { get; set; } = null!;
|
public virtual UserType UserType { get; set; } = null!;
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return UserName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
<Window xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="demoBicycle.MainWindow"
|
||||||
|
Title="Вход"
|
||||||
|
Icon="/Assets/icon.png">
|
||||||
|
<Grid ColumnDefinitions="*,*" RowDefinitions="*,*,*">
|
||||||
|
<StackPanel Grid.RowSpan="3" VerticalAlignment="Center" HorizontalAlignment="Center">
|
||||||
|
<Image Name="Image1"/>
|
||||||
|
<TextBlock Text="Добро пожаловать!"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Column="1" Grid.Row="1" Spacing="10" Margin="5">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Login:"/>
|
||||||
|
<TextBox Name="LoginTextBox" Text="94d5ous@gmail.com"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Password:"/>
|
||||||
|
<TextBox Name="PasswordTextBox" Text="uzWC67"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<Button Content="Войти" Click="Button_Click"/>
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using Avalonia.Controls;
|
||||||
|
using demoBicycle.Context;
|
||||||
|
using demoBicycle.Models;
|
||||||
|
using demoBicycle.Windows;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace demoBicycle;
|
||||||
|
|
||||||
|
public partial class MainWindow : Window
|
||||||
|
{
|
||||||
|
DemoBicycleContext context = null!;
|
||||||
|
public MainWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
context = new();
|
||||||
|
if (context.Users.FirstOrDefault(x => x.Login == LoginTextBox.Text && x.Password == PasswordTextBox.Text) is User user)
|
||||||
|
{
|
||||||
|
new MenuWindow().Show();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<Window xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:models="using:demoBicycle.Models"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="demoBicycle.Windows.MenuWindow"
|
||||||
|
Title="Основное меню">
|
||||||
|
<Grid RowDefinitions="100,*">
|
||||||
|
<TabControl Grid.Row="1">
|
||||||
|
<TabItem Header="Товары">
|
||||||
|
<Grid>
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
</TabItem>
|
||||||
|
|
||||||
|
<TabItem Header="Заказы">
|
||||||
|
<Grid RowDefinitions="100,*">
|
||||||
|
<Button Margin="5" Content="Создать" Click="Button_Click"/>
|
||||||
|
<ScrollViewer Grid.Row="1">
|
||||||
|
<ItemsControl Name="OrdersItemsControl">
|
||||||
|
<ItemsControl.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:Order">
|
||||||
|
<Border BorderBrush="Black" BorderThickness="2" Background="White" DoubleTapped="Border_DoubleTapped">
|
||||||
|
<Grid ColumnDefinitions="*,200">
|
||||||
|
<StackPanel Spacing="10">
|
||||||
|
<TextBlock Text="{Binding Id, StringFormat='Артикул заказа: {0}'}" FontWeight="Bold"/>
|
||||||
|
<TextBlock Text="{Binding OrderType.OrderTypeName, StringFormat='Статус заказа: {0}'}"/>
|
||||||
|
<TextBlock Text="{Binding Adress.AllAdress, StringFormat='Адрес пункта выдачи: {0}'}"/>
|
||||||
|
<TextBlock Text="{Binding OrderDate, StringFormat='Дата заказа: {0}'}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<Border BorderBrush="Black" BorderThickness="2" Margin="5" Grid.Column="1">
|
||||||
|
<TextBlock Text="{Binding OrderDeliviry}"/>
|
||||||
|
</Border>
|
||||||
|
</Grid>
|
||||||
|
</Border>
|
||||||
|
</DataTemplate>
|
||||||
|
</ItemsControl.ItemTemplate>
|
||||||
|
</ItemsControl>
|
||||||
|
</ScrollViewer>
|
||||||
|
</Grid>
|
||||||
|
</TabItem>
|
||||||
|
</TabControl>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
|
using demoBicycle.Context;
|
||||||
|
using demoBicycle.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace demoBicycle.Windows
|
||||||
|
{
|
||||||
|
public partial class MenuWindow : Window
|
||||||
|
{
|
||||||
|
DemoBicycleContext context = null!;
|
||||||
|
List<Order> orders = null!;
|
||||||
|
public static MenuWindow Current = null!;
|
||||||
|
public MenuWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
Load();
|
||||||
|
Current = this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Load()
|
||||||
|
{
|
||||||
|
context = new();
|
||||||
|
orders = new();
|
||||||
|
orders = context.Orders.Include(x => x.OrderType).Include(x => x.Adress).Include(x => x.OrderProducts).ThenInclude(x => x.Product).ToList();
|
||||||
|
OrdersItemsControl.ItemsSource = orders;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Border_DoubleTapped(object? sender, Avalonia.Input.TappedEventArgs e)
|
||||||
|
{
|
||||||
|
if ((sender as Border)!.DataContext is Order order && order != null)
|
||||||
|
{
|
||||||
|
new OrderWindow(order).ShowDialog(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
new OrderWindow().ShowDialog(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
<Window xmlns="https://github.com/avaloniaui"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
xmlns:models="using:demoBicycle.Models"
|
||||||
|
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||||
|
x:Class="demoBicycle.Windows.OrderWindow"
|
||||||
|
Title="Создание заказа"
|
||||||
|
x:DataType="models:Order">
|
||||||
|
<Grid ColumnDefinitions="*,*" RowDefinitions="*,100">
|
||||||
|
<StackPanel Margin="5" Spacing="10">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Дата заказа:"/>
|
||||||
|
<DatePicker Name="OrderDatePicker" SelectedDate="{Binding DateTimeOffsetOrder}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Дата доставки:"/>
|
||||||
|
<DatePicker Name="DeliveryDatePicker" SelectedDate="{Binding DateTimeOffsetDelivery}"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Адресс:"/>
|
||||||
|
<ComboBox Name="AdressComboBox">
|
||||||
|
<ComboBox.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:Adress">
|
||||||
|
<TextBlock Text="{Binding AllAdress}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Польователь:"/>
|
||||||
|
<ComboBox Name="UserComboBox">
|
||||||
|
<ComboBox.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:User">
|
||||||
|
<TextBlock Text="{Binding UserName}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel Grid.Column="1" Margin="5" Spacing="10">
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Код:"/>
|
||||||
|
<TextBox Name="CodeTextBox"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Статус заказа:"/>
|
||||||
|
<ComboBox Name="OrderTypeComboBox">
|
||||||
|
<ComboBox.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:OrderType">
|
||||||
|
<TextBlock Text="{Binding OrderTypeName}"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<StackPanel>
|
||||||
|
<TextBlock Text="Выбор товаров:"/>
|
||||||
|
<StackPanel Orientation="Horizontal" Spacing="10">
|
||||||
|
<ComboBox Name="ProductComboBox">
|
||||||
|
<ComboBox.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:Product">
|
||||||
|
<TextBlock Text="{Binding ProductName}" TextWrapping="Wrap"/>
|
||||||
|
</DataTemplate>
|
||||||
|
</ComboBox.ItemTemplate>
|
||||||
|
</ComboBox>
|
||||||
|
|
||||||
|
<Button Content="+" Click="Button_Click_3"/>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<ListBox Name="ProductsListBox">
|
||||||
|
<ListBox.ItemTemplate>
|
||||||
|
<DataTemplate DataType="models:OrderProduct">
|
||||||
|
<Grid ColumnDefinitions="*,*,*">
|
||||||
|
<TextBlock Text="{Binding Product.ProductName}" TextWrapping="Wrap"/>
|
||||||
|
<NumericUpDown Grid.Column="1" Name="AmountNumeric" Minimum="1" Value="{Binding Amount}"/>
|
||||||
|
<Button Grid.Column="2" Content="-" HorizontalAlignment="Center" Click="Button_Click_4"/>
|
||||||
|
</Grid>
|
||||||
|
</DataTemplate>
|
||||||
|
</ListBox.ItemTemplate>
|
||||||
|
</ListBox>
|
||||||
|
</StackPanel>
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<Button Grid.Row="1" Content="Выйти" Click="Button_Click"/>
|
||||||
|
<Button Grid.Column="1" Grid.Row="1" Content="Создать" Click="Button_Click_1"/>
|
||||||
|
<Button Grid.Row="1" HorizontalAlignment="Center" Content="Удалить" Click="Button_Click_2"/>
|
||||||
|
</Grid>
|
||||||
|
</Window>
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
using Avalonia;
|
||||||
|
using Avalonia.Controls;
|
||||||
|
using Avalonia.Markup.Xaml;
|
||||||
|
using demoBicycle.Context;
|
||||||
|
using demoBicycle.Models;
|
||||||
|
using Microsoft.EntityFrameworkCore;
|
||||||
|
using System;
|
||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace demoBicycle.Windows
|
||||||
|
{
|
||||||
|
public partial class OrderWindow : Window
|
||||||
|
{
|
||||||
|
Order order = null!;
|
||||||
|
ObservableCollection<OrderProduct> products = [];
|
||||||
|
DemoBicycleContext context = null!;
|
||||||
|
bool IsEdit = false;
|
||||||
|
public OrderWindow()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_ = Load();
|
||||||
|
DataContext = new Order { OrderDate = DateOnly.FromDateTime(DateTime.Now), OrderDeliviry = DateOnly.FromDateTime(DateTime.Now) };
|
||||||
|
}
|
||||||
|
|
||||||
|
public OrderWindow(Order order1)
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
_ = Load();
|
||||||
|
context = new();
|
||||||
|
order = context.Orders.First(x => x.Id == order1.Id);
|
||||||
|
IsEdit = true;
|
||||||
|
|
||||||
|
OrderDatePicker.SelectedDate = new(order.OrderDate, TimeOnly.MinValue, TimeSpan.Zero);
|
||||||
|
DeliveryDatePicker.SelectedDate = new(order.OrderDeliviry, TimeOnly.MinValue, TimeSpan.Zero);
|
||||||
|
AdressComboBox.SelectedIndex = order.AdressId - 1;
|
||||||
|
UserComboBox.SelectedIndex = order.UserId - 1;
|
||||||
|
CodeTextBox.Text = Convert.ToString(order.Code);
|
||||||
|
OrderTypeComboBox.SelectedIndex = order.OrderTypeId - 1;
|
||||||
|
|
||||||
|
var orderProducts = context.OrderProducts.Include(x => x.Product).Where(x => x.OrderId == order.Id);
|
||||||
|
foreach (var product in orderProducts)
|
||||||
|
{
|
||||||
|
products.Add(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async Task Load()
|
||||||
|
{
|
||||||
|
context = new();
|
||||||
|
order = new();
|
||||||
|
AdressComboBox.ItemsSource = context.Adresses;
|
||||||
|
UserComboBox.ItemsSource = context.Users;
|
||||||
|
OrderTypeComboBox.ItemsSource = context.OrderTypes;
|
||||||
|
ProductComboBox.ItemsSource = context.Products;
|
||||||
|
ProductsListBox.ItemsSource = products;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click_1(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
order.OrderDate = DateOnly.FromDateTime(OrderDatePicker.SelectedDate!.Value.DateTime);
|
||||||
|
order.OrderDeliviry = DateOnly.FromDateTime(DeliveryDatePicker.SelectedDate!.Value.DateTime);
|
||||||
|
order.AdressId = (AdressComboBox.SelectedItem as Adress)!.Id;
|
||||||
|
order.UserId = (UserComboBox.SelectedItem as User)!.Id;
|
||||||
|
order.Code = Convert.ToInt32(CodeTextBox.Text);
|
||||||
|
order.OrderTypeId = (OrderTypeComboBox.SelectedItem as OrderType)!.Id;
|
||||||
|
if (IsEdit)
|
||||||
|
{
|
||||||
|
context.OrderProducts.RemoveRange(context.OrderProducts.Where(x => x.OrderId == order.Id));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
context.Orders.Add(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var item in products)
|
||||||
|
{
|
||||||
|
context.OrderProducts.Add(new OrderProduct
|
||||||
|
{
|
||||||
|
Order = order,
|
||||||
|
ProductId = item.ProductId,
|
||||||
|
Amount = item.Amount
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
context.SaveChanges();
|
||||||
|
MenuWindow.Current.Load();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click_2(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if (!IsEdit)
|
||||||
|
{
|
||||||
|
this.Close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var orderProducts = context.OrderProducts.Where(x => x.OrderId == order.Id);
|
||||||
|
context.OrderProducts.RemoveRange(orderProducts);
|
||||||
|
|
||||||
|
context.Orders.Remove(order);
|
||||||
|
|
||||||
|
context.SaveChanges();
|
||||||
|
|
||||||
|
MenuWindow.Current.Load();
|
||||||
|
this.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click_3(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if(ProductComboBox.SelectedItem is Product selectedProduct && selectedProduct != null)
|
||||||
|
{
|
||||||
|
if(products.Any(x => x.Id == selectedProduct.Id))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var product = new OrderProduct { Product = (ProductComboBox.SelectedItem as Product)! , ProductId = (ProductComboBox.SelectedItem as Product)!.Id, Amount = 1};
|
||||||
|
products.Add(product);
|
||||||
|
ProductComboBox.SelectedItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Button_Click_4(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||||
|
{
|
||||||
|
if((sender as Button)!.DataContext is OrderProduct product && product != null)
|
||||||
|
{
|
||||||
|
products.Remove(product);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 98 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 87 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -6,6 +6,12 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Remove="Assets\icon.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<AvaloniaResource Include="Assets\icon.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Avalonia" Version="12.1.2" />
|
<PackageReference Include="Avalonia" Version="12.1.2" />
|
||||||
@@ -22,4 +28,40 @@
|
|||||||
</PackageReference>
|
</PackageReference>
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.3" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.3" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<None Update="Images\1.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\10.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\2.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\3.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\4.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\5.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\6.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\7.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\8.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\9.JPG">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
<None Update="Images\picture.png">
|
||||||
|
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||||
|
</None>
|
||||||
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
be3f27ad7c4b8b5481b61ac74107ff21b3e9a9a6fa95c256c8ec867ea5c660d1
|
deee3b6f64f6f83e09802639f4d4b9d470eb4d56ed35fe2e8728a19b7e75a70a
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("demoBicycle")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("demoBicycle")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+626e679fc49e24af5736e4d2f7030e6004eef1d9")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("demoBicycle")]
|
[assembly: System.Reflection.AssemblyProductAttribute("demoBicycle")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("demoBicycle")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("demoBicycle")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
79cc34f367cfd259238d38034b4868919b0cfc0cb945768b97a301547644bd0f
|
43ec175f9748abb197340ea09f1fcd6608e5574bec5e5bd1460d9889c53e1e9a
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ build_property.AvaloniaNameGeneratorAttachDevTools = true
|
|||||||
build_property.AvaloniaUseCompiledBindingsByDefault = true
|
build_property.AvaloniaUseCompiledBindingsByDefault = true
|
||||||
build_property.AvaloniaMainPackageVersion = 12.1.2
|
build_property.AvaloniaMainPackageVersion = 12.1.2
|
||||||
build_property.AvaloniaPreviewerNetCoreToolPath = C:\Users\Kawory\.nuget\packages\avalonia\12.1.2\buildTransitive\\..\tools\net8.0\designer\Avalonia.Designer.HostApp.dll
|
build_property.AvaloniaPreviewerNetCoreToolPath = C:\Users\Kawory\.nuget\packages\avalonia\12.1.2\buildTransitive\\..\tools\net8.0\designer\Avalonia.Designer.HostApp.dll
|
||||||
build_property.AvaloniaResourcePaths = C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\App.axaml,C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\MainWindow.axaml
|
build_property.AvaloniaResourcePaths = C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\Assets\icon.png,C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\App.axaml,C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\Windows\MainWindow.axaml,C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\Windows\MenuWindow.axaml,C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\Windows\OrderWindow.axaml
|
||||||
build_property.TargetFramework = net10.0
|
build_property.TargetFramework = net10.0
|
||||||
build_property.TargetFramework = net10.0
|
build_property.TargetFramework = net10.0
|
||||||
build_property.TargetPlatformMinVersion =
|
build_property.TargetPlatformMinVersion =
|
||||||
@@ -39,5 +39,11 @@ build_property.EnableCodeStyleSeverity =
|
|||||||
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/App.axaml]
|
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/App.axaml]
|
||||||
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/MainWindow.axaml]
|
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/Windows/MainWindow.axaml]
|
||||||
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
|
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/Windows/MenuWindow.axaml]
|
||||||
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|
||||||
|
[C:/Users/Kawory/source/repos/demoBicycle/demoBicycle/Windows/OrderWindow.axaml]
|
||||||
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
f0e969a6186599610ca8c82a2d73e29840b18aac01241a6a82a6624f3914fb24
|
36967c1c0f994fc3763e06a65fceca32faf191a006b1eccdbec96e2ea0ecbfa8
|
||||||
|
|||||||
@@ -185,3 +185,14 @@ C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\ru\Micros
|
|||||||
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\tr\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
||||||
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\zh-Hans\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
||||||
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\zh-Hant\Microsoft.CodeAnalysis.Workspaces.MSBuild.resources.dll
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\1.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\10.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\2.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\3.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\4.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\5.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\6.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\7.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\8.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\9.JPG
|
||||||
|
C:\Users\Kawory\source\repos\demoBicycle\demoBicycle\bin\Debug\net10.0\Images\picture.png
|
||||||
|
|||||||