Files
PIBD-23_Coursach_YouAreProg…/YouAreProgrammerShop/YAPContracts/DataModels/PurchaseDataModel.cs
strwbrry1 ee51e4d1f6 Purchase CRD done, all entities done
Field verifications, reports, email left
2025-09-14 01:07:07 +04:00

75 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YAPContracts.Exceptions;
using YAPContracts.Extentions;
using YAPContracts.Infrastructure;
namespace YAPContracts.DataModels
{
public class PurchaseDataModel : IValidation
{
public string Id { get; private set; }
public string UserId { get; private set; }
public double TotalPrice { get; private set; }
public DateTime PurchaseDate { get; private set; }
public List<ProductSetInPurchaseDataModel> ProductSets { get; private set; }
public List<ProductInPurchaseDataModel> Products { get; private set; }
public PurchaseDataModel(string id, string userId, double totalPrice, DateTime purchaseDate, List<ProductSetInPurchaseDataModel> productSets, List<ProductInPurchaseDataModel> products)
{
Id = id;
UserId = userId;
TotalPrice = totalPrice;
PurchaseDate = purchaseDate;
ProductSets = productSets;
Products = products;
}
public PurchaseDataModel()
{
Id = string.Empty;
UserId = string.Empty;
TotalPrice = 0;
PurchaseDate = DateTime.UtcNow;
ProductSets = new List<ProductSetInPurchaseDataModel>();
Products = new List<ProductInPurchaseDataModel>();
}
public void Validate()
{
if (!Id.IsGuid())
{
throw new ValidationException("Id value is not valid");
}
if (Id.IsEmpty())
{
throw new ValidationException("Id is empty");
}
if (!UserId.IsGuid())
{
throw new ValidationException("UserId value is not valid");
}
if (UserId.IsEmpty())
{
throw new ValidationException("UserId is empty");
}
foreach (var productSet in ProductSets)
{
productSet.Validate();
}
foreach (var product in Products)
{
product.Validate();
}
}
}
}