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 )); }
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)); }
public InvoiceDomain Delete(InvoiceDomain domain) { Delete(domain.Id); return(domain); }