add functions: AddProduct, AgentEidtor, ProductEditor

This commit is contained in:
Никита Онянов 2025-03-25 23:27:02 +03:00
parent 18a2fd7bc3
commit f314e84939
43 changed files with 572 additions and 178 deletions

Binary file not shown.

Binary file not shown.

View File

@ -3,24 +3,8 @@
"WorkspaceRootPath": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\product.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\product.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\productsale.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\productsale.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\agent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\agent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\functions\\addproduct.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:functions\\addproduct.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
}
],
"DocumentGroupContainers": [
@ -30,74 +14,22 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 5,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Productsale.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Productsale.cs",
"RelativeDocumentMoniker": "Models\\Productsale.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Productsale.cs",
"RelativeToolTip": "Models\\Productsale.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T07:39:36.75Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Product.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Product.cs",
"RelativeDocumentMoniker": "Models\\Product.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Product.cs",
"RelativeToolTip": "Models\\Product.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAgwA0AAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T07:18:40.508Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "Agent.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Agent.cs",
"RelativeDocumentMoniker": "Models\\Agent.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Agent.cs",
"RelativeToolTip": "Models\\Agent.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T06:30:30.068Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "MainWindow.axaml.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml.cs",
"RelativeDocumentMoniker": "MainWindow.axaml.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml.cs",
"RelativeToolTip": "MainWindow.axaml.cs",
"ViewState": "AgIAACQAAAAAAAAAAAAcwDAAAAAhAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T06:24:34.479Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "MainWindow.axaml",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml",
"RelativeDocumentMoniker": "MainWindow.axaml",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml",
"RelativeToolTip": "MainWindow.axaml",
"Title": "AddProduct.axaml",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Functions\\AddProduct.axaml",
"RelativeDocumentMoniker": "Functions\\AddProduct.axaml",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Functions\\AddProduct.axaml",
"RelativeToolTip": "Functions\\AddProduct.axaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-03-24T06:24:32.359Z",
"WhenOpened": "2025-03-25T20:22:51.155Z",
"EditorCaption": ""
}
]

View File

@ -3,24 +3,8 @@
"WorkspaceRootPath": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\product.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\product.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\productsale.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\productsale.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\models\\agent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:models\\agent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
"AbsoluteMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|c:\\users\\vivobook 15x\\desktop\\task21_03\\agents\\functions\\addproduct.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
"RelativeMoniker": "D:0:0:{1AA52C8A-C24C-4BD8-BEB3-14407C2D8866}|Agents.csproj|solutionrelative:functions\\addproduct.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
}
],
"DocumentGroupContainers": [
@ -30,74 +14,22 @@
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 5,
"SelectedChildIndex": 1,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "Productsale.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Productsale.cs",
"RelativeDocumentMoniker": "Models\\Productsale.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Productsale.cs",
"RelativeToolTip": "Models\\Productsale.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAcAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T07:39:36.75Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "Product.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Product.cs",
"RelativeDocumentMoniker": "Models\\Product.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Product.cs",
"RelativeToolTip": "Models\\Product.cs",
"ViewState": "AgIAAAMAAAAAAAAAAAAgwA0AAAAfAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T07:18:40.508Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 4,
"Title": "Agent.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Agent.cs",
"RelativeDocumentMoniker": "Models\\Agent.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Models\\Agent.cs",
"RelativeToolTip": "Models\\Agent.cs",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAUAAAAaAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T06:30:30.068Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "MainWindow.axaml.cs",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml.cs",
"RelativeDocumentMoniker": "MainWindow.axaml.cs",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml.cs",
"RelativeToolTip": "MainWindow.axaml.cs",
"ViewState": "AgIAACQAAAAAAAAAAAAcwDAAAAAhAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-03-24T06:24:34.479Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "MainWindow.axaml",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml",
"RelativeDocumentMoniker": "MainWindow.axaml",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\MainWindow.axaml",
"RelativeToolTip": "MainWindow.axaml",
"Title": "AddProduct.axaml",
"DocumentMoniker": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Functions\\AddProduct.axaml",
"RelativeDocumentMoniker": "Functions\\AddProduct.axaml",
"ToolTip": "C:\\Users\\VivoBook 15X\\Desktop\\Task21_03\\Agents\\Functions\\AddProduct.axaml",
"RelativeToolTip": "Functions\\AddProduct.axaml",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
"WhenOpened": "2025-03-24T06:24:32.359Z",
"WhenOpened": "2025-03-25T20:22:51.155Z",
"EditorCaption": ""
}
]

