2024-07-26 02:46:29 +04:00
|
|
|
|
using Contracts.BindingModels;
|
|
|
|
|
using Contracts.ViewModels;
|
|
|
|
|
using DataModels.Models;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
using System.Diagnostics;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using static System.Runtime.InteropServices.JavaScript.JSType;
|
|
|
|
|
using System.Xml.Linq;
|
|
|
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
|
|
|
|
|
|
namespace DatabaseImplement.Models
|
|
|
|
|
{
|
|
|
|
|
public class CartItem : ICartItem
|
|
|
|
|
{
|
|
|
|
|
public Guid Id { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public Guid UserId { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public int Count { get; set; }
|
|
|
|
|
public Guid? PurchaseId { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public DateTime DateCreated { get; set; }
|
|
|
|
|
[Required]
|
|
|
|
|
public Guid ProductId { get; set; }
|
|
|
|
|
[Required]
|
2024-11-24 19:51:40 +04:00
|
|
|
|
public bool IsClosed { get; set; }
|
|
|
|
|
[Required]
|
2024-07-26 02:46:29 +04:00
|
|
|
|
public string ProductName { get; set; } = string.Empty;
|
|
|
|
|
public virtual Product? Product { get; set; }
|
|
|
|
|
public virtual Purchase? Purchase { get; set; }
|
|
|
|
|
public static CartItem Create(Database context, CartItemBindingModel model)
|
|
|
|
|
{
|
|
|
|
|
return new CartItem()
|
|
|
|
|
{
|
|
|
|
|
Id = model.Id,
|
|
|
|
|
UserId = model.UserId,
|
|
|
|
|
Count = model.Count,
|
|
|
|
|
DateCreated = model.DateCreated,
|
|
|
|
|
ProductId = model.ProductId,
|
|
|
|
|
ProductName = model.ProductName,
|
|
|
|
|
PurchaseId = model.PurchaseId,
|
2024-11-24 19:51:40 +04:00
|
|
|
|
IsClosed = false
|
2024-07-26 02:46:29 +04:00
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
public void Update(CartItemBindingModel model)
|
|
|
|
|
{
|
|
|
|
|
if (model is null)
|
|
|
|
|
{
|
|
|
|
|
throw new ArgumentNullException("Update CartItem: binding model is null");
|
|
|
|
|
}
|
|
|
|
|
Count = model.Count;
|
|
|
|
|
PurchaseId = model.PurchaseId;
|
2024-11-24 19:51:40 +04:00
|
|
|
|
IsClosed = model.IsClosed;
|
2024-07-26 02:46:29 +04:00
|
|
|
|
}
|
|
|
|
|
public CartItemViewModel GetViewModel
|
|
|
|
|
{
|
|
|
|
|
get
|
|
|
|
|
{
|
|
|
|
|
var context = new Database();
|
|
|
|
|
return new()
|
|
|
|
|
{
|
|
|
|
|
Id = Id,
|
|
|
|
|
UserId = UserId,
|
|
|
|
|
DateCreated = DateCreated,
|
|
|
|
|
ProductId = ProductId,
|
|
|
|
|
ProductName = ProductName,
|
|
|
|
|
Count = Count,
|
|
|
|
|
PurchaseId = PurchaseId,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
public CartItemBindingModel GetBindingModel() => new()
|
|
|
|
|
{
|
|
|
|
|
Id = Id,
|
|
|
|
|
UserId = UserId,
|
|
|
|
|
DateCreated = DateCreated,
|
|
|
|
|
ProductId = ProductId,
|
|
|
|
|
ProductName = ProductName,
|
|
|
|
|
Count = Count,
|
|
|
|
|
PurchaseId = PurchaseId,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|