public ShopProfile(ICompanyTotalConverter converter) { //IN => DB CreateMap <InOrder, DbOrder>(); CreateMap <InOrderItem, DbOrderItem>(); CreateMap <InProduct, DbProduct>(); //DB => OUT CreateMap <DbProduct, OutProduct>(); CreateMap <DbOrder, OutOrder>() .ForMember( outputOrder => outputOrder.Total, mapping => mapping.MapFrom(dbOrder => ComputeTotalFrom(converter, dbOrder)) ) .ForMember( outputOrder => outputOrder.OrderedProducts, mapping => mapping.MapFrom(dbOrder => GetOrderItemsFrom(dbOrder)) ); }
private static double ComputeTotalFrom(ICompanyTotalConverter converter, DbOrder dbOrder) => converter.ComputeTotalFor( dbOrder.CompanyCode, dbOrder.OrderItems.Sum(item => item.OrderedQuantity * item.Product.UnitPrice) );