View File

@ -25,8 +25,4 @@
</PackageReference>
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
</ItemGroup>
<ItemGroup>
<Folder Include="Functions\" />
</ItemGroup>
</Project>

121
Functions/AddProduct.axaml Normal file
View File

@ -0,0 +1,121 @@
<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="600"
x:Class="Agents.AddProduct"
Title="Добавление и удаление продукта"
xmlns:vm="using:Agents.Models">
<DockPanel Background="Blue">
<ScrollViewer>
<StackPanel>
<StackPanel HorizontalAlignment="Center">
<Border
Background="Red"
CornerRadius="10"
Padding="20"
Margin="20"
Width="750"
Height="300"
>
<ScrollViewer>
<StackPanel>
<TextBlock Text="Список продуктов" HorizontalAlignment="Center" Foreground="Blue"/>
<ListBox Name="ListProducts">
<ListBox.ItemTemplate>
<DataTemplate x:DataType="vm:Product">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Название продукта: "/>
<TextBlock Text="{Binding Title}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Описание товара: "/>
<TextBlock Text="{Binding Description}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Название продукта: "/>
<TextBlock Text="{Binding Productionpersoncount}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Артикул: "/>
<TextBlock Text="{Binding Articlenumber}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Минимальная цена для агента: "/>
<TextBlock Text="{Binding Mincostforagent}"/>
<TextBlock Text=" Руб."/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</ScrollViewer>
</Border>
</StackPanel>
<StackPanel Spacing="15" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel>
<TextBlock Text="Введите Название"/>
<TextBox Width="200" x:Name="TextNewTitle" Text=""/>
</StackPanel>
<StackPanel>
<TextBlock Text="Введите новый Артикул"/>
<TextBox Width="200" x:Name="TextNewArticlenumber" Text=""/>
</StackPanel>
<StackPanel>
<TextBlock Text="Введите минимальную цену (в рублях)"/>
<NumericUpDown Value="" Width="150" Minimum="0" Name="TextNewMincostforagent"/>
</StackPanel>
</StackPanel>
<StackPanel Spacing="15" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel HorizontalAlignment="Center">
<StackPanel>
<TextBlock Text="Выберите тип продукта" HorizontalAlignment="Center"/>
<ComboBox Name="ListProductType" HorizontalAlignment="Center" Width="200">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:Producttype">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</StackPanel>
<StackPanel HorizontalAlignment="Center">
<TextBlock Text="Введите количество"/>
<NumericUpDown Value="" Width="150" Minimum="0" Name="TextNewCount"/>
</StackPanel>
</StackPanel>
<Button Content="Добавить" Click="Addproduct" Background="Green" HorizontalAlignment="Center"/>
<Button Content="Удалить" Click="DeleteProduct" Background="Red" Foreground="White" HorizontalAlignment="Center"/>
<Button Content="Назад" Click="Exit" Background="Green" HorizontalAlignment="Center"/>
<TextBlock Name="Status" Text="" HorizontalAlignment="Center"/>
</StackPanel>
</ScrollViewer>
</DockPanel>
</Window>

View File

