TourIAm/TIAM.Models/Dtos/Users/UserModelDtoDetail.cs

62 lines
2.1 KiB
C#

using System.ComponentModel.DataAnnotations.Schema;
using System.Text.Json.Serialization;
using AyCode.Interfaces.TimeStampInfo;
using AyCode.Models.Users;
using TIAM.Entities.Addresses;
using TIAM.Entities.Products;
using TIAM.Entities.Profiles;
using TIAM.Entities.ServiceProviders;
using TIAM.Entities.Users;
namespace TIAM.Models.Dtos.Users
{
public class UserModelDtoDetail : AcUserModelDtoDetailBase<UserDtoDetail, Profile, Company, UserToCompany, Address>, IProductsRelation, IUserModelDtoMinBase, IProfileForeignKey
{
public List<UserProductMapping> UserProductMappings { get; set; } = [];
public List<Product> Products { get; set; } = [];
[NotMapped]
[JsonIgnore]
[Newtonsoft.Json.JsonIgnore]
public Guid ProfileId
{
get => ProfileDto.Id;
set => ProfileDto.Id = value;
}
public UserModelDtoDetail()
{
}
public UserModelDtoDetail(User user) : base(user)
{
if (user.Products.Count == 0) return;
//így proxy error lesz... - J.
//Products = new List<Product>(user.Products);
//UserProductMappings = new List<UserProductMapping>(user.UserProductMappings);
Products = new List<Product>(user.Products.Count);
UserProductMappings = new List<UserProductMapping>(user.UserProductMappings.Count);
foreach (var product in user.Products)
{
Products.Add(new Product(product.Id, product.ServiceProviderId, product.ProductType, product.Name, product.Description, product.Price, product.JsonDetails));
}
foreach (var userProduct in user.UserProductMappings)
{
UserProductMappings.Add(new UserProductMapping(userProduct));
}
}
public void CopyUserDtoValuesToUser(User user) => base.CopyUserDtoValuesToUser(user);
public virtual User CreateMainEntity()
{
//TODO: Models... - J.
throw new NotImplementedException("CreateMainEntity");
}
}
}