play with storing valueobjects

This commit is contained in:
Claudiu Farcas
2022-10-18 00:03:51 +03:00
parent 80ccd22d9c
commit b31cbcc15d
36 changed files with 250 additions and 81 deletions
@@ -3,7 +3,10 @@ using MapsterMapper;
using MediatR;
using Microsoft.Extensions.DependencyInjection;
using PracticeCalendar.Application.PracticeEvents.Queries;
using PracticeCalendar.Domain.Entities;
using PracticeCalendar.Application.Products.Queries;
using PracticeCalendar.Domain.Entities.PracticeEvent;
using PracticeCalendar.Domain.Entities.Product;
using PracticeCalendar.Domain.ValueObjects;
using System.Reflection;
namespace PracticeCalendar.Application
@@ -23,11 +26,35 @@ namespace PracticeCalendar.Application
TypeAdapterConfig.GlobalSettings.Default.MapToConstructor(true);
TypeAdapterConfig.GlobalSettings.NewConfig<PracticeEventDto, PracticeEvent>()
.ConstructUsing(src => new PracticeEvent(src.Title, src.Description, src.StartTime, src.EndTime));
var mapsterConfig = new TypeAdapterConfig();
mapsterConfig.NewConfig<PracticeEventDto, PracticeEvent>()
.MapToConstructor(true)
.ConstructUsing(src => new PracticeEvent(src.Title, src.Description, src.StartTime, src.EndTime));
mapsterConfig.NewConfig<ProductDto, Product>()
.MapToConstructor(true)
.ConstructUsing(src => new Product()
{
Id = src.Id,
Category = src.Category,
Name = src.Name,
UnitPrice = new Price
{
Value = src.UnitPrice,
Currency = src.UnitPriceCurrency
}
});
mapsterConfig
.ForType<Product, ProductDto>()
.MapWith(src => new ProductDto
{
Id = src.Id,
Name = src.Name,
Category = src.Category,
UnitPrice = src.UnitPrice.Value,
UnitPriceCurrency = src.UnitPrice.Currency
})
;
services.AddSingleton<IMapper>(new Mapper(mapsterConfig));
return services;