public void Create(DeliveryViewModel deliveryVM)
        {
            var delivery = new Delivery
            {
                DeliveryDate = deliveryVM.DeliveryDate,
                Status       = DeliveryStatus.Planned,
            };

            delivery.Driver = _driversService.GetEntityById(deliveryVM.Driver.Id);

            var deliveryPurchases = new List <DeliveryPurchase>(deliveryVM.Purchases?.Count ?? 0);

            foreach (var purchaseVM in deliveryVM.Purchases)
            {
                var purchase = _purchasesService.GetEntityById(purchaseVM.Id);
                deliveryPurchases.Add(
                    new DeliveryPurchase
                {
                    Delivery = delivery,
                    Purchase = purchase,
                    TimeFrom = purchaseVM.TimeFrom,
                    TimeTo   = purchaseVM.TimeTo,
                    Notes    = purchaseVM.Notes
                });
            }

            delivery.DeliveryPurchases = deliveryPurchases;

            var purchaseUnitsVM = deliveryVM.Purchases.SelectMany(p => p.PurchaseUnits).ToArray();
            var purchaseUnits   = new List <PurchaseUnit>(purchaseUnitsVM.Count());

            foreach (var pUnitsVM in purchaseUnitsVM)
            {
                var purchaseUnit = _purchaseUnitsService.GetEntityById(pUnitsVM.Id);
                purchaseUnits.Add(purchaseUnit);
            }

            delivery.PurchaseUnits = purchaseUnits;

            _service.CreateEntity(delivery);
        }
Esempio n. 2
0
        public void CreateReturnPurchase(ReturnPurchaseViewModel returnPurchaseVM)
        {
            var returnPurchase = new ReturnPurchase
            {
                Reason  = returnPurchaseVM.Reason,
                Comment = returnPurchaseVM.Comment
            };

            returnPurchase.Purchase = _purchasesService.GetEntityById(returnPurchaseVM.PurchaseId);

            var returnItems = new List <PurchaseUnit>(returnPurchaseVM.ReturnItems.Count);

            foreach (var pUnit in returnPurchaseVM.ReturnItems)
            {
                var purchaseUnit = _purchaseUnitsService.GetEntityById(pUnit.Id);
                returnItems.Add(purchaseUnit);
            }

            returnPurchase.ReturnItems = returnItems;

            _returnPurchasesService.CreateEntity(returnPurchase);
        }