diff --git a/Diner/DinerClientApp/APIClient.cs b/Diner/DinerClientApp/APIClient.cs index 8f7b0c7..d48ae2e 100644 --- a/Diner/DinerClientApp/APIClient.cs +++ b/Diner/DinerClientApp/APIClient.cs @@ -1,9 +1,9 @@ -using DinerContracts.ViewModels; +using Azure.Core; +using DinerContracts.ViewModels; using Newtonsoft.Json; using System.Net.Http.Headers; using System.Net.WebSockets; using System.Text; -using System.Text.Json.Serialization; namespace DinerClientApp { public class APIClient { @@ -11,16 +11,16 @@ namespace DinerClientApp { public static ClientViewModel? Client { get; set; } = null; - public static void Connetc(IConfiguration configuration) { + public static void Connect(IConfiguration configuration) { _client.BaseAddress = new Uri(configuration["IPAddress"]); _client.DefaultRequestHeaders.Accept.Clear(); _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); } - public static T? GetRequest(string requsetUrl) { - var responce = _client.GetAsync(requsetUrl); - var result = responce.Result.Content.ReadAsStringAsync().Result; - if (responce.Result.IsSuccessStatusCode) { + public static T? GetRequest(string requestUrl) { + var response = _client.GetAsync(requestUrl); + var result = response.Result.Content.ReadAsStringAsync().Result; + if (response.Result.IsSuccessStatusCode) { return JsonConvert.DeserializeObject(result); } else { @@ -28,11 +28,11 @@ namespace DinerClientApp { } } - public static void PostRequset(string requsetUrl, T model) { + public static void PostRequset(string requestUrl, T model) { var json = JsonConvert.SerializeObject(model); var data = new StringContent(json, Encoding.UTF8, "application/json"); - var response = _client.PostAsync(requsetUrl, data); + var response = _client.PostAsync(requestUrl, data); var result = response.Result.Content.ReadAsStringAsync().Result; if (!response.Result.IsSuccessStatusCode) { diff --git a/Diner/DinerClientApp/Controllers/HomeController.cs b/Diner/DinerClientApp/Controllers/HomeController.cs index cbc0a6b..c2df5ae 100644 --- a/Diner/DinerClientApp/Controllers/HomeController.cs +++ b/Diner/DinerClientApp/Controllers/HomeController.cs @@ -105,7 +105,7 @@ namespace DinerClientApp.Controllers { } APIClient.PostRequset("api/main/createorder", new OrderBindingModel { ClientID = APIClient.Client.ID, - ProductID = product, + SnackID = product, Count = count, Sum = Cal(count, product) }); @@ -113,7 +113,7 @@ namespace DinerClientApp.Controllers { } private double Cal(int count, int product) { - var prod = APIClient.GetRequest($"api/main/getproduct?productID={product}"); + var prod = APIClient.GetRequest($"api/main/getproduct?productId={product}"); return count * (prod?.Price ?? 1); } } diff --git a/Diner/DinerClientApp/DinerClientApp.csproj b/Diner/DinerClientApp/DinerClientApp.csproj index 7966a85..e22dd38 100644 --- a/Diner/DinerClientApp/DinerClientApp.csproj +++ b/Diner/DinerClientApp/DinerClientApp.csproj @@ -12,6 +12,8 @@ + + diff --git a/Diner/DinerClientApp/Program.cs b/Diner/DinerClientApp/Program.cs index d3b0de0..600f19b 100644 --- a/Diner/DinerClientApp/Program.cs +++ b/Diner/DinerClientApp/Program.cs @@ -7,7 +7,7 @@ namespace DinerClientApp { builder.Services.AddControllersWithViews(); var app = builder.Build(); - + APIClient.Connect(builder.Configuration); // Configure the HTTP request pipeline. if (!app.Environment.IsDevelopment()) { app.UseExceptionHandler("/Home/Error"); @@ -24,7 +24,7 @@ namespace DinerClientApp { app.MapControllerRoute( name: "default", - pattern: "{controller=Home}/{action=Index}/{id?}"); + pattern: "{controller=Home}/{action=Index}/{Id?}"); app.Run(); } diff --git a/Diner/DinerClientApp/appsettings.json b/Diner/DinerClientApp/appsettings.json index 70c9fa2..f89bb12 100644 --- a/Diner/DinerClientApp/appsettings.json +++ b/Diner/DinerClientApp/appsettings.json @@ -6,5 +6,5 @@ } }, "AllowedHosts": "*", - "IPAddress": "http://localhost:7254/" + "IPAddress": "http://localhost:5023/" } diff --git a/Diner/DinerContracts/BindingModels/OrderBindingModel.cs b/Diner/DinerContracts/BindingModels/OrderBindingModel.cs index a316e3e..d556b47 100644 --- a/Diner/DinerContracts/BindingModels/OrderBindingModel.cs +++ b/Diner/DinerContracts/BindingModels/OrderBindingModel.cs @@ -10,7 +10,7 @@ namespace DinerContracts.BindingModels { public class OrderBindingModel : IOrderModel { - public int ProductID { get; set; } + public int SnackID { get; set; } public int ClientID { get; set; } diff --git a/Diner/DinerContracts/SearchModels/OrderSearchModel.cs b/Diner/DinerContracts/SearchModels/OrderSearchModel.cs index 13bd858..afb6e2c 100644 --- a/Diner/DinerContracts/SearchModels/OrderSearchModel.cs +++ b/Diner/DinerContracts/SearchModels/OrderSearchModel.cs @@ -10,6 +10,7 @@ namespace DinerContracts.SearchModels { public int? ID { get; set; } public DateTime? DateFrom { get; set; } + public int? ClientID { get; set; } public DateTime? DateTo { get; set; } } } diff --git a/Diner/DinerContracts/ViewModels/OrderViewModel.cs b/Diner/DinerContracts/ViewModels/OrderViewModel.cs index 30399dc..fcebc35 100644 --- a/Diner/DinerContracts/ViewModels/OrderViewModel.cs +++ b/Diner/DinerContracts/ViewModels/OrderViewModel.cs @@ -11,7 +11,7 @@ namespace DinerContracts.ViewModels { public class OrderViewModel : IOrderModel { - public int ProductID { get; set; } + public int SnackID { get; set; } [DisplayName("Количество")] public int Count { get; set; } diff --git a/Diner/DinerDataBaseImplement/Implements/ClientStorage.cs b/Diner/DinerDataBaseImplement/Implements/ClientStorage.cs index 9a3f12e..c8434a0 100644 --- a/Diner/DinerDataBaseImplement/Implements/ClientStorage.cs +++ b/Diner/DinerDataBaseImplement/Implements/ClientStorage.cs @@ -3,6 +3,7 @@ using DinerContracts.SearchModels; using DinerContracts.StoragesContracts; using DinerContracts.ViewModels; using DinerDataBaseImplement.Models; +using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; @@ -46,13 +47,20 @@ namespace DinerDataBaseImplement.Implements { } public ClientViewModel? GetElement(ClientSearchModel model) { - if (string.IsNullOrEmpty(model.ClientFIO) && !model.ID.HasValue) { - return null; - } using var context = new DinerDataBase(); - return context.Clients.FirstOrDefault(x => (!string.IsNullOrEmpty(model.ClientFIO) && - x.ClientFIO == model.ClientFIO) || model.ID.HasValue && - x.ID == model.ID)?.GetViewModel; + if (model.ID.HasValue) { + return context.Clients + .Include(x => x.Orders) + .FirstOrDefault(x => model.ID.HasValue && x.ID == model.ID) + ?.GetViewModel; + } + else if (!string.IsNullOrEmpty(model.Email) && !string.IsNullOrEmpty(model.Password)) { + return context.Clients + .Include(x => x.Orders) + .FirstOrDefault(x => (x.Email == model.Email && x.Password == model.Password)) + ?.GetViewModel; + } + return new(); } public List GetFilteredList(ClientSearchModel model) { diff --git a/Diner/DinerDataBaseImplement/Implements/OrderStorage.cs b/Diner/DinerDataBaseImplement/Implements/OrderStorage.cs index 3659329..dd5b355 100644 --- a/Diner/DinerDataBaseImplement/Implements/OrderStorage.cs +++ b/Diner/DinerDataBaseImplement/Implements/OrderStorage.cs @@ -82,7 +82,7 @@ namespace DinerDataBaseImplement.Implements using var context = new DinerDataBase(); var viewModel = order.GetViewModel; foreach (var pr in context.Products) { - if (pr.ID == order.ProductID) { + if (pr.ID == order.SnackID) { viewModel.ProductName = pr.ProductName; break; } diff --git a/Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.Designer.cs b/Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.Designer.cs similarity index 94% rename from Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.Designer.cs rename to Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.Designer.cs index 51ddcd2..3b1ecde 100644 --- a/Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.Designer.cs +++ b/Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.Designer.cs @@ -12,7 +12,7 @@ using Microsoft.EntityFrameworkCore.Storage.ValueConversion; namespace DinerDataBaseImplement.Migrations { [DbContext(typeof(DinerDataBase))] - [Migration("20240501160144_InitMigration")] + [Migration("20240502170545_InitMigration")] partial class InitMigration { /// @@ -90,10 +90,7 @@ namespace DinerDataBaseImplement.Migrations b.Property("DateImplement") .HasColumnType("datetime2"); - b.Property("ProductID") - .HasColumnType("int"); - - b.Property("SnackID") + b.Property("SnackID") .HasColumnType("int"); b.Property("Status") @@ -145,14 +142,14 @@ namespace DinerDataBaseImplement.Migrations b.Property("Count") .HasColumnType("int"); - b.Property("ProductID") + b.Property("SnackID") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex("ComponentID"); - b.HasIndex("ProductID"); + b.HasIndex("SnackID"); b.ToTable("ProductComponents"); }); @@ -165,7 +162,9 @@ namespace DinerDataBaseImplement.Migrations b.HasOne("DinerDataBaseImplement.Models.Snack", "Snack") .WithMany() - .HasForeignKey("SnackID"); + .HasForeignKey("SnackID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.Navigation("Snack"); }); @@ -180,7 +179,7 @@ namespace DinerDataBaseImplement.Migrations b.HasOne("DinerDataBaseImplement.Models.Snack", "Product") .WithMany("Components") - .HasForeignKey("ProductID") + .HasForeignKey("SnackID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); diff --git a/Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.cs b/Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.cs similarity index 93% rename from Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.cs rename to Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.cs index e2bc385..66b2a47 100644 --- a/Diner/DinerDataBaseImplement/Migrations/20240501160144_InitMigration.cs +++ b/Diner/DinerDataBaseImplement/Migrations/20240502170545_InitMigration.cs @@ -60,13 +60,12 @@ namespace DinerDataBaseImplement.Migrations { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), - ProductID = table.Column(type: "int", nullable: false), + SnackID = table.Column(type: "int", nullable: false), Count = table.Column(type: "int", nullable: false), Sum = table.Column(type: "float", nullable: false), Status = table.Column(type: "int", nullable: false), DateCreate = table.Column(type: "datetime2", nullable: false), DateImplement = table.Column(type: "datetime2", nullable: true), - SnackID = table.Column(type: "int", nullable: true), ClientID = table.Column(type: "int", nullable: true) }, constraints: table => @@ -81,7 +80,8 @@ namespace DinerDataBaseImplement.Migrations name: "FK_Orders_Products_SnackID", column: x => x.SnackID, principalTable: "Products", - principalColumn: "ID"); + principalColumn: "ID", + onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( @@ -90,7 +90,7 @@ namespace DinerDataBaseImplement.Migrations { ID = table.Column(type: "int", nullable: false) .Annotation("SqlServer:Identity", "1, 1"), - ProductID = table.Column(type: "int", nullable: false), + SnackID = table.Column(type: "int", nullable: false), ComponentID = table.Column(type: "int", nullable: false), Count = table.Column(type: "int", nullable: false) }, @@ -104,8 +104,8 @@ namespace DinerDataBaseImplement.Migrations principalColumn: "ID", onDelete: ReferentialAction.Cascade); table.ForeignKey( - name: "FK_ProductComponents_Products_ProductID", - column: x => x.ProductID, + name: "FK_ProductComponents_Products_SnackID", + column: x => x.SnackID, principalTable: "Products", principalColumn: "ID", onDelete: ReferentialAction.Cascade); @@ -127,9 +127,9 @@ namespace DinerDataBaseImplement.Migrations column: "ComponentID"); migrationBuilder.CreateIndex( - name: "IX_ProductComponents_ProductID", + name: "IX_ProductComponents_SnackID", table: "ProductComponents", - column: "ProductID"); + column: "SnackID"); } /// diff --git a/Diner/DinerDataBaseImplement/Migrations/DinerDataBaseModelSnapshot.cs b/Diner/DinerDataBaseImplement/Migrations/DinerDataBaseModelSnapshot.cs index 461881c..0a38bf1 100644 --- a/Diner/DinerDataBaseImplement/Migrations/DinerDataBaseModelSnapshot.cs +++ b/Diner/DinerDataBaseImplement/Migrations/DinerDataBaseModelSnapshot.cs @@ -87,10 +87,7 @@ namespace DinerDataBaseImplement.Migrations b.Property("DateImplement") .HasColumnType("datetime2"); - b.Property("ProductID") - .HasColumnType("int"); - - b.Property("SnackID") + b.Property("SnackID") .HasColumnType("int"); b.Property("Status") @@ -142,14 +139,14 @@ namespace DinerDataBaseImplement.Migrations b.Property("Count") .HasColumnType("int"); - b.Property("ProductID") + b.Property("SnackID") .HasColumnType("int"); b.HasKey("ID"); b.HasIndex("ComponentID"); - b.HasIndex("ProductID"); + b.HasIndex("SnackID"); b.ToTable("ProductComponents", (string)null); }); @@ -162,7 +159,9 @@ namespace DinerDataBaseImplement.Migrations b.HasOne("DinerDataBaseImplement.Models.Snack", "Snack") .WithMany() - .HasForeignKey("SnackID"); + .HasForeignKey("SnackID") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); b.Navigation("Snack"); }); @@ -177,7 +176,7 @@ namespace DinerDataBaseImplement.Migrations b.HasOne("DinerDataBaseImplement.Models.Snack", "Product") .WithMany("Components") - .HasForeignKey("ProductID") + .HasForeignKey("SnackID") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); diff --git a/Diner/DinerDataBaseImplement/Models/Client.cs b/Diner/DinerDataBaseImplement/Models/Client.cs index 04ff8c3..b54c89d 100644 --- a/Diner/DinerDataBaseImplement/Models/Client.cs +++ b/Diner/DinerDataBaseImplement/Models/Client.cs @@ -39,6 +39,15 @@ namespace DinerDataBaseImplement.Models { }; } + public static Client Create(ClientViewModel model) { + return new Client { + ID = model.ID, + ClientFIO = model.ClientFIO, + Email = model.Email, + Password = model.Password + }; + } + public void Update(ClientBindingModel? model) { if (model == null) { return; diff --git a/Diner/DinerDataBaseImplement/Models/Order.cs b/Diner/DinerDataBaseImplement/Models/Order.cs index 4b31ac7..ef50ec7 100644 --- a/Diner/DinerDataBaseImplement/Models/Order.cs +++ b/Diner/DinerDataBaseImplement/Models/Order.cs @@ -11,7 +11,7 @@ namespace DinerDataBaseImplement.Models public class Order : IOrderModel { [Required] - public int ProductID { get; set; } + public int SnackID { get; set; } [Required] public int Count { get; set; } @@ -31,13 +31,13 @@ namespace DinerDataBaseImplement.Models public virtual Snack? Snack { get; set; } - public static Order? Create(OrderBindingModel? model) + public static Order? Create(OrderBindingModel? model) { if (model == null) return null; return new Order() { ID = model.ID, - ProductID = model.ProductID, + SnackID = model.SnackID, Count = model.Count, Sum = model.Sum, Status = model.Status, @@ -54,7 +54,7 @@ namespace DinerDataBaseImplement.Models public OrderViewModel GetViewModel => new() { ID = ID, - ProductID = ProductID, + SnackID = SnackID, Count = Count, Sum = Sum, Status = Status, diff --git a/Diner/DinerDataBaseImplement/Models/Snack.cs b/Diner/DinerDataBaseImplement/Models/Snack.cs index c0d4d65..c71361a 100644 --- a/Diner/DinerDataBaseImplement/Models/Snack.cs +++ b/Diner/DinerDataBaseImplement/Models/Snack.cs @@ -17,12 +17,12 @@ namespace DinerDataBaseImplement.Models public class Snack : ISnackModel { [Required] - public string ProductName { get; private set; } = string.Empty; + public string ProductName { get; set; } = string.Empty; [Required] - public double Price { get; private set; } + public double Price { get; set; } - public int ID { get; private set; } + public int ID { get; set; } private Dictionary? _productComponents = null; @@ -39,7 +39,7 @@ namespace DinerDataBaseImplement.Models return _productComponents; } } - [ForeignKey("ProductID")] + [ForeignKey("SnackID")] public virtual List Components { get; set; } = new(); public static Snack? Create(DinerDataBase context,SnackBindingModel model) { @@ -70,7 +70,7 @@ namespace DinerDataBaseImplement.Models }; public void UpdateComponents(DinerDataBase context, SnackBindingModel model) { - var productComponents = context.ProductComponents.Where(rec => rec.ProductID == model.ID).ToList(); + var productComponents = context.ProductComponents.Where(rec => rec.SnackID == model.ID).ToList(); if (ProductComponents != null && ProductComponents.Count > 0) { context.ProductComponents.RemoveRange(productComponents.Where(rec => !model.ProductComponents.ContainsKey(rec.ComponentID))); context.SaveChanges(); diff --git a/Diner/DinerDataBaseImplement/Models/SnackFood.cs b/Diner/DinerDataBaseImplement/Models/SnackFood.cs index 2b5eea0..fe61c8d 100644 --- a/Diner/DinerDataBaseImplement/Models/SnackFood.cs +++ b/Diner/DinerDataBaseImplement/Models/SnackFood.cs @@ -7,7 +7,7 @@ namespace DinerDataBaseImplement.Models public int ID { get; set; } [Required] - public int ProductID { get; set; } + public int SnackID { get; set; } [Required] public int ComponentID { get; set; } diff --git a/Diner/DinerDataModels/Models/IOrderModel.cs b/Diner/DinerDataModels/Models/IOrderModel.cs index d23ef8e..4701d7a 100644 --- a/Diner/DinerDataModels/Models/IOrderModel.cs +++ b/Diner/DinerDataModels/Models/IOrderModel.cs @@ -9,7 +9,7 @@ namespace DinerDataModels.Models { public interface IOrderModel : IID { - int ProductID { get; } + int SnackID { get; } int Count { get; } double Sum { get; } OrderStatus Status { get; } diff --git a/Diner/DinerListImplement/Implements/OrderStorage.cs b/Diner/DinerListImplement/Implements/OrderStorage.cs index 9c8bb55..9e07896 100644 --- a/Diner/DinerListImplement/Implements/OrderStorage.cs +++ b/Diner/DinerListImplement/Implements/OrderStorage.cs @@ -67,7 +67,7 @@ namespace DinerListImplement.Implements var viewModel = order.GetViewModel; foreach (var product in _source.Snacks) { - if (product.ID == order.ProductID) + if (product.ID == order.SnackID) { viewModel.ProductName = product.ProductName; break; diff --git a/Diner/DinerListImplement/Models/Order.cs b/Diner/DinerListImplement/Models/Order.cs index ad9e99e..41ce708 100644 --- a/Diner/DinerListImplement/Models/Order.cs +++ b/Diner/DinerListImplement/Models/Order.cs @@ -12,7 +12,7 @@ namespace DinerListImplement.Models { internal class Order : IOrderModel { - public int ProductID { get; private set; } + public int SnackID { get; private set; } public int Count { get; set; } @@ -31,7 +31,7 @@ namespace DinerListImplement.Models return new Order() { ID = model.ID, - ProductID = model.ProductID, + SnackID = model.SnackID, Count = model.Count, Sum = model.Sum, Status = model.Status, @@ -47,7 +47,7 @@ namespace DinerListImplement.Models public OrderViewModel GetViewModel => new() { ID = ID, - ProductID = ProductID, + SnackID = SnackID, Count = Count, Sum = Sum, Status = Status, diff --git a/Diner/DinerRestAPI/Controllers/ClientController.cs b/Diner/DinerRestAPI/Controllers/ClientController.cs index f7f931b..a4caa99 100644 --- a/Diner/DinerRestAPI/Controllers/ClientController.cs +++ b/Diner/DinerRestAPI/Controllers/ClientController.cs @@ -6,7 +6,7 @@ using Microsoft.AspNetCore.Mvc; namespace DinerRestApi.Controllers { - [Route("Api/[controller]/[action]")] + [Route("api/[controller]/[action]")] [ApiController] public class ClientController : Controller { @@ -19,8 +19,7 @@ namespace DinerRestApi.Controllers { _logic = logic; } - [HttpGet] - + [HttpGet] public ClientViewModel? Login(string login, string password) { try { return _logic.ReadELement(new ClientSearchModel { diff --git a/Diner/DinerRestAPI/Controllers/MainController.cs b/Diner/DinerRestAPI/Controllers/MainController.cs index 78c1ef0..cc93456 100644 --- a/Diner/DinerRestAPI/Controllers/MainController.cs +++ b/Diner/DinerRestAPI/Controllers/MainController.cs @@ -31,12 +31,12 @@ namespace DinerRestApi.Controllers { } [HttpGet] - public SnackViewModel? GetProduct(int ProductID) { + public SnackViewModel? GetProduct(int SnackID) { try { - return _product.ReadElement(new SnackSearchModel { ID = ProductID }); + return _product.ReadElement(new SnackSearchModel { ID = SnackID }); } catch (Exception ex) { - _logger.LogError(ex, $"Ошибка получения продуктапо ID={ProductID}"); + _logger.LogError(ex, $"Ошибка получения продуктапо ID={SnackID}"); throw; } } @@ -44,7 +44,7 @@ namespace DinerRestApi.Controllers { [HttpGet] public List? GetOrders(int ClientID) { try { - return _order.ReadList(new OrderSearchModel { ID = ClientID }); + return _order.ReadList(new OrderSearchModel { ClientID = ClientID }); } catch (Exception ex) { _logger.LogError(ex, $"Ошибка получения списка закаозов клиента ID={ClientID}"); diff --git a/Diner/DinerRestAPI/Program.cs b/Diner/DinerRestAPI/Program.cs index a37e41e..eb7762b 100644 --- a/Diner/DinerRestAPI/Program.cs +++ b/Diner/DinerRestAPI/Program.cs @@ -32,9 +32,9 @@ namespace DinerRestAPI { var app = builder.Build(); // Configure the HTTP request pipeline. - if (app.Environment.IsDevelopment()) { + if(app.Environment.IsDevelopment()) { app.UseSwagger(); - app.UseSwaggerUI(x => x.SwaggerEndpoint("/swagger/v1/swagger.json", "DinerRestApi v1")); + app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "DinerRestApi v1")); } app.UseHttpsRedirection(); diff --git a/Diner/DinerShopImplement/Implements/OrderStorage.cs b/Diner/DinerShopImplement/Implements/OrderStorage.cs index 37e6edb..73dd2a2 100644 --- a/Diner/DinerShopImplement/Implements/OrderStorage.cs +++ b/Diner/DinerShopImplement/Implements/OrderStorage.cs @@ -54,7 +54,7 @@ namespace DinerFileImplement.Implements { var viewModel = order.GetViewModel; var tmp = from p in _source.Snacks - where p.ID == order.ProductID + where p.ID == order.SnackID select p.ProductName; viewModel.ProductName = tmp.FirstOrDefault(string.Empty); return viewModel; diff --git a/Diner/DinerShopImplement/Models/Order.cs b/Diner/DinerShopImplement/Models/Order.cs index f5069ca..16a97fc 100644 --- a/Diner/DinerShopImplement/Models/Order.cs +++ b/Diner/DinerShopImplement/Models/Order.cs @@ -13,7 +13,7 @@ namespace DinerFileImplement.Models { internal class Order : IOrderModel { - public int ProductID { get; private set; } + public int SnackID { get; private set; } public int Count { get; set; } @@ -34,7 +34,7 @@ namespace DinerFileImplement.Models return new Order() { ID = model.ID, - ProductID = model.ProductID, + SnackID = model.SnackID, Count = model.Count, Sum = model.Sum, Status = model.Status, @@ -47,7 +47,7 @@ namespace DinerFileImplement.Models return new Order() { ID = Convert.ToInt32(element.Attribute("ID")!.Value), - ProductID = Convert.ToInt32(element.Element("ProductID")!.Value), + SnackID = Convert.ToInt32(element.Element("SnackID")!.Value), Count = Convert.ToInt32(element.Element("Count")!.Value), Sum = Convert.ToDouble(element.Element("Sum")!.Value), Status = (OrderStatus)Enum.Parse(typeof(OrderStatus), element.Element("Status")!.Value), @@ -55,8 +55,8 @@ namespace DinerFileImplement.Models DateImplement = string.IsNullOrEmpty(element.Element("DateImplement")!.Value) ? null : Convert.ToDateTime(element.Element("DateImplement")!.Value), }; - } - public void Update(OrderBindingModel? model) + } + public void Update(OrderBindingModel? model) { if (model == null) return; Status = model.Status; @@ -65,7 +65,7 @@ namespace DinerFileImplement.Models public OrderViewModel GetViewModel => new() { ID = ID, - ProductID = ProductID, + SnackID = SnackID, Count = Count, Sum = Sum, Status = Status, @@ -73,7 +73,7 @@ namespace DinerFileImplement.Models DateImplement = DateImplement, }; public XElement GetXElement => new("Order", new XAttribute("ID", ID), - new XElement("ProductID", ProductID), + new XElement("SnackID", SnackID), new XElement("Count", Count.ToString()), new XElement("Sum", Sum.ToString()), new XElement("Status", Status.ToString()), diff --git a/Diner/DinerView/FormCreateOrder.cs b/Diner/DinerView/FormCreateOrder.cs index ab0d45c..a4ace2e 100644 --- a/Diner/DinerView/FormCreateOrder.cs +++ b/Diner/DinerView/FormCreateOrder.cs @@ -77,7 +77,7 @@ namespace DinerView { var operationResult = _logicOrder.CreateOrder(new OrderBindingModel { - ProductID = Convert.ToInt32(comboBoxProduct.SelectedValue), + SnackID = Convert.ToInt32(comboBoxProduct.SelectedValue), Count = Convert.ToInt32(textBoxCount.Text), Sum = Convert.ToDouble(textBoxSum.Text), diff --git a/Diner/DinerView/FormMain.cs b/Diner/DinerView/FormMain.cs index 3a9f178..40a8758 100644 --- a/Diner/DinerView/FormMain.cs +++ b/Diner/DinerView/FormMain.cs @@ -36,7 +36,7 @@ namespace DinerView var list = _orderLogic.ReadList(null); if (list != null) { dataGridView.DataSource = list; - dataGridView.Columns["ProductID"].Visible = false; + dataGridView.Columns["SnackID"].Visible = false; dataGridView.Columns["Sum"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; } _logger.LogInformation("Загрузка заказов"); diff --git a/Diner/DineryBusinessLogic/BusinessLogic/ClientLogic.cs b/Diner/DineryBusinessLogic/BusinessLogic/ClientLogic.cs index 5badab2..4324a77 100644 --- a/Diner/DineryBusinessLogic/BusinessLogic/ClientLogic.cs +++ b/Diner/DineryBusinessLogic/BusinessLogic/ClientLogic.cs @@ -66,7 +66,7 @@ namespace DineryBusinessLogic.BusinessLogic { } public List? ReadList(ClientSearchModel? model) { - _logger.LogInformation($"ReadList. CLiendID:{model?.ID}"); + _logger.LogInformation($"ReadList. CLientID:{model?.ID}"); var list = model == null ? _storage.GetFullList() : _storage.GetFilteredList(model); if (list == null) { _logger.LogWarning("ReadList. return nell list"); diff --git a/Diner/DineryBusinessLogic/BusinessLogic/OrderLogic.cs b/Diner/DineryBusinessLogic/BusinessLogic/OrderLogic.cs index 9e3f458..b3c08ae 100644 --- a/Diner/DineryBusinessLogic/BusinessLogic/OrderLogic.cs +++ b/Diner/DineryBusinessLogic/BusinessLogic/OrderLogic.cs @@ -69,9 +69,9 @@ namespace DineryBusinessLogic.BusinessLogic throw new ArgumentNullException("Нет ID заказа", nameof(model.ID)); if (model.Sum <= 0) throw new ArgumentNullException("Цена заказа должна быть больше 0", nameof(model.Sum)); - _logger.LogInformation("Order. ProductID:{ProductID}. Count:{Count}. Sum:{Sum}. Status:{Status}. " + + _logger.LogInformation("Order. SnackID:{SnackID}. Count:{Count}. Sum:{Sum}. Status:{Status}. " + "DateCreate:{DateCreate}. DateImplement:{DateImplement}. ID:{ID}", - model.ProductID, model.Count, model.Sum, model.Status, model.DateCreate, model.DateImplement, model.ID); + model.SnackID, model.Count, model.Sum, model.Status, model.DateCreate, model.DateImplement, model.ID); } private bool StatusUpdate(OrderBindingModel model, OrderStatus newOrderStatus) { CheckModel(model, false); diff --git a/Diner/DineryBusinessLogic/OfficePackage/Implements/SaveToExcel.cs b/Diner/DineryBusinessLogic/OfficePackage/Implements/SaveToExcel.cs index 15b89fd..9635cdd 100644 --- a/Diner/DineryBusinessLogic/OfficePackage/Implements/SaveToExcel.cs +++ b/Diner/DineryBusinessLogic/OfficePackage/Implements/SaveToExcel.cs @@ -38,15 +38,19 @@ namespace DineryBusinessLogic.OfficePackage.Implements fontTittle.Append(new FontName() { Val = "Times New Roman" }); fontTittle.Append(new FontFamilyNumbering() { Val = 2 }); fontTittle.Append(new FontScheme() { Val = FontSchemeValues.Minor }); + fonts.Append(fontUsual); fonts.Append(fontTittle); + var fills = new Fills() { Count = 2U }; var fill1 = new Fill(); fill1.Append(new PatternFill() { PatternType = PatternValues.None }); var fill2 = new Fill(); fill2.Append(new PatternFill() { PatternType = PatternValues.Gray125 }); + fills.Append(fill1); fills.Append(fill2); + var borders = new Borders() { Count = 2U }; var borderNoBorder = new Border(); borderNoBorder.Append(new LeftBorder()); @@ -55,6 +59,7 @@ namespace DineryBusinessLogic.OfficePackage.Implements borderNoBorder.Append(new BottomBorder()); borderNoBorder.Append(new DiagonalBorder()); var borderThin = new Border(); + var leftBorder = new LeftBorder() { Style = BorderStyleValues.Thin }; leftBorder.Append(new DocumentFormat.OpenXml.Office2010.Excel.Color() { Indexed = 64U }); var rightBorder = new RightBorder() { Style = BorderStyleValues.Thin }; @@ -63,6 +68,7 @@ namespace DineryBusinessLogic.OfficePackage.Implements topBorder.Append(new DocumentFormat.OpenXml.Office2010.Excel.Color() { Indexed = 64U }); var bottomBorder = new BottomBorder() { Style = BorderStyleValues.Thin }; bottomBorder.Append(new DocumentFormat.OpenXml.Office2010.Excel.Color() { Indexed = 64U }); + borderThin.Append(leftBorder); borderThin.Append(rightBorder); borderThin.Append(topBorder); @@ -70,6 +76,7 @@ namespace DineryBusinessLogic.OfficePackage.Implements borderThin.Append(new DiagonalBorder()); borders.Append(borderNoBorder); borders.Append(borderThin); + var cellStyleFormats = new CellStyleFormats() { Count = 1U }; var cellFormatStyle = new CellFormat() { NumberFormatId = 0U, FontId = 0U, FillId = 0U, BorderId = 0U }; cellStyleFormats.Append(cellFormatStyle);