diff --git a/FishFactory/FishFactory.csproj b/FishFactory/FishFactory.csproj
index 13ee669..95274fe 100644
--- a/FishFactory/FishFactory.csproj
+++ b/FishFactory/FishFactory.csproj
@@ -9,12 +9,6 @@
-
-
- runtime; build; native; contentfiles; analyzers; buildtransitive
- all
-
-
@@ -22,7 +16,6 @@
-
diff --git a/FishFactory/FishFactory.sln b/FishFactory/FishFactory.sln
index a986a5c..c761982 100644
--- a/FishFactory/FishFactory.sln
+++ b/FishFactory/FishFactory.sln
@@ -15,8 +15,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FishFactoryListImplement",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FishFactoryFileImplement", "..\FishFactoryFileImplement\FishFactoryFileImplement.csproj", "{4EB943AB-67A8-4386-8874-FA0E3E98159C}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FishFactoryDatabaseImplement", "..\FishFactoryDatabaseImplement\FishFactoryDatabaseImplement.csproj", "{5744376D-B7D8-4FFD-B6D9-F53C169B056C}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -73,14 +71,6 @@ Global
{4EB943AB-67A8-4386-8874-FA0E3E98159C}.Release|Any CPU.Build.0 = Release|Any CPU
{4EB943AB-67A8-4386-8874-FA0E3E98159C}.Release|x86.ActiveCfg = Release|Any CPU
{4EB943AB-67A8-4386-8874-FA0E3E98159C}.Release|x86.Build.0 = Release|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Debug|x86.Build.0 = Debug|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Release|Any CPU.Build.0 = Release|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Release|x86.ActiveCfg = Release|Any CPU
- {5744376D-B7D8-4FFD-B6D9-F53C169B056C}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/FishFactory/Program.cs b/FishFactory/Program.cs
index ba4bc0a..1aa0d38 100644
--- a/FishFactory/Program.cs
+++ b/FishFactory/Program.cs
@@ -2,7 +2,7 @@ using FishFactory.Forms;
using FishFactoryContracts.BusinessLogicsContracts;
using FishFactoryBusinessLogic.BusinessLogic;
using FishFactoryContracts.StoragesContracts;
-using FishFactoryDatabaseImplement.Implements;
+using FishFactoryFileImplement.Implements;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using NLog.Extensions.Logging;
diff --git a/FishFactoryContracts/StoragesContracts/IOrderStorage.cs b/FishFactoryContracts/StoragesContracts/IOrderStorage.cs
index a81b868..1f385c5 100644
--- a/FishFactoryContracts/StoragesContracts/IOrderStorage.cs
+++ b/FishFactoryContracts/StoragesContracts/IOrderStorage.cs
@@ -1,6 +1,11 @@
using FishFactoryContracts.BindingModels;
using FishFactoryContracts.SearchModels;
using FishFactoryContracts.ViewModels;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
namespace FishFactoryContracts.StoragesContracts
{
diff --git a/FishFactoryDatabaseImplement/FishFactoryDatabase.cs b/FishFactoryDatabaseImplement/FishFactoryDatabase.cs
deleted file mode 100644
index 89c09ee..0000000
--- a/FishFactoryDatabaseImplement/FishFactoryDatabase.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using FishFactoryDatabaseImplement.Models;
-using Microsoft.EntityFrameworkCore;
-
-namespace FishFactoryDatabaseImplement
-{
- public class FishFactoryDatabase : DbContext
- {
- protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
- {
- if (optionsBuilder.IsConfigured == false)
- {
- optionsBuilder.UseSqlServer(@"Data Source=CHESHIR\SQLEXPRESS;Initial Catalog=FishFactoryDatabase;Integrated Security=True;MultipleActiveResultSets=True;;TrustServerCertificate=True");
- }
- base.OnConfiguring(optionsBuilder);
- }
- public virtual DbSet Components { set; get; }
- public virtual DbSet Canneds { set; get; }
- public virtual DbSet CannedComponents { set; get; }
- public virtual DbSet Orders { set; get; }
- }
-}
diff --git a/FishFactoryDatabaseImplement/FishFactoryDatabaseImplement.csproj b/FishFactoryDatabaseImplement/FishFactoryDatabaseImplement.csproj
deleted file mode 100644
index 338b17d..0000000
--- a/FishFactoryDatabaseImplement/FishFactoryDatabaseImplement.csproj
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- net6.0
- enable
- enable
-
-
-
-
-
- all
- runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
-
-
-
-
-
-
-
-
diff --git a/FishFactoryDatabaseImplement/Implements/CannedStorage.cs b/FishFactoryDatabaseImplement/Implements/CannedStorage.cs
deleted file mode 100644
index 526a8a5..0000000
--- a/FishFactoryDatabaseImplement/Implements/CannedStorage.cs
+++ /dev/null
@@ -1,101 +0,0 @@
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.SearchModels;
-using FishFactoryContracts.StoragesContracts;
-using FishFactoryContracts.ViewModels;
-using FishFactoryDatabaseImplement.Models;
-using Microsoft.EntityFrameworkCore;
-
-namespace FishFactoryDatabaseImplement.Implements
-{
- public class CannedStorage : ICannedStorage
- {
- public List GetFullList()
- {
- using var context = new FishFactoryDatabase();
- return context.Canneds
- .Include(x => x.Components)
- .ThenInclude(x => x.Component)
- .ToList()
- .Select(x => x.GetViewModel)
- .ToList();
- }
- public List GetFilteredList(CannedSearchModel model)
- {
- if (string.IsNullOrEmpty(model.CannedName))
- {
- return new();
- }
- using var context = new FishFactoryDatabase();
- return context.Canneds
- .Include(x => x.Components)
- .ThenInclude(x => x.Component)
- .Where(x => x.CannedName.Contains(model.CannedName))
- .ToList()
- .Select(x => x.GetViewModel)
- .ToList();
- }
- public CannedViewModel? GetElement(CannedSearchModel model)
- {
- if (string.IsNullOrEmpty(model.CannedName) && !model.Id.HasValue)
- {
- return null;
- }
- using var context = new FishFactoryDatabase();
- return context.Canneds
- .Include(x => x.Components)
- .ThenInclude(x => x.Component)
- .FirstOrDefault(x => (!string.IsNullOrEmpty(model.CannedName) && x.CannedName == model.CannedName) ||
- (model.Id.HasValue && x.Id == model.Id))
- ?.GetViewModel;
- }
- public CannedViewModel? Insert(CannedBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var newCanned = Canned.Create(context, model);
- if (newCanned == null)
- {
- return null;
- }
- context.Canneds.Add(newCanned);
- context.SaveChanges();
- return newCanned.GetViewModel;
- }
- public CannedViewModel? Update(CannedBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- using var transaction = context.Database.BeginTransaction();
- try
- {
- var product = context.Canneds.FirstOrDefault(rec => rec.Id == model.Id);
- if (product == null)
- {
- return null;
- }
- product.Update(model);
- context.SaveChanges();
- product.UpdateComponents(context, model);
- transaction.Commit();
- return product.GetViewModel;
- }
- catch
- {
- transaction.Rollback();
- throw;
- }
- }
- public CannedViewModel? Delete(CannedBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var element = context.Canneds
- .Include(x => x.Components)
- .FirstOrDefault(rec => rec.Id == model.Id);
- if (element != null)
- {
- context.Canneds.Remove(element);
- context.SaveChanges();
- return element.GetViewModel;
- }
- return null;
- }
- }
-}
diff --git a/FishFactoryDatabaseImplement/Implements/ComponentStorage.cs b/FishFactoryDatabaseImplement/Implements/ComponentStorage.cs
deleted file mode 100644
index 2021947..0000000
--- a/FishFactoryDatabaseImplement/Implements/ComponentStorage.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.SearchModels;
-using FishFactoryContracts.StoragesContracts;
-using FishFactoryContracts.ViewModels;
-using FishFactoryDatabaseImplement.Models;
-
-namespace FishFactoryDatabaseImplement.Implements
-{
- public class ComponentStorage : IComponentStorage
- {
- public List GetFullList()
- {
- using var context = new FishFactoryDatabase();
- return context.Components
- .Select(x => x.GetViewModel).ToList();
- }
- public List GetFilteredList(ComponentSearchModel model)
- {
- if (string.IsNullOrEmpty(model.ComponentName))
- {
- return new();
- }
- using var context = new FishFactoryDatabase();
- return context.Components
- .Where(x => x.ComponentName.Contains(model.ComponentName))
- .Select(x => x.GetViewModel)
- .ToList();
- }
- public ComponentViewModel? GetElement(ComponentSearchModel model)
- {
- if (string.IsNullOrEmpty(model.ComponentName) && !model.Id.HasValue)
- {
- return null;
- }
- using var context = new FishFactoryDatabase();
- return context.Components
- .FirstOrDefault(x => (!string.IsNullOrEmpty(model.ComponentName) && x.ComponentName == model.ComponentName) || (model.Id.HasValue && x.Id == model.Id))?.GetViewModel;
- }
- public ComponentViewModel? Insert(ComponentBindingModel model)
- {
- var newComponent = Component.Create(model);
- if (newComponent == null)
- {
- return null;
- }
- using var context = new FishFactoryDatabase();
- context.Components.Add(newComponent);
- context.SaveChanges();
- return newComponent.GetViewModel;
- }
- public ComponentViewModel? Update(ComponentBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var component = context.Components.FirstOrDefault(x => x.Id == model.Id);
- if (component == null)
- {
- return null;
- }
- component.Update(model);
- context.SaveChanges();
- return component.GetViewModel;
- }
- public ComponentViewModel? Delete(ComponentBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var element = context.Components.FirstOrDefault(rec => rec.Id == model.Id);
- if (element != null)
- {
- context.Components.Remove(element);
- context.SaveChanges();
- return element.GetViewModel;
- }
- return null;
- }
- }
-}
diff --git a/FishFactoryDatabaseImplement/Implements/OrderStorage.cs b/FishFactoryDatabaseImplement/Implements/OrderStorage.cs
deleted file mode 100644
index 3c38dca..0000000
--- a/FishFactoryDatabaseImplement/Implements/OrderStorage.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.SearchModels;
-using FishFactoryContracts.StoragesContracts;
-using FishFactoryContracts.ViewModels;
-using FishFactoryDatabaseImplement.Models;
-using Microsoft.EntityFrameworkCore;
-
-namespace FishFactoryDatabaseImplement.Implements
-{
- public class OrderStorage : IOrderStorage
- {
- public List GetFullList()
- {
- using var context = new FishFactoryDatabase();
- return context.Orders
- .Include(x => x.Canned)
- .Select(x => x.GetViewModel)
- .ToList();
- }
- public List GetFilteredList(OrderSearchModel model)
- {
- if (!model.Id.HasValue)
- {
- return new();
- }
- using var context = new FishFactoryDatabase();
- return context.Orders
- .Include(x => x.Canned)
- .Where(x => x.Id == model.Id)
- .Select(x => x.GetViewModel)
- .ToList();
- }
- public OrderViewModel? GetElement(OrderSearchModel model)
- {
- if (!model.Id.HasValue)
- {
- return new();
- }
- using var context = new FishFactoryDatabase();
- return context.Orders
- .Include(x => x.Canned)
- .FirstOrDefault(x => x.Id == model.Id)
- ?.GetViewModel;
- }
- public OrderViewModel? Insert(OrderBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- if (model == null)
- return null;
- var newOrder = Order.Create(context, model);
- if (newOrder == null)
- {
- return null;
- }
- context.Orders.Add(newOrder);
- context.SaveChanges();
- return newOrder.GetViewModel;
- }
- public OrderViewModel? Update(OrderBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var order = context.Orders.FirstOrDefault(x => x.Id == model.Id);
- if (order == null)
- {
- return null;
- }
- order.Update(model);
- context.SaveChanges();
- return order.GetViewModel;
- }
- public OrderViewModel? Delete(OrderBindingModel model)
- {
- using var context = new FishFactoryDatabase();
- var order = context.Orders.FirstOrDefault(rec => rec.Id == model.Id);
- if (order != null)
- {
- context.Orders.Remove(order);
- context.SaveChanges();
- return order.GetViewModel;
- }
- return null;
- }
- }
-}
diff --git a/FishFactoryDatabaseImplement/Models/Canned.cs b/FishFactoryDatabaseImplement/Models/Canned.cs
deleted file mode 100644
index 9202805..0000000
--- a/FishFactoryDatabaseImplement/Models/Canned.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.ViewModels;
-using FishFactoryDataModel.Models;
-using System.ComponentModel.DataAnnotations.Schema;
-using System.ComponentModel.DataAnnotations;
-
-namespace FishFactoryDatabaseImplement.Models
-{
- public class Canned
- {
- public int Id { get; set; }
- [Required]
- public string CannedName { get; set; } = string.Empty;
- [Required]
- public double Price { get; set; }
- private Dictionary? _cannedComponents = null;
- [NotMapped]
- public Dictionary CannedComponents
- {
- get
- {
- if (_cannedComponents == null)
- {
- _cannedComponents = Components.ToDictionary(recPC => recPC.ComponentId, recPC => (recPC.Component as IComponentModel, recPC.Count));
- }
- return _cannedComponents;
- }
- }
- [ForeignKey("CannedId")]
- public virtual List Components { get; set; } = new();
- [ForeignKey("CannedId")]
- public virtual List Orders { get; set; } = new();
- public static Canned Create(FishFactoryDatabase context, CannedBindingModel model)
- {
- return new Canned()
- {
- Id = model.Id,
- CannedName = model.CannedName,
- Price = model.Price,
- Components = model.CannedComponents.Select(x => new CannedComponent
- {
- Component = context.Components.First(y => y.Id == x.Key),
- Count = x.Value.Item2
- }).ToList()
- };
- }
- public void Update(CannedBindingModel model)
- {
- CannedName = model.CannedName;
- Price = model.Price;
- }
- public CannedViewModel GetViewModel => new()
- {
- Id = Id,
- CannedName = CannedName,
- Price = Price,
- CannedComponents = CannedComponents
- };
- public void UpdateComponents(FishFactoryDatabase context, CannedBindingModel model)
- {
- var cannedComponents = context.CannedComponents.Where(rec => rec.CannedId == model.Id).ToList();
- if (cannedComponents != null && cannedComponents.Count > 0)
- { // удалили те, которых нет в модели
- context.CannedComponents.RemoveRange(cannedComponents.Where(rec => !model.CannedComponents.ContainsKey(rec.ComponentId)));
- context.SaveChanges();
- // обновили количество у существующих записей
- foreach (var updateComponent in cannedComponents)
- {
- updateComponent.Count = model.CannedComponents[updateComponent.ComponentId].Item2;
- model.CannedComponents.Remove(updateComponent.ComponentId);
- }
- context.SaveChanges();
- }
- var canned = context.Canneds.First(x => x.Id == Id);
- foreach (var pc in model.CannedComponents)
- {
- context.CannedComponents.Add(new CannedComponent
- {
- Canned = canned,
- Component = context.Components.First(x => x.Id == pc.Key),
- Count = pc.Value.Item2
- });
- context.SaveChanges();
- }
- _cannedComponents = null;
- }
- }
-}
diff --git a/FishFactoryDatabaseImplement/Models/CannedComponent.cs b/FishFactoryDatabaseImplement/Models/CannedComponent.cs
deleted file mode 100644
index 785a669..0000000
--- a/FishFactoryDatabaseImplement/Models/CannedComponent.cs
+++ /dev/null
@@ -1,17 +0,0 @@
-using System.ComponentModel.DataAnnotations;
-
-namespace FishFactoryDatabaseImplement.Models
-{
- public class CannedComponent
- {
- public int Id { get; set; }
- [Required]
- public int CannedId { get; set; }
- [Required]
- public int ComponentId { get; set; }
- [Required]
- public int Count { get; set; }
- public virtual Component Component { get; set; } = new();
- public virtual Canned Canned { get; set; } = new();
- }
-}
\ No newline at end of file
diff --git a/FishFactoryDatabaseImplement/Models/Component.cs b/FishFactoryDatabaseImplement/Models/Component.cs
deleted file mode 100644
index d811164..0000000
--- a/FishFactoryDatabaseImplement/Models/Component.cs
+++ /dev/null
@@ -1,56 +0,0 @@
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.ViewModels;
-using FishFactoryDataModel.Models;
-using System.ComponentModel.DataAnnotations;
-using System.ComponentModel.DataAnnotations.Schema;
-
-namespace FishFactoryDatabaseImplement.Models
-{
- public class Component : IComponentModel
- {
- public int Id { get; private set; }
- [Required]
- public string ComponentName { get; private set; } = string.Empty;
- [Required]
- public double Cost { get; set; }
- [ForeignKey("ComponentId")]
- public virtual List CannedComponents { get; set; } = new();
- public static Component? Create(ComponentBindingModel model)
- {
- if (model == null)
- {
- return null;
- }
- return new Component()
- {
- Id = model.Id,
- ComponentName = model.ComponentName,
- Cost = model.Cost
- };
- }
- public static Component Create(ComponentViewModel model)
- {
- return new Component
- {
- Id = model.Id,
- ComponentName = model.ComponentName,
- Cost = model.Cost
- };
- }
- public void Update(ComponentBindingModel model)
- {
- if (model == null)
- {
- return;
- }
- ComponentName = model.ComponentName;
- Cost = model.Cost;
- }
- public ComponentViewModel GetViewModel => new()
- {
- Id = Id,
- ComponentName = ComponentName,
- Cost = Cost
- };
- }
-}
\ No newline at end of file
diff --git a/FishFactoryDatabaseImplement/Models/Order.cs b/FishFactoryDatabaseImplement/Models/Order.cs
deleted file mode 100644
index 4b24b0e..0000000
--- a/FishFactoryDatabaseImplement/Models/Order.cs
+++ /dev/null
@@ -1,55 +0,0 @@
-using System.ComponentModel.DataAnnotations.Schema;
-using System.ComponentModel.DataAnnotations;
-using FishFactoryDataModel.Enums;
-using FishFactoryContracts.BindingModels;
-using FishFactoryContracts.ViewModels;
-
-namespace FishFactoryDatabaseImplement.Models
-{
- public class Order
- {
- public int Id { get; set; }
- [Required]
- public int CannedId { get; set; }
- public virtual Canned Canned { get; set; } = new();
- [Required]
- public int Count { get; set; }
- [Required]
- public double Sum { get; set; }
- [Required]
- public OrderStatus Status { get; set; } = OrderStatus.Неизвестен;
- [Required]
- public DateTime DateCreate { get; set; } = DateTime.Now;
- public DateTime? DateImplement { get; set; }
- public static Order Create (FishFactoryDatabase context, OrderBindingModel model)
- {
- return new Order()
- {
- Id = model.Id,
- CannedId = model.CannedId,
- Canned = context.Canneds.First(x => x.Id == model.CannedId),
- Count = model.Count,
- Sum = model.Sum,
- Status = model.Status,
- DateCreate = model.DateCreate,
- DateImplement = model.DateImplement,
- };
- }
- public void Update(OrderBindingModel model)
- {
- Status = model.Status;
- DateImplement = model.DateImplement;
- }
- public OrderViewModel GetViewModel => new()
- {
- Id = Id,
- CannedId = CannedId,
- CannedName = Canned.CannedName,
- Count = Count,
- Sum = Sum,
- Status = Status,
- DateCreate = DateCreate,
- DateImplement = DateImplement,
- };
- }
-}