@ -0,0 +1,124 @@
using Agents.Models;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using System;
using System.Collections.ObjectModel;
using System.Linq;
namespace Agents;
public partial class AddProduct : Window
{
static User11Context db = new User11Context();
ObservableCollection<Product> ProductsitemSource = new ObservableCollection<Product>(db.Products.OrderByDescending(it=>it.Id));
ObservableCollection<Producttype> ProducttypesitemSource = new ObservableCollection<Producttype>(db.Producttypes);
public AddProduct()
{
InitializeComponent();
ListProducts.ItemsSource = ProductsitemSource;
ListProductType.ItemsSource = ProducttypesitemSource;
}
void Addproduct(object sender, RoutedEventArgs e)
{
try
{
float? i = float.Parse(TextNewCount.Text);
int? count = Convert.ToInt32(i);
decimal? min = Convert.ToDecimal(TextNewMincostforagent.Text);
Producttype? t = db.Producttypes.Where(it => it == ListProductType.SelectedItem).FirstOrDefault();
if(t != null)
{
if (TextNewTitle.Text != "" && TextNewArticlenumber.Text != "" && count != null && min != null)
{
if (TextNewArticlenumber.Text != "")
{
if (count != null)
{
if (min != null)
{
Product product = new Product()
{
Title = TextNewTitle.Text,
Producttypeid = t.Id,
Articlenumber = TextNewArticlenumber.Text,
Productionpersoncount = count,
Mincostforagent = (decimal)min,
};
db.Products.Add(product);
db.SaveChanges();
Update();
Status.Foreground = Brushes.Green;
Status.Text = "Ïðîäóêò äîáàâëåí";
}
else
{
Status.Foreground = Brushes.Red;
Status.Text = "Ââåäèòå öåíó";
}
}
else
{
Status.Foreground = Brushes.Red;
Status.Text = "Ââåäèòå êîëè÷åñòâî";
}
}
else
{
Status.Foreground = Brushes.Red;
Status.Text = "Ââåäèòå Àðòèêóë";
}
}
else
{
Status.Foreground = Brushes.Red;
Status.Text = "Íóæíî äîáàâèòü âñå äàííûå";
}
}
else
{
Status.Foreground = Brushes.Red;
Status.Text = "Âûáåðèòå òèï ïðîäóêòà";
}
}
catch
{
Status.Foreground = Brushes.Red;
Status.Text = "ïðîèçîøëà îøèáêà";
}
}
void DeleteProduct(object sender, RoutedEventArgs e)
{
if (ListProducts.SelectedItem != null)
{
Product product = db.Products.Where(it => it == ListProducts.SelectedItem).FirstOrDefault();
db.Products.Remove(product);
db.SaveChanges();
Update();
Status.Foreground = Brushes.Green;
Status.Text = "Ïðîäóêò óäàë¸í";
}
}
void Update()
{
ProductsitemSource = new ObservableCollection<Product>(db.Products.OrderByDescending(it => it.Id));
ListProducts.ItemsSource = ProductsitemSource;
}
void Exit(object sender, RoutedEventArgs e)
{
new MainWindow().Show();
Close();
}
}

View File

@ -0,0 +1,77 @@
<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="Agents.AgentEidtor"
Title="Изменить агента"
xmlns:vm="using:Agents.Models">
<DockPanel Background="Blue">
<ScrollViewer>
<StackPanel Spacing="15">
<StackPanel HorizontalAlignment="Center">
<TextBlock Text="Выберите клиента для изменения"/>
<ComboBox Name="ListAgents" HorizontalAlignment="Center" Width="300" SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:Agent">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
<StackPanel Spacing="15" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новый приоритет"/>
<NumericUpDown Value="" Width="150" Minimum="0" Name="TextNewPriority"/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новый ИНН"/>
<TextBox Width="300" x:Name="TextNewInn" Text=""/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новый КПП"/>
<TextBox Width="300" x:Name="TextNewKPP" Text=""/>
</StackPanel>
</StackPanel>
<StackPanel Spacing="15" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новый адрес"/>
<TextBox Width="300" Height="90" x:Name="TextNewAddress" TextWrapping="Wrap" Text=""/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новое имя директора"/>
<TextBox Width="300" x:Name="TextNewDirectorname" Text=""/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новую почту"/>
<TextBox Width="300" x:Name="TextNewEmail" Text=""/>
</StackPanel>
</StackPanel>
<StackPanel>
<Button Content="Изменить данные" Click="ButtonUpdate" HorizontalAlignment="Center" Background="Green"/>
<Button Content="Назад" Click="Exit" HorizontalAlignment="Center" Background="Green"/>
</StackPanel>
<TextBlock Name="Status" Text="" HorizontalAlignment="Center"/>
</StackPanel>
</ScrollViewer>
</DockPanel>
</Window>

View File

