Ejemplo n.º 1
0
        // Public methods
        public async Task <bool> ImportInvoiceFromXML(ImportInvoiceFromXMLFileViewModel viewModel)
        {
            /* Validate */
            if (await ValidateAsync(viewModel, _importInvoiceFromXMLFileViewModelIsValidToImportValidation) == false)
            {
                return(await Task.FromResult(false));
            }

            /* Process */
            var result = true;

            var importInvoiceCommandCollection = await _importInvoiceCommandAdapter.AdapteeAsync(
                viewModel,
                new List <ImportInvoiceCommand>());

            foreach (var importInvoiceCommand in importInvoiceCommandCollection)
            {
                if (!(await Bus.SendCommandAsync(importInvoiceCommand)))
                {
                    result = false;
                }
            }

            return(await Task.FromResult(result));
        }
Ejemplo n.º 2
0
        // Public methods
        public async Task <List <ImportInvoiceCommand> > AdapteeAsync(ImportInvoiceFromXMLFileViewModel source, List <ImportInvoiceCommand> to)
        {
            foreach (var invoiceViewModel in source.InvoiceViewModelCollection)
            {
                var importInvoiceCommand = new ImportInvoiceCommand
                {
                    Code = invoiceViewModel.Code
                };
                importInvoiceCommand.Customer = new Customer
                {
                    GovernamentalDocumentNumber = importInvoiceCommand.Customer.GovernamentalDocumentNumber,
                    Name = importInvoiceCommand.Customer.Name
                };
                importInvoiceCommand.Date        = invoiceViewModel.Date;
                importInvoiceCommand.RequestUser = _tenantInfoValueObject.TenantCode;

                importInvoiceCommand.InvoiceItemCollection = new List <InvoiceItem>();

                foreach (var invoiceItem in invoiceViewModel.InvoiceItemCollection)
                {
                    importInvoiceCommand.InvoiceItemCollection.Add(new InvoiceItem
                    {
                        Product = new Product {
                            Code = invoiceItem.Product.Code, Name = invoiceItem.Product.Name
                        },
                        Sequence  = invoiceItem.Sequence,
                        Quantity  = invoiceItem.Quantity,
                        UnitPrice = invoiceItem.UnitPrice
                    });
                }

                to.Add(importInvoiceCommand);
            }

            return(await Task.FromResult(to));
        }