public static InvoiceEntity FromDomain(InvoiceDomain domain)
 {
     return(new InvoiceEntity(
                domain.Id.Value,
                domain.IssueDate,
                domain.DueDate,
                domain.RedemptionDate,
                domain.Items.Select(item => item.Id.Value).ToList(),
                domain.Payments.Select(payment => payment.Id.Value).ToList(),
                domain.Supplier.Id.Value,
                domain.Receiver.Id.Value
                ));
 }
Ejemplo n.º 2
0
        public InvoiceDomain Save(InvoiceDomain domain)
        {
            var entity = InvoiceEntity.FromDomain(domain);

            entity.ItemsRefs = domain.Items.Select(item => _itemRepository.Save(item))
                               .Select(item => item.Id.Value)
                               .ToList();

            entity.PaymentsRefs = domain.Payments.Select(payment => _paymentRepository.Save(payment))
                                  .Select(payment => payment.Id.Value)
                                  .ToList();

            entity.SupplierRef = _supplierRepository.Save(domain.Supplier).Id.Value;
            entity.ReceiverRef = _receiverRepository.Save(domain.Receiver).Id.Value;

            var command = new InvoiceSaveCommand(_dataSource, entity);

            entity = command.Execute();

            return(PrepareAggregate(entity));
        }
Ejemplo n.º 3
0
 public InvoiceDomain Delete(InvoiceDomain domain)
 {
     Delete(domain.Id);
     return(domain);
 }