From 810311ae2e6baed433b30f8c17ab2fd1e95d55d3 Mon Sep 17 00:00:00 2001 From: Yunusov_Niyaz Date: Wed, 1 May 2024 13:17:20 +0400 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D0=B5=D0=BB=D1=8C:=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogic/PurchaseLogic.cs | 35 -------------- .../BusinessLogic/VisitLogic.cs | 48 ++++++++++--------- .../BindingModels/PurchaseBindingModel.cs | 6 +-- .../BindingModels/VisitBindingModel.cs | 4 +- .../BusinessLogicContracts/IPurchaseLogic.cs | 3 -- .../BusinessLogicContracts/IVisitLogic.cs | 6 +-- .../SearchModels/PurchaseSearchModel.cs | 6 +-- .../SearchModels/VisitSearchModel.cs | 5 +- .../ViewModels/PurchaseViewModel.cs | 4 -- .../ViewModels/VisitViewModel.cs | 3 -- .../Enums/PurchaseStatus.cs | 11 ----- .../VeterinaryDataModels/Enums/VisitStatus.cs | 10 ---- .../Models/IPurchaseModel.cs | 6 +-- .../Models/IVisitModel.cs | 5 +- 14 files changed, 35 insertions(+), 117 deletions(-) delete mode 100644 VeterinaryView/VeterinaryDataModels/Enums/PurchaseStatus.cs delete mode 100644 VeterinaryView/VeterinaryDataModels/Enums/VisitStatus.cs diff --git a/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/PurchaseLogic.cs b/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/PurchaseLogic.cs index 40e2a96..173e70c 100644 --- a/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/PurchaseLogic.cs +++ b/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/PurchaseLogic.cs @@ -4,7 +4,6 @@ using VeterinaryContracts.BusinessLogicContracts; using VeterinaryContracts.SearchModels; using VeterinaryContracts.StorageContracts; using VeterinaryContracts.ViewModels; -using VeterinaryDataModels.Enums; namespace VeterinaryBusinessLogic.BusinessLogic { @@ -59,40 +58,6 @@ namespace VeterinaryBusinessLogic.BusinessLogic } return true; } - public bool ChangeStatus(PurchaseBindingModel model, PurchaseStatus status) - { - CheckModel(model); - var element = _purchaseStorage.GetElement(new PurchaseSearchModel { Id = model.Id }); - if (element == null) - { - _logger.LogWarning("Read operation failed"); - return false; - } - if (element.Status != status - 1) - { - _logger.LogWarning("Status change operation failed"); - throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); - } - model.Status = status; - if (model.Status == PurchaseStatus.Выдан) model.DateImplement = DateTime.Now; - _purchaseStorage.Update(model); - return true; - } - - public bool BeginPurchase(PurchaseBindingModel model) - { - return ChangeStatus(model, PurchaseStatus.Собирается); - } - - public bool FinishPurchase(PurchaseBindingModel model) - { - return ChangeStatus(model, PurchaseStatus.Готов); - } - - public bool DeliveryPurchase(PurchaseBindingModel model) - { - return ChangeStatus(model, PurchaseStatus.Выдан); - } private void CheckModel(PurchaseBindingModel model, bool withParams = true) { if (model == null) diff --git a/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/VisitLogic.cs b/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/VisitLogic.cs index 63e2a0f..e2a3786 100644 --- a/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/VisitLogic.cs +++ b/VeterinaryView/VeterinaryBusinessLogic/BusinessLogic/VisitLogic.cs @@ -4,7 +4,6 @@ using VeterinaryContracts.BusinessLogicContracts; using VeterinaryContracts.SearchModels; using VeterinaryContracts.StorageContracts; using VeterinaryContracts.ViewModels; -using VeterinaryDataModels.Enums; namespace VeterinaryBusinessLogic.BusinessLogic { @@ -50,7 +49,7 @@ namespace VeterinaryBusinessLogic.BusinessLogic return list; } - public bool CreateVisit(VisitBindingModel model) + public bool Create(VisitBindingModel model) { CheckModel(model); if (_visitStorage.Insert(model) == null) @@ -60,34 +59,26 @@ namespace VeterinaryBusinessLogic.BusinessLogic } return true; } - public bool ChangeStatus(VisitBindingModel model, VisitStatus status) + public bool Update(VisitBindingModel model) { CheckModel(model); - var element = _visitStorage.GetElement(new VisitSearchModel { Id = model.Id }); - if (element == null) + if (_visitStorage.Update(model) == null) { - _logger.LogWarning("Read operation failed"); + _logger.LogWarning("Update operation failed"); return false; } - if (element.Status != status - 1) - { - _logger.LogWarning("Status change operation failed"); - throw new InvalidOperationException("Текущий статус заказа не может быть переведен в выбранный"); - } - model.Status = status; - if (model.Status == VisitStatus.Закончен) model.DateVisit = DateTime.Now; - _visitStorage.Update(model); return true; } - - public bool BeginVisit(VisitBindingModel model) + public bool Delete(VisitBindingModel model) { - return ChangeStatus(model, VisitStatus.Выполняется); - } - - public bool FinishVisit(VisitBindingModel model) - { - return ChangeStatus(model, VisitStatus.Закончен); + CheckModel(model, false); + _logger.LogInformation("Delete. Id:{Id}", model.Id); + if (_visitStorage.Delete(model) == null) + { + _logger.LogWarning("Delete operation failed"); + return false; + } + return true; } private void CheckModel(VisitBindingModel model, bool withParams = true) { @@ -103,11 +94,24 @@ namespace VeterinaryBusinessLogic.BusinessLogic { throw new ArgumentNullException("Нет названия визита", nameof(model.VisitName)); } + if (model.DateVisit != null) + { + throw new ArgumentNullException("Нет времени визита", + nameof(model.DateVisit)); + } if (model.DateVisit >= DateTime.Now) { throw new ArgumentNullException("Дата посещения не должна быть в прошлом", nameof(model.DateVisit)); } _logger.LogInformation("Visit. Visit:{NameVisit}. DateVisit:{ DateVisit}. Id: { Id}", model.VisitName, model.DateVisit, model.Id); + var element = _visitStorage.GetElement(new VisitSearchModel + { + VisitName = model.VisitName + }); + if (element != null && element.Id != model.Id) + { + throw new InvalidOperationException("Визит с таким названием уже есть"); + } } } } diff --git a/VeterinaryView/VeterinaryContracts/BindingModels/PurchaseBindingModel.cs b/VeterinaryView/VeterinaryContracts/BindingModels/PurchaseBindingModel.cs index e06f468..151003a 100644 --- a/VeterinaryView/VeterinaryContracts/BindingModels/PurchaseBindingModel.cs +++ b/VeterinaryView/VeterinaryContracts/BindingModels/PurchaseBindingModel.cs @@ -1,5 +1,4 @@ -using VeterinaryDataModels.Enums; -using VeterinaryDataModels.Models; +using VeterinaryDataModels.Models; namespace VeterinaryContracts.BindingModels { @@ -10,10 +9,7 @@ namespace VeterinaryContracts.BindingModels public int DrugId { get; set; } public int Count { get; set; } public double Sum { get; set; } - public PurchaseStatus Status { get; set; } public DateTime DateCreate { get; set; } - public DateTime DateImplement { get; set; } - public Dictionary PurchasePet { get; set; } = new(); } } diff --git a/VeterinaryView/VeterinaryContracts/BindingModels/VisitBindingModel.cs b/VeterinaryView/VeterinaryContracts/BindingModels/VisitBindingModel.cs index 6738168..e1cc943 100644 --- a/VeterinaryView/VeterinaryContracts/BindingModels/VisitBindingModel.cs +++ b/VeterinaryView/VeterinaryContracts/BindingModels/VisitBindingModel.cs @@ -1,5 +1,4 @@ -using VeterinaryDataModels.Enums; -using VeterinaryDataModels.Models; +using VeterinaryDataModels.Models; namespace VeterinaryContracts.BindingModels { @@ -9,7 +8,6 @@ namespace VeterinaryContracts.BindingModels public int OwnerId { get; set; } public int? DoctorId { get; set; } = null; public string VisitName { get; set; } = string.Empty; - public VisitStatus Status { get; set; } public DateTime DateVisit { get; set; } public Dictionary VisitPet { get; set; } = new(); } diff --git a/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IPurchaseLogic.cs b/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IPurchaseLogic.cs index b2580c1..9066477 100644 --- a/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IPurchaseLogic.cs +++ b/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IPurchaseLogic.cs @@ -9,8 +9,5 @@ namespace VeterinaryContracts.BusinessLogicContracts List? ReadList(PurchaseSearchModel? model); PurchaseViewModel? ReadElement(PurchaseSearchModel model); bool CreatePurchase(PurchaseBindingModel model); - bool BeginPurchase(PurchaseBindingModel model); - bool FinishPurchase(PurchaseBindingModel model); - bool DeliveryPurchase(PurchaseBindingModel model); } } diff --git a/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IVisitLogic.cs b/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IVisitLogic.cs index 1c2e9ce..2ddf4a0 100644 --- a/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IVisitLogic.cs +++ b/VeterinaryView/VeterinaryContracts/BusinessLogicContracts/IVisitLogic.cs @@ -8,8 +8,8 @@ namespace VeterinaryContracts.BusinessLogicContracts { List? ReadList(VisitSearchModel? model); VisitViewModel? ReadElement(VisitSearchModel model); - bool CreateVisit(VisitBindingModel model); - bool BeginVisit(VisitBindingModel model); - bool FinishVisit(VisitBindingModel model); + bool Create(VisitBindingModel model); + bool Update(VisitBindingModel model); + bool Delete(VisitBindingModel model); } } diff --git a/VeterinaryView/VeterinaryContracts/SearchModels/PurchaseSearchModel.cs b/VeterinaryView/VeterinaryContracts/SearchModels/PurchaseSearchModel.cs index 6db757a..f29daec 100644 --- a/VeterinaryView/VeterinaryContracts/SearchModels/PurchaseSearchModel.cs +++ b/VeterinaryView/VeterinaryContracts/SearchModels/PurchaseSearchModel.cs @@ -1,14 +1,10 @@ -using VeterinaryDataModels.Enums; - -namespace VeterinaryContracts.SearchModels +namespace VeterinaryContracts.SearchModels { public class PurchaseSearchModel { public int? Id { get; set; } public int? OwnerId { get; set; } public int? DrugId { get; set; } - public PurchaseStatus? Status { get; set; } public DateTime? DateCreate { get; set; } - public DateTime? DateImplement { get; set; } } } diff --git a/VeterinaryView/VeterinaryContracts/SearchModels/VisitSearchModel.cs b/VeterinaryView/VeterinaryContracts/SearchModels/VisitSearchModel.cs index 15d07b7..64d2f28 100644 --- a/VeterinaryView/VeterinaryContracts/SearchModels/VisitSearchModel.cs +++ b/VeterinaryView/VeterinaryContracts/SearchModels/VisitSearchModel.cs @@ -1,6 +1,4 @@ -using VeterinaryDataModels.Enums; - -namespace VeterinaryContracts.SearchModels +namespace VeterinaryContracts.SearchModels { public class VisitSearchModel { @@ -8,7 +6,6 @@ namespace VeterinaryContracts.SearchModels public int? OwnerId { get; set; } public int? DoctorId { get; set; } public string? VisitName { get; set; } - public VisitStatus? Status { get; set; } public DateTime? DateVisit { get; set; } } } diff --git a/VeterinaryView/VeterinaryContracts/ViewModels/PurchaseViewModel.cs b/VeterinaryView/VeterinaryContracts/ViewModels/PurchaseViewModel.cs index 33eb3a3..1fdca01 100644 --- a/VeterinaryView/VeterinaryContracts/ViewModels/PurchaseViewModel.cs +++ b/VeterinaryView/VeterinaryContracts/ViewModels/PurchaseViewModel.cs @@ -15,12 +15,8 @@ namespace VeterinaryContracts.ViewModels public int Count { get; set; } [DisplayName("Сумма")] public double Sum { get; set; } - [DisplayName("Статус")] - public PurchaseStatus Status { get; set; } [DisplayName("Дата покупки")] public DateTime DateCreate { get; set; } - [DisplayName("Дата завершения покупки")] - public DateTime DateImplement { get; set; } public Dictionary PurchasePet { get; set; } = new(); } } diff --git a/VeterinaryView/VeterinaryContracts/ViewModels/VisitViewModel.cs b/VeterinaryView/VeterinaryContracts/ViewModels/VisitViewModel.cs index 2f679de..aa74ce0 100644 --- a/VeterinaryView/VeterinaryContracts/ViewModels/VisitViewModel.cs +++ b/VeterinaryView/VeterinaryContracts/ViewModels/VisitViewModel.cs @@ -1,5 +1,4 @@ using System.ComponentModel; -using VeterinaryDataModels.Enums; using VeterinaryDataModels.Models; namespace VeterinaryContracts.ViewModels @@ -13,8 +12,6 @@ namespace VeterinaryContracts.ViewModels public int? DoctorId { get; set; } = null; [DisplayName("Название визита")] public string VisitName { get; set; } = string.Empty; - [DisplayName("Статус")] - public VisitStatus Status { get; set; } [DisplayName("Дата посещения")] public DateTime DateVisit { get; set; } public Dictionary VisitPet { get; set; } = new(); diff --git a/VeterinaryView/VeterinaryDataModels/Enums/PurchaseStatus.cs b/VeterinaryView/VeterinaryDataModels/Enums/PurchaseStatus.cs deleted file mode 100644 index 3fc343d..0000000 --- a/VeterinaryView/VeterinaryDataModels/Enums/PurchaseStatus.cs +++ /dev/null @@ -1,11 +0,0 @@ -namespace VeterinaryDataModels.Enums -{ - public enum PurchaseStatus - { - Неизвестен = -1, - Принят = 0, - Собирается = 1, - Готов = 2, - Выдан = 3 - } -} diff --git a/VeterinaryView/VeterinaryDataModels/Enums/VisitStatus.cs b/VeterinaryView/VeterinaryDataModels/Enums/VisitStatus.cs deleted file mode 100644 index 1021c08..0000000 --- a/VeterinaryView/VeterinaryDataModels/Enums/VisitStatus.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace VeterinaryDataModels.Enums -{ - public enum VisitStatus - { - Неизвестен = -1, - Забронировано = 0, - Выполняется = 1, - Закончен = 2, - } -} diff --git a/VeterinaryView/VeterinaryDataModels/Models/IPurchaseModel.cs b/VeterinaryView/VeterinaryDataModels/Models/IPurchaseModel.cs index c0f188f..3fff72a 100644 --- a/VeterinaryView/VeterinaryDataModels/Models/IPurchaseModel.cs +++ b/VeterinaryView/VeterinaryDataModels/Models/IPurchaseModel.cs @@ -1,6 +1,4 @@ -using VeterinaryDataModels.Enums; - -namespace VeterinaryDataModels.Models +namespace VeterinaryDataModels.Models { public interface IPurchaseModel : IId { @@ -8,9 +6,7 @@ namespace VeterinaryDataModels.Models int DrugId { get; } int Count { get; } double Sum { get; } - PurchaseStatus Status { get; } DateTime DateCreate { get; } - DateTime DateImplement { get; } Dictionary PurchasePet { get; } } } diff --git a/VeterinaryView/VeterinaryDataModels/Models/IVisitModel.cs b/VeterinaryView/VeterinaryDataModels/Models/IVisitModel.cs index b2999c7..42bc64c 100644 --- a/VeterinaryView/VeterinaryDataModels/Models/IVisitModel.cs +++ b/VeterinaryView/VeterinaryDataModels/Models/IVisitModel.cs @@ -1,6 +1,4 @@ -using VeterinaryDataModels.Enums; - -namespace VeterinaryDataModels.Models +namespace VeterinaryDataModels.Models { public interface IVisitModel : IId { @@ -8,7 +6,6 @@ namespace VeterinaryDataModels.Models int? DoctorId { get; } string VisitName { get; } DateTime DateVisit { get; } - VisitStatus Status { get; } Dictionary VisitPet { get; } } }