/// <summary> /// Maps Amount, Product(...), Changes(...), Participants(...), Discount, ReceiptId, RowId, Cost, /// </summary> /// <param name="row"></param> /// <param name="time"></param> /// <returns></returns> /// <exception cref="NullReferenceException"></exception> public static DALReceiptRowDTO FromDomain(ReceiptRow row, DateTime time) { if (row == null) { throw new NullReferenceException("Can't map, row entity is null"); } if (!row.Receipt.IsFinalized && (row.Product?.IsDeleted ?? true)) { return(null); } var product = ProductMapper.FromDomain2(row.Product, time); var changes = new List <DALChangeDTO>(); foreach (var rowChange in row.ReceiptRowChanges) { var changeDTO = ChangeMapper.FromDomain2(rowChange.Change, time); if (changeDTO == null || changeDTO.CurrentPrice == decimal.MinusOne) { continue; } changes.Add(changeDTO); } var participants = new List <DALRowParticipantDTO>(); foreach (var loanRow in row.RowParticipantLoanRows) { participants.Add(new DALRowParticipantDTO() { Name = loanRow.Loan.LoanTaker.UserNickname, Involvement = loanRow.Involvement, ReceiptRowId = row.Id, LoanId = loanRow.LoanId, AppUserId = loanRow.Loan.LoanTakerId, LoanRowId = loanRow.Id }); } return(new DALReceiptRowDTO() { Amount = row.Amount, Product = product, Changes = changes, Discount = row.RowDiscount, ReceiptId = row.ReceiptId, ReceiptRowId = row.Id, CurrentCost = row.RowSumCost(), Participants = participants }); }
public static DALCategoryDTO FromDomain(Category category) { if (category == null) { throw new NullReferenceException("Can't map, category entity is null"); } return(new DALCategoryDTO() { Id = category.Id, Name = category.CategoryName?.Translate() ?? "CATEGORY NAME NOT LOADED", Changes = category.ChangesInCategory? .Where(obj => obj.Change.IsDeleted == false) .Select(obj => ChangeMapper.FromDomainToMin(obj.Change)) .ToList(), Products = category.ProductsInCategory? .Where(obj => obj.Product.IsDeleted == false) .Select(obj => ProductMapper.FromDomain3(obj.Product)) .ToList() }); }