forked from slavaxom9k/PIBD-23_Fomichev_V.S._MagicCarpet
вью модели и изменения в моделях
This commit is contained in:
@@ -9,7 +9,7 @@ namespace MagicCarpetContracts.BuisnessLogicContracts;
|
|||||||
|
|
||||||
public interface IPostBusinessLogicContract
|
public interface IPostBusinessLogicContract
|
||||||
{
|
{
|
||||||
List<PostDataModel> GetAllPosts(bool onlyActive);
|
List<PostDataModel> GetAllPosts();
|
||||||
|
|
||||||
List<PostDataModel> GetAllDataOfPost(string postId);
|
List<PostDataModel> GetAllDataOfPost(string postId);
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using MagicCarpetContracts.Exceptions;
|
using MagicCarpetContracts.Exceptions;
|
||||||
using MagicCarpetContracts.Extensions;
|
using MagicCarpetContracts.Extensions;
|
||||||
using MagicCarpetContracts.Infrastructure;
|
using MagicCarpetContracts.Infrastructure;
|
||||||
|
using Microsoft.Extensions.Hosting;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -12,6 +13,8 @@ namespace MagicCarpetContracts.DataModels;
|
|||||||
|
|
||||||
public class EmployeeDataModel(string id, string fio, string email, string postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) : IValidation
|
public class EmployeeDataModel(string id, string fio, string email, string postId, DateTime birthDate, DateTime employmentDate, bool isDeleted) : IValidation
|
||||||
{
|
{
|
||||||
|
private readonly PostDataModel? _post;
|
||||||
|
|
||||||
public string Id { get; private set; } = id;
|
public string Id { get; private set; } = id;
|
||||||
|
|
||||||
public string FIO { get; private set; } = fio;
|
public string FIO { get; private set; } = fio;
|
||||||
@@ -26,6 +29,17 @@ public class EmployeeDataModel(string id, string fio, string email, string postI
|
|||||||
|
|
||||||
public bool IsDeleted { get; private set; } = isDeleted;
|
public bool IsDeleted { get; private set; } = isDeleted;
|
||||||
|
|
||||||
|
public string PostName => _post?.PostName ?? string.Empty;
|
||||||
|
|
||||||
|
public EmployeeDataModel(string id, string fio, string email, string postId, DateTime birthDate, DateTime employmentDate,
|
||||||
|
bool isDeleted, PostDataModel post) : this(id, fio, email, postId, birthDate, employmentDate, isDeleted)
|
||||||
|
{
|
||||||
|
_post = post;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EmployeeDataModel(string id, string fio, string email, string postId, DateTime birthDate,
|
||||||
|
DateTime employmentDate) : this(id, fio, email, postId, birthDate, employmentDate, false) { }
|
||||||
|
|
||||||
public void Validate()
|
public void Validate()
|
||||||
{
|
{
|
||||||
if (Id.IsEmpty())
|
if (Id.IsEmpty())
|
||||||
|
|||||||
@@ -10,14 +10,12 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace MagicCarpetContracts.DataModels;
|
namespace MagicCarpetContracts.DataModels;
|
||||||
|
|
||||||
public class PostDataModel(string id, string postName, PostType postType, double salary, bool isActual, DateTime changeDate) : IValidation
|
public class PostDataModel(string id, string postName, PostType postType, double salary) : IValidation
|
||||||
{
|
{
|
||||||
public string Id { get; private set; } = id;
|
public string Id { get; private set; } = id;
|
||||||
public string PostName { get; private set; } = postName;
|
public string PostName { get; private set; } = postName;
|
||||||
public PostType PostType { get; private set; } = postType;
|
public PostType PostType { get; private set; } = postType;
|
||||||
public double Salary { get; private set; } = salary;
|
public double Salary { get; private set; } = salary;
|
||||||
public bool IsActual { get; private set; } = isActual;
|
|
||||||
public DateTime ChangeDate { get; private set; } = changeDate;
|
|
||||||
|
|
||||||
public void Validate()
|
public void Validate()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -3,20 +3,32 @@ using MagicCarpetContracts.Extensions;
|
|||||||
using MagicCarpetContracts.Infrastructure;
|
using MagicCarpetContracts.Infrastructure;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace MagicCarpetContracts.DataModels;
|
namespace MagicCarpetContracts.DataModels;
|
||||||
|
|
||||||
public class SaleTourDataModel(string saleId, string tourId, int count) : IValidation
|
public class SaleTourDataModel(string saleId, string tourId, int count, double price) : IValidation
|
||||||
{
|
{
|
||||||
|
private readonly TourDataModel? _tour;
|
||||||
|
|
||||||
public string SaleId { get; private set; } = saleId;
|
public string SaleId { get; private set; } = saleId;
|
||||||
|
|
||||||
public string TourId { get; private set; } = tourId;
|
public string TourId { get; private set; } = tourId;
|
||||||
|
|
||||||
public int Count { get; private set; } = count;
|
public int Count { get; private set; } = count;
|
||||||
|
|
||||||
|
public double Price { get; private set; } = price;
|
||||||
|
|
||||||
|
public string TourName => _tour?.TourName ?? string.Empty;
|
||||||
|
|
||||||
|
public SaleTourDataModel(string saleId, string tourId, int count, double price, TourDataModel tour) : this(saleId, tourId, count, price)
|
||||||
|
{
|
||||||
|
_tour = tour;
|
||||||
|
}
|
||||||
|
|
||||||
public void Validate()
|
public void Validate()
|
||||||
{
|
{
|
||||||
if (SaleId.IsEmpty())
|
if (SaleId.IsEmpty())
|
||||||
|
|||||||
@@ -11,12 +11,22 @@ namespace MagicCarpetContracts.DataModels;
|
|||||||
|
|
||||||
public class TourHistoryDataModel(string tourId, double oldPrice) : IValidation
|
public class TourHistoryDataModel(string tourId, double oldPrice) : IValidation
|
||||||
{
|
{
|
||||||
|
private readonly TourDataModel? _tour;
|
||||||
|
|
||||||
public string TourId { get; private set; } = tourId;
|
public string TourId { get; private set; } = tourId;
|
||||||
|
|
||||||
public double OldPrice { get; private set; } = oldPrice;
|
public double OldPrice { get; private set; } = oldPrice;
|
||||||
|
|
||||||
public DateTime ChangeDate { get; private set; } = DateTime.UtcNow;
|
public DateTime ChangeDate { get; private set; } = DateTime.UtcNow;
|
||||||
|
|
||||||
|
public string TourName => _tour?.TourName ?? string.Empty;
|
||||||
|
|
||||||
|
public TourHistoryDataModel(string tourId, double oldPrice, DateTime changeDate, TourDataModel tour) : this(tourId, oldPrice)
|
||||||
|
{
|
||||||
|
ChangeDate = changeDate;
|
||||||
|
_tour = tour;
|
||||||
|
}
|
||||||
|
|
||||||
public void Validate()
|
public void Validate()
|
||||||
{
|
{
|
||||||
if (TourId.IsEmpty())
|
if (TourId.IsEmpty())
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.Infrastructure;
|
||||||
|
|
||||||
|
public class OperationResponse
|
||||||
|
{
|
||||||
|
protected HttpStatusCode StatusCode { get; set; }
|
||||||
|
|
||||||
|
protected object? Result { get; set; }
|
||||||
|
|
||||||
|
public IActionResult GetResponse(HttpRequest request, HttpResponse response)
|
||||||
|
{
|
||||||
|
ArgumentNullException.ThrowIfNull(request);
|
||||||
|
ArgumentNullException.ThrowIfNull(response);
|
||||||
|
|
||||||
|
response.StatusCode = (int)StatusCode;
|
||||||
|
|
||||||
|
if (Result is null)
|
||||||
|
{
|
||||||
|
return new StatusCodeResult((int)StatusCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
return new ObjectResult(Result);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static TResult OK<TResult, TData>(TData data) where TResult : OperationResponse,
|
||||||
|
new() => new() { StatusCode = HttpStatusCode.OK, Result = data };
|
||||||
|
|
||||||
|
protected static TResult NoContent<TResult>() where TResult : OperationResponse,
|
||||||
|
new() => new() { StatusCode = HttpStatusCode.NoContent };
|
||||||
|
|
||||||
|
protected static TResult BadRequest<TResult>(string? errorMessage = null) where TResult : OperationResponse,
|
||||||
|
new() => new() { StatusCode = HttpStatusCode.BadRequest, Result = errorMessage };
|
||||||
|
|
||||||
|
protected static TResult NotFound<TResult>(string? errorMessage = null) where TResult : OperationResponse,
|
||||||
|
new() => new() { StatusCode = HttpStatusCode.NotFound, Result = errorMessage };
|
||||||
|
|
||||||
|
protected static TResult InternalServerError<TResult>(string? errorMessage = null) where TResult : OperationResponse,
|
||||||
|
new() => new() { StatusCode = HttpStatusCode.InternalServerError, Result = errorMessage };
|
||||||
|
}
|
||||||
@@ -6,4 +6,10 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.3.0" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.3.0" />
|
||||||
|
<PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.3.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ namespace MagicCarpetContracts.StoragesContracts;
|
|||||||
|
|
||||||
public interface IPostStorageContract
|
public interface IPostStorageContract
|
||||||
{
|
{
|
||||||
List<PostDataModel> GetList(bool onlyActual = true);
|
List<PostDataModel> GetList();
|
||||||
List<PostDataModel> GetPostWithHistory(string postId);
|
List<PostDataModel> GetPostWithHistory(string postId);
|
||||||
PostDataModel? GetElementById(string id);
|
PostDataModel? GetElementById(string id);
|
||||||
PostDataModel? GetElementByName(string name);
|
PostDataModel? GetElementByName(string name);
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class ClientViewModel
|
||||||
|
{
|
||||||
|
public required string Id { get; set; }
|
||||||
|
|
||||||
|
public required string FIO { get; set; }
|
||||||
|
|
||||||
|
public required string PhoneNumber { get; set; }
|
||||||
|
|
||||||
|
public double DiscountSize { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class EmployeeViewModel
|
||||||
|
{
|
||||||
|
public required string Id { get; set; }
|
||||||
|
|
||||||
|
public required string FIO { get; set; }
|
||||||
|
|
||||||
|
public string Email { get; set; }
|
||||||
|
|
||||||
|
public required string PostId { get; set; }
|
||||||
|
|
||||||
|
public required string PostName { get; set; }
|
||||||
|
|
||||||
|
public bool IsDeleted { get; set; }
|
||||||
|
|
||||||
|
public DateTime BirthDate { get; set; }
|
||||||
|
|
||||||
|
public DateTime EmploymentDate { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class PostViewModel
|
||||||
|
{
|
||||||
|
public required string Id { get; set; }
|
||||||
|
|
||||||
|
public required string PostName { get; set; }
|
||||||
|
|
||||||
|
public required string PostType { get; set; }
|
||||||
|
|
||||||
|
public double Salary { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class SaleTourViewModel
|
||||||
|
{
|
||||||
|
public required string TourId { get; set; }
|
||||||
|
|
||||||
|
public required string TourName { get; set; }
|
||||||
|
|
||||||
|
public int Count { get; set; }
|
||||||
|
|
||||||
|
public double Price { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class SaleViewModel
|
||||||
|
{
|
||||||
|
public required string Id { get; set; }
|
||||||
|
|
||||||
|
public required string EmployeeId { get; set; }
|
||||||
|
|
||||||
|
public required string EmployeeFIO { get; set; }
|
||||||
|
|
||||||
|
public string? ClientId { get; set; }
|
||||||
|
|
||||||
|
public string? ClientFIO { get; set; }
|
||||||
|
|
||||||
|
public DateTime SaleDate { get; set; }
|
||||||
|
|
||||||
|
public double Sum { get; set; }
|
||||||
|
|
||||||
|
public required string DiscountType { get; set; }
|
||||||
|
|
||||||
|
public double Discount { get; set; }
|
||||||
|
|
||||||
|
public bool IsCancel { get; set; }
|
||||||
|
|
||||||
|
public required List<SaleTourViewModel> Tours { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class TourHistoryViewModel
|
||||||
|
{
|
||||||
|
public required string TourName { get; set; }
|
||||||
|
|
||||||
|
public double OldPrice { get; set; }
|
||||||
|
|
||||||
|
public DateTime ChangeDate { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace MagicCarpetContracts.ViewModels;
|
||||||
|
|
||||||
|
public class TourViewModel
|
||||||
|
{
|
||||||
|
public required string Id { get; set; }
|
||||||
|
|
||||||
|
public required string TourName { get; set; }
|
||||||
|
|
||||||
|
public required string TourType { get; set; }
|
||||||
|
|
||||||
|
public string? TourCountry { get; set; }
|
||||||
|
|
||||||
|
public double Price { get; set; }
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user