private async Task <IEnumerable <PropertyType> > GetPropertyTypes(CreateInvoiceOrderModel createInvoiceOrderModel)
        {
            var propertyTypes = await _invoicingContext.PropertyTypes.AsNoTracking().
                                Where(x =>
                                      x.Application.ToUpper() == createInvoiceOrderModel.Application.ToUpper())
                                .ToListAsync();

            return(propertyTypes);
        }
        public async Task <IActionResult> CreateFromJson(CreateInvoiceOrderModel createInvoiceOrderModel)
        {
            var propertyTypes = await GetPropertyTypes(createInvoiceOrderModel);

            var order = ToEntity(createInvoiceOrderModel, propertyTypes);

            _invoicingContext.InvoiceOrders.Add(order);

            await _invoicingContext.SaveChangesAsync();

            return(Ok());
        }
        private InvoiceOrder ToEntity(CreateInvoiceOrderModel createInvoiceOrderModel, IEnumerable <PropertyType> propertyTypes)
        {
            var order = InvoiceOrder.Create(createInvoiceOrderModel.Application, Guid.Empty, createInvoiceOrderModel.OrderNumber, createInvoiceOrderModel.TransportNumber);

            order.UpdateOrderType(createInvoiceOrderModel.OrderType);
            order.UpdateCustomer(createInvoiceOrderModel.CustomerId, createInvoiceOrderModel.CustomerCode);
            order.UpdateOrderDate(createInvoiceOrderModel.Date);
            order.SetSite(createInvoiceOrderModel.Site);
            AddActions(order);
            AddStockLines(order);
            AddProperties(order);

            return(order);
        }