From d0c8f5ac217a2f37ca2ddb65d4a5b0959442f5c3 Mon Sep 17 00:00:00 2001 From: Polina Date: Mon, 29 Apr 2024 17:06:56 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=B0=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BindingModels/ClientBindingModel.cs | 22 +++++++++++ .../BindingModels/PurchaseBindingModel.cs | 15 +++++++ .../SearchModels/ClassSearchModel.cs | 12 ++++++ .../SearchModels/ClientSearchModel.cs | 9 +++++ .../SearchModels/CostSearchModel.cs | 8 ++++ .../SearchModels/EmployeeSearchModel.cs | 9 +++++ .../SearchModels/PaymentSearchModel.cs | 18 +++++++++ .../SearchModels/PurchaseSearchModel.cs | 12 ++++++ .../UniversityContracts.csproj | 4 -- .../ViewModels/ClassViewModel.cs | 33 ++++++++++++++++ .../ViewModels/ClientViewModel.cs | 23 +++++++++++ .../ViewModels/CostViewModel.cs | 20 ++++++++++ .../ViewModels/PaymentViewModel.cs | 28 +++++++++++++ .../ViewModels/PurchaseViewModel.cs | 39 +++++++++++++++++++ 14 files changed, 248 insertions(+), 4 deletions(-) create mode 100644 University/UniversityContracts/BindingModels/ClientBindingModel.cs create mode 100644 University/UniversityContracts/BindingModels/PurchaseBindingModel.cs create mode 100644 University/UniversityContracts/SearchModels/ClassSearchModel.cs create mode 100644 University/UniversityContracts/SearchModels/ClientSearchModel.cs create mode 100644 University/UniversityContracts/SearchModels/CostSearchModel.cs create mode 100644 University/UniversityContracts/SearchModels/EmployeeSearchModel.cs create mode 100644 University/UniversityContracts/SearchModels/PaymentSearchModel.cs create mode 100644 University/UniversityContracts/SearchModels/PurchaseSearchModel.cs create mode 100644 University/UniversityContracts/ViewModels/ClassViewModel.cs create mode 100644 University/UniversityContracts/ViewModels/ClientViewModel.cs create mode 100644 University/UniversityContracts/ViewModels/CostViewModel.cs create mode 100644 University/UniversityContracts/ViewModels/PaymentViewModel.cs create mode 100644 University/UniversityContracts/ViewModels/PurchaseViewModel.cs diff --git a/University/UniversityContracts/BindingModels/ClientBindingModel.cs b/University/UniversityContracts/BindingModels/ClientBindingModel.cs new file mode 100644 index 0000000..863339e --- /dev/null +++ b/University/UniversityContracts/BindingModels/ClientBindingModel.cs @@ -0,0 +1,22 @@ +using UniversityDataModels; +using UniversityDataModels.HelperInterfaces; + +namespace UniversityContracts.BindingModels +{ + public class ClientBindingModel : IClientModel + { + public string FirstName { get; set; } = string.Empty; + + public string LastName { get; set; } = string.Empty; + + public string? MiddleName { get; set; } + + public string PhoneNumber { get; set; } = string.Empty; + + public string Password { get; set; } = string.Empty; + + public int Id { get; set; } + + public string Email { get; set; } = string.Empty; + } +} diff --git a/University/UniversityContracts/BindingModels/PurchaseBindingModel.cs b/University/UniversityContracts/BindingModels/PurchaseBindingModel.cs new file mode 100644 index 0000000..624b464 --- /dev/null +++ b/University/UniversityContracts/BindingModels/PurchaseBindingModel.cs @@ -0,0 +1,15 @@ +using UniversityDataModels; +using UniversityDataModels.HelperInterfaces; + +namespace UniversityContracts.BindingModels +{ + public class PurchaseBindingModel : IPurchaseModel + { + public int ClientId { get; set; } + public DateOnly DatePurchase { get; set; } + public Dictionary ClassModel { get; set; } = new(); + public List CostsModel { get; set; } = new(); + + public int Id { get; set; } + } +} \ No newline at end of file diff --git a/University/UniversityContracts/SearchModels/ClassSearchModel.cs b/University/UniversityContracts/SearchModels/ClassSearchModel.cs new file mode 100644 index 0000000..8d0eb95 --- /dev/null +++ b/University/UniversityContracts/SearchModels/ClassSearchModel.cs @@ -0,0 +1,12 @@ +namespace UniversityContracts.SearchModels +{ + public class ClassSearchModel + { + public int? Id { get; set; } + public int? EmployeeId { get; set; } + public string Model { get; set; } = string.Empty; + public string Mark { get; set; } = string.Empty; + public int Price { get; set; } + public List? PurchasesIds { get; set; } + } +} \ No newline at end of file diff --git a/University/UniversityContracts/SearchModels/ClientSearchModel.cs b/University/UniversityContracts/SearchModels/ClientSearchModel.cs new file mode 100644 index 0000000..1a2d559 --- /dev/null +++ b/University/UniversityContracts/SearchModels/ClientSearchModel.cs @@ -0,0 +1,9 @@ +namespace UniversityContracts.SearchModels +{ + public class ClientSearchModel + { + public int? Id { get; set; } + public string? PhoneNumber { get; set; } + public string? Password { get; set; } + } +} diff --git a/University/UniversityContracts/SearchModels/CostSearchModel.cs b/University/UniversityContracts/SearchModels/CostSearchModel.cs new file mode 100644 index 0000000..bfebce0 --- /dev/null +++ b/University/UniversityContracts/SearchModels/CostSearchModel.cs @@ -0,0 +1,8 @@ +namespace UniversityContracts.SearchModels +{ + public class CostSearchModel + { + public int? Id { get; set; } + public int? EmployeeId { get; set; } + } +} \ No newline at end of file diff --git a/University/UniversityContracts/SearchModels/EmployeeSearchModel.cs b/University/UniversityContracts/SearchModels/EmployeeSearchModel.cs new file mode 100644 index 0000000..857cb75 --- /dev/null +++ b/University/UniversityContracts/SearchModels/EmployeeSearchModel.cs @@ -0,0 +1,9 @@ +namespace UniversityContracts.SearchModels +{ + public class EmployeeSearchModel + { + public int? Id { get; set; } + public string? PhoneNumber { get; set; } + public string? Password { get; set; } + } +} diff --git a/University/UniversityContracts/SearchModels/PaymentSearchModel.cs b/University/UniversityContracts/SearchModels/PaymentSearchModel.cs new file mode 100644 index 0000000..2bc7e7e --- /dev/null +++ b/University/UniversityContracts/SearchModels/PaymentSearchModel.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace UniversityContracts.SearchModels +{ + public class PaymentSearchModel + { + public int? Id { get; set; } + public int? OperationId { get; set; } + public int? PurchaseId { get; set; } + + public DateOnly? DateFrom { get; set; } + public DateOnly? DateTo { get; set; } + } +} \ No newline at end of file diff --git a/University/UniversityContracts/SearchModels/PurchaseSearchModel.cs b/University/UniversityContracts/SearchModels/PurchaseSearchModel.cs new file mode 100644 index 0000000..e952405 --- /dev/null +++ b/University/UniversityContracts/SearchModels/PurchaseSearchModel.cs @@ -0,0 +1,12 @@ +namespace UniversityContracts.SearchModels +{ + public class PurchaseSearchModel + { + public int? Id { get; set; } + public DateOnly? DateTo { get; set; } + public DateOnly? DateFrom { get; set; } + public int? ClientId { get; set; } + + public List? OperationsIds { get; set; } + } +} diff --git a/University/UniversityContracts/UniversityContracts.csproj b/University/UniversityContracts/UniversityContracts.csproj index a2be0db..132c02c 100644 --- a/University/UniversityContracts/UniversityContracts.csproj +++ b/University/UniversityContracts/UniversityContracts.csproj @@ -6,8 +6,4 @@ enable - - - - diff --git a/University/UniversityContracts/ViewModels/ClassViewModel.cs b/University/UniversityContracts/ViewModels/ClassViewModel.cs new file mode 100644 index 0000000..f37ff7c --- /dev/null +++ b/University/UniversityContracts/ViewModels/ClassViewModel.cs @@ -0,0 +1,33 @@ +using UniversityDataModels; +using System.ComponentModel; +using System.Text; +using System.Text.Json.Serialization; + +namespace UniversityContracts.ViewModels +{ + public class ClassViewModel : IClassnModel + { + public int Id { get; set; } + public int EmployeeId { get; set; } + [DisplayName("Номер телефона сотрудника")] + public string EmployeePhoneNumber { get; set; } = string.Empty; + [DisplayName("Стоимость")] + public double Price { get; set; } + [DisplayName("Вид операции")] + public string Model { get; set; } = string.Empty; + [DisplayName("Тип операции")] + public string Mark { get; set; } = string.Empty; + [JsonIgnore] + public List Purchases { get; set; } = new(); + public override string ToString() + { + var result = new StringBuilder(); + foreach (var purchase in Purchases) + { + result.Append($"Операция вида {Model},Типа {Mark}, Купленная {purchase.DatePurchase.ToShortDateString()}," + + $"в покупе c id: {purchase.Id}\n"); + } + return result.ToString(); + } + } +} \ No newline at end of file diff --git a/University/UniversityContracts/ViewModels/ClientViewModel.cs b/University/UniversityContracts/ViewModels/ClientViewModel.cs new file mode 100644 index 0000000..9dbfb05 --- /dev/null +++ b/University/UniversityContracts/ViewModels/ClientViewModel.cs @@ -0,0 +1,23 @@ +using UnivesityDataModels; +using UniversityDataModels.HelperInterfaces; +using System.ComponentModel; + + +namespace UniversityContracts.ViewModels +{ + public class ClientViewModel : IClientModel + { + public int Id { get; set; } + [DisplayName("Фамилия")] + public string LastName { get; set; } = string.Empty; + [DisplayName("Имя")] + public string FirstName { get; set; } = string.Empty; + [DisplayName("Отчество")] + public string? MiddleName { get; set; } = string.Empty; + [DisplayName("Номер телефона")] + public string PhoneNumber { get; set; } = string.Empty; + [DisplayName("Пароль")] + public string Password { get; set; } = string.Empty; + public string Email { get; set; } = string.Empty; + } +} diff --git a/University/UniversityContracts/ViewModels/CostViewModel.cs b/University/UniversityContracts/ViewModels/CostViewModel.cs new file mode 100644 index 0000000..77abd91 --- /dev/null +++ b/University/UniversityContracts/ViewModels/CostViewModel.cs @@ -0,0 +1,20 @@ +using UniversityDataModels.ProxyModels; +using UniverstyDataModels; +using System.ComponentModel; + +namespace UniversityContracts.ViewModels +{ + public class CostViewModel : ICostModel + { + public int Id { get; set; } + public int EmployeeId { get; set; } + [DisplayName("Номер телефона сотрудника")] + public string PhoneNumber { get; set; } = string.Empty; + [DisplayName("Наименование")] + public string NameOfCost { get; set; } = string.Empty; + [DisplayName("Стоимость")] + public double Price { get; set; } + + public Dictionary PurchaseModels { get; set; } = new(); + } +} diff --git a/University/UniversityContracts/ViewModels/PaymentViewModel.cs b/University/UniversityContracts/ViewModels/PaymentViewModel.cs new file mode 100644 index 0000000..53cf05b --- /dev/null +++ b/University/UniversityContracts/ViewModels/PaymentViewModel.cs @@ -0,0 +1,28 @@ +using UniversityDataModels; +using UniversityDataModels.ProxyModels; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BankContracts.ViewModels +{ + public class PaymentViewModel : IPaymentModel + { + public int Id { get; set; } + public int OperationByPurchaseModelId { get; set; } + [DisplayName("Стоимость")] + public double FullPrice { get; set; } + [DisplayName("Оплаченная стоимость")] + public double PaidPrice { get; set; } + public int OperationByPurchaseId { get; set; } + [DisplayName("Дата оплаты")] + public DateOnly Date { get; set; } = DateOnly.FromDateTime(DateTime.Now); + public ClassByPurchaseModel ClassByPurchase { get; set; } + + // Машины для отчета за период + public ClassViewModel Operation { get; set; } + } +} diff --git a/University/UniversityContracts/ViewModels/PurchaseViewModel.cs b/University/UniversityContracts/ViewModels/PurchaseViewModel.cs new file mode 100644 index 0000000..2edb7c9 --- /dev/null +++ b/University/UniversityContracts/ViewModels/PurchaseViewModel.cs @@ -0,0 +1,39 @@ +using UniversityDataModels; +using System.ComponentModel; +using UniversityDataModels.ProxyModels; +using System.Text; + +namespace UniversityContracts.ViewModels +{ + public class PurchaseViewModel : IPurchaseModel + { + public int Id { get; set; } + public int ClientId { get; set; } + [DisplayName("Логин клиента")] + public string ClientPhoneNumber { get; set; } = string.Empty; + [DisplayName("Дата Покупки")] + public DateOnly DatePurchase { get; set; } = DateOnly.FromDateTime(DateTime.Now); + public Dictionary ClassModel { get; set; } = new(); + + public List CostViewModels { get; set; } = new(); + + public List OperationViewModels { get; set; } = new(); + + public override string ToString() + { + var result = new StringBuilder( + $"Сделка, созданная {DatePurchase}, включает в себя операции:"); + for (int i = 0; i < OperationViewModels.Count; i++) + { + var car = OperationViewModels[i]; + if (car == null) + { + break; + } + result.Append($"\n\t{i + 1}. {car.Mark} {car.Model} стоимостью {car.Price}"); + } + return result.ToString(); + } + } +} + \ No newline at end of file