public void Execute(AddReceiptLineItemCommand command)
        {
            _log.InfoFormat("Execute {1} - Command Id {0} ", command.CommandId, command.GetType().ToString());
            try
            {
                bool already_Exist = _documentRepository.GetById(command.DocumentId) != null;
                if (!already_Exist)
                    return;
                Receipt r = _documentRepository.GetById(command.DocumentId) as Receipt;
                ReceiptLineItem li = new ReceiptLineItem(command.LineItemId);

                li.LineItemSequenceNo   = command.LineItemSequenceNo;
                li.Value                = command.Value;
                li.Description          = command.Description;
                li.PaymentType          = (PaymentMode) command.PaymentTypeId;
                li.PaymentRefId         = command.PaymentTypeReference;
                li.LineItemType         = (OrderLineItemType)command.LineItemType;
                li.MMoneyPaymentType    = command.MMoneyPaymentType;
                li.PaymentDocLineItemId = command.PaymentDocLineItemId;
                li.NotificationId       = command.NotificationId;

                r.Add(li);

                _documentRepository.Save(r);
            }
            catch (Exception ex)
            {
                _log.ErrorFormat("Error Execute {1} - Command Id {0} ", command.CommandId, command.GetType().ToString());
                _log.Error("AddReceiptLineItemCommandHandler exception", ex);
                throw;
            }
        }
        decimal CalcUnConfirmedAmount(ReceiptLineItem lineItem, List<ReceiptLineItem> chilLineItems)
        {
            var confirmed = chilLineItems.Sum(n => n.Value);
            decimal unconfirmed = lineItem.Value - confirmed;
            if(unconfirmed < 0)
                unconfirmed = 0;

            return unconfirmed;
        }
 UnconfirmedReceiptPayment Map(ReceiptLineItem li, Receipt rec, Order order, decimal unconfirmedAmt, int count)
 {
     return new UnconfirmedReceiptPayment
                {
                    SequenceId = count + ((((CurrentPage - 1)*ItemsPerPage) + 1)),
                    Amount = unconfirmedAmt,//li.Value,
                    LineItemId = li.Id,
                    ReceiptId = rec.Id,
                    ReceiptDocReference = rec.DocumentReference,
                    InvoiceDocReference = InvoicesListCached.FirstOrDefault(n => n.Id == rec.InvoiceId).DocumentRef,
                    InvoiceId = InvoicesListCached.FirstOrDefault(n => n.Id == rec.InvoiceId).Id,
                    OrderId = InvoicesListCached.FirstOrDefault(n => n.Id == rec.InvoiceId).InvoiceOrderId,
                    PaymentType = li.MMoneyPaymentType,
                    OrderDocRef = order.DocumentReference,
                    Description = li.Description
                };
 }
        PaymentInfo Map(PaymentNotificationListItem detail, ReceiptLineItem item, PaymentNotificationResponse paymentNotif)
        {
            var info = new PaymentInfo
                           {
                               Amount = (decimal) detail.PaidAmount,
                               Id = Guid.NewGuid(),
                               PaymentModeUsed = PaymentMode.MMoney,
                               IsConfirmed = true,
                               IsNew = true,
                               MMoneyPaymentType = item.MMoneyPaymentType,
                               PaymentRefId = item.PaymentRefId,
                               PaymentTypeDisplayer = item.MMoneyPaymentType,
                               NotificationId = detail.Id + ";",
                               Description = MMoneyDescription((decimal) detail.PaidAmount,
                                                               paymentNotif.Currency,
                                                               paymentNotif.SubscriberId,
                                                               paymentNotif.AccountId, "",
                                                               paymentNotif.SDPReferenceId)
                           };

            return info;
        }
 private ReceiptExportDocumentItem MapItem(ReceiptLineItem receiptLineItem)
 {
     var item = new ReceiptExportDocumentItem();
     item.ReceiptAmount = receiptLineItem.Value;
     item.ModeOfPayment = receiptLineItem.PaymentType.ToString();
     item.ChequeNumber = receiptLineItem.PaymentRefId;
     return item;
 }