mirror of
https://github.com/farcasclaudiu/PracticeCalendar.git
synced 2026-06-22 09:01:18 +03:00
play with storing valueobjects
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user