@ -0,0 +1,73 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Media.Imaging;
using Avalonia.Platform;
using System.Reflection;
using System;
using Agents.Models;
using System.Collections.ObjectModel;
using Avalonia.Interactivity;
using System.Linq;
using System.Runtime.ExceptionServices;
using Avalonia.Media;
namespace Agents;
public partial class AgentEidtor : Window
{
static User11Context db = new User11Context();
ObservableCollection<Agent> AgentsitemSource = new ObservableCollection<Agent>(db.Agents.OrderBy(it => it.Title));
public AgentEidtor()
{
InitializeComponent();
ListAgents.ItemsSource = AgentsitemSource;
}
private void ComboBox_SelectionChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
{
if (sender != null)
{
Agent agent = db.Agents.Where(it => it == ListAgents.SelectedItem).FirstOrDefault();
TextNewPriority.Text = agent.Priority.ToString();
TextNewInn.Text = agent.Inn;
TextNewKPP.Text = agent.Kpp;
TextNewAddress.Text = agent.Address;
TextNewDirectorname.Text = agent.Directorname;
TextNewEmail.Text = agent.Email;
}
}
private void ButtonUpdate(object sender, RoutedEventArgs e)
{
try
{
Agent agent = db.Agents.Where(it => it == ListAgents.SelectedItem).First();
float a = float.Parse(TextNewPriority.Text);
agent.Priority = Convert.ToInt32(a);
agent.Inn = TextNewInn.Text;
agent.Kpp = TextNewKPP.Text;
agent.Directorname = TextNewDirectorname.Text;
agent.Address = TextNewAddress.Text;
agent.Email = TextNewEmail.Text;
db.SaveChanges();
Status.Foreground = Brushes.Green;
Status.Text = "Äàííûå ïîëüçîâàòåëÿ èçìåíåíû";
}
catch
{
Status.Foreground = Brushes.Red;
Status.Text = "Ïðîèçîøëà îøèáêà";
}
}
void Exit(object sender, RoutedEventArgs e)
{
new MainWindow().Show();
Close();
}
}

View File

@ -0,0 +1,51 @@
<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="Agents.ProductEditor"
Title="ProductEditor"
xmlns:vm="using:Agents.Models">
<DockPanel>
<StackPanel Spacing="15">
<StackPanel>
<TextBlock Text="Выберите Продукт" HorizontalAlignment="Center"/>
<ComboBox HorizontalAlignment="Center" Name="ListProducts" Width="400" SelectionChanged="ComboBox_SelectionChanged">
<ComboBox.ItemTemplate>
<DataTemplate x:DataType="vm:Product">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
<StackPanel Spacing="15" HorizontalAlignment="Center" Orientation="Horizontal">
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите количество продукта"/>
<NumericUpDown Value="" Width="150" Minimum="0" Name="TextNewProductionpersoncount"/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите новый Артикул"/>
<TextBox Width="200" x:Name="TextNewArticlenumber" Text=""/>
</StackPanel>
<StackPanel Orientation="Vertical">
<TextBlock Text="Введите минимальную цену для агента (в рублях)"/>
<NumericUpDown Value="" Width="150" Minimum="0" Name="TextNewMincostforagent"/>
</StackPanel>
</StackPanel>
<StackPanel>
<Button Content="Изменить данные" Click="ButtonUpdate" HorizontalAlignment="Center"/>
<Button Content="Назад" Click="Exit" HorizontalAlignment="Center"/>
</StackPanel>
<TextBlock Name="Status" Text="" HorizontalAlignment="Center"/>
</StackPanel>
</DockPanel>
</Window>

View File

@ -0,0 +1,61 @@
using Agents.Models;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Markup.Xaml;
using Avalonia.Media;
using System;
using System.Collections.ObjectModel;
using System.Linq;
namespace Agents;
public partial class ProductEditor : Window
{
static User11Context db = new User11Context();
ObservableCollection<Product> products = new ObservableCollection<Product>(db.Products);
public ProductEditor()
{
InitializeComponent();
ListProducts.ItemsSource = products;
}
private void ComboBox_SelectionChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
{
Product product = db.Products.Where(it=>it == ListProducts.SelectedItem).FirstOrDefault();
TextNewProductionpersoncount.Text = product.Productionpersoncount.ToString();
TextNewArticlenumber.Text = product.Articlenumber.ToString();
TextNewMincostforagent.Text = product.Mincostforagent.ToString();
}
private void ButtonUpdate(object sender, RoutedEventArgs e)
{
try
{
Product product = db.Products.Where(it => it == ListProducts.SelectedItem).First();
float a = float.Parse(TextNewProductionpersoncount.Text);
product.Productionpersoncount = Convert.ToInt32(a);
product.Articlenumber = TextNewArticlenumber.Text;
float i = float.Parse(TextNewMincostforagent.Text);
product.Mincostforagent = Convert.ToInt32(i);
db.SaveChanges();
Status.Foreground = Brushes.Green;
Status.Text = "Äàííûå ïðîäóêòà èçìåíåíû";
}
catch
{
Status.Foreground = Brushes.Red;
Status.Text = "Ïðîèçîøëà îøèáêà";
}
}
void Exit(object sender, RoutedEventArgs e)
{
new MainWindow().Show();
Close();
}
}

