public async Task <IActionResult> Create(Guid id, int amount)
        {
            bool success = false;

            if (Guid.Empty == id)
            {
                throw new ArgumentNullException();
            }

            BrewModel brew = await brewService.GetByIdAsync(id, true);

            if (brew == null)
            {
                throw new ArgumentNullException();
            }

            ResourceModel model = new ResourceModel();

            if (amount > 0)
            {
                foreach (var recipe in brew.Recipes)
                {
                    ResourceModel resource = await resourceService.GetByIdAsync(recipe.ResourceId);

                    resource.AmountInStock -= (amount * (int)recipe.Amount);

                    if (model != null)
                    {
                        model = resourceService.UpdateResourceAmount(resource.ResourceId, resource.AmountInStock);
                    }
                }

                if (model != null)
                {
                    DateTime      today         = DateTime.Today;
                    ProducedModel producedModel = new ProducedModel()
                    {
                        Amount      = amount,
                        BrewId      = brew.BrewId,
                        CreateDate  = today.Date,
                        ExprireDate = today.AddMonths(6)
                    };

                    ProducedModel produced = await producedGoodsService.InsertAsync(producedModel);

                    success = produced != null;
                }
                else
                {
                    throw new ArgumentNullException(nameof(model));
                }
            }
            ProducedModel[] producedModels = producedGoodsService.GetProducedGoods().ToArray();

            return(Json(new
            {
                success = success,
                producedGoods = producedModels
            }));
        }
Beispiel #2
0
        public async Task <ProducedModel> InsertAsync(ProducedModel produced)
        {
            ProducedModel newProduced = new ProducedModel();

            if (produced != null)
            {
                newProduced = await producedGoodsRepository.AddAsync(produced);

                producedGoodsRepository.SaveAsync();
            }

            return(newProduced);
        }