Beispiel #1
0
        /// <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
            });
        }
Beispiel #2
0
 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()
     });
 }