View File

@ -134,11 +134,13 @@
Margin="20"
Height="80"
>
<StackPanel>
<StackPanel HorizontalAlignment="Center">
<TextBlock Text="Доступные функции" HorizontalAlignment="Center" Foreground="Blue"/>
<StackPanel Orientation="Horizontal" Background="Red" HorizontalAlignment="Center">
<Button Content="Обновить список продуктов" Click="ButtonUpdate" Background="Green"/>
<Button Content="Редактированть данные" Click="" Background="Green"/>
<Button Content="Обновить продукт" Click="ButtonProductEidtor" Background="Green"/>
<Button Content="Изменить агентов" Click="ButtonAgentEidtor" Background="Green"/>
<Button Content="Добавление и удаление продукта" Click="ButtonAddProduct" Background="Green"/>
<Button Content="Редактированть данные продуктов" Click="ButtonProductEidtor" Background="Green"/>
</StackPanel>
</StackPanel>
</Border>

View File

@ -25,17 +25,16 @@ namespace Agents
{
if(sender != null)
{
using (User11Context db = new User11Context())
try
{
try
{
UpdateInfo();
}
catch (Exception ex)
{
ExceptionDispatchInfo.Capture(ex).Throw();
}
UpdateInfo();
}
catch (Exception ex)
{
ExceptionDispatchInfo.Capture(ex).Throw();
}
}
}
private void ListBox_SelectionChanged1(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
@ -53,10 +52,10 @@ namespace Agents
private void UpdateInfo()
{
Agent agent = db.Agents.Where(it => it == ListAgents.SelectedItem).FirstOrDefault();
Productsale? PS = db.Productsales.Where(it => it.Agentid == agent.Id).FirstOrDefault();
if (PS != null)
Agent? agent = db.Agents.Where(it => it == ListAgents.SelectedItem).FirstOrDefault();
if (agent != null)
{
Productsale? PS = db.Productsales.Where(it => it.Agentid == agent.Id).FirstOrDefault();
var prods = db.Productsales
.Where(PWS => PWS.Agentid == agent.Id)
.Select(PWS => new Product
@ -81,5 +80,22 @@ namespace Agents
ListProducts.ItemsSource = new ObservableCollection<Product>(prods);
}
}
private void ButtonAgentEidtor(object sender, RoutedEventArgs e)
{
new AgentEidtor().Show();
Close();
}
private void ButtonProductEidtor(object sender, RoutedEventArgs e)
{
new ProductEditor().Show();
Close();
}
private void ButtonAddProduct(object sender, RoutedEventArgs e)
{
new AddProduct().Show();
Close();
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -14,7 +14,7 @@ using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("Agents")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+18a2fd7bc37cf902fa084ca75d9b11bc046836b6")]
[assembly: System.Reflection.AssemblyProductAttribute("Agents")]
[assembly: System.Reflection.AssemblyTitleAttribute("Agents")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]

View File

@ -1 +1 @@
49b7bb7a45c8f76bcb00f3dde7736a990df1fa7f8dccd1478c97c85435bf6700
b9c09ae530f91552353b8e651705dc9b1ec333a7de7dd684b4a3e2132a51a386

View File

@ -24,5 +24,14 @@ build_property.EnableCodeStyleSeverity =
[C:/Users/VivoBook 15X/Desktop/Task21_03/Agents/App.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/VivoBook 15X/Desktop/Task21_03/Agents/Functions/AddProduct.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/VivoBook 15X/Desktop/Task21_03/Agents/Functions/AgentEidtor.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/VivoBook 15X/Desktop/Task21_03/Agents/Functions/ProductEditor.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
[C:/Users/VivoBook 15X/Desktop/Task21_03/Agents/MainWindow.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml

View File

@ -1 +1 @@
464ac82623e4b9e05843eb98aedb09dd6babfe26ebf9c613e4e8c31f52746fee
291fde3fd23923f8bcf8b73c387a7e6152f5ad6f6bade5fec7a8c02a30a13f72

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1 +1 @@
52101edfc7686cbd8f0c2993fb23a494a97b9211833fbf2a416c552f1624b79e
cdb2d27bf7fe9c7d1d6b3a43ac185a1f4cee0196d1cda531d59b718a7c0544a9

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.