public async Task <ActionResult <ProductInstanceDto> > Put([FromBody] ProductInstanceEditDto value)
        {
            if (value.Id == Guid.Empty)
            {
                throw new Exception("Unable to edit a ProductInstance without ID");
            }
            var res = await _service.Save(value);

            return(res);
        }
Exemple #2
0
        public static ProductInstance ToEntity(this ProductInstanceEditDto e)
        {
            if (e == null)
            {
                return(null);
            }

            var res = new ProductInstance();

            res.Id          = e.Id;
            res.Description = e.Description;
            res.Name        = e.Name;
            res.IdProduct   = e.IdProduct;
            res.Months      = e.Months;
            res.Price       = e.Price;
            res.Weeks       = e.Weeks;
            res.Years       = e.Years;
            res.Days        = e.Days;
            return(res);
        }
        public async Task <ProductInstanceDto> Save(ProductInstanceEditDto itemToEdit)
        {
            ProductInstance res;

            if (itemToEdit.Id != Guid.Empty)
            {
                _logger.LogDebug($"Calling Update ProductInstance for id=[{itemToEdit.Id}]");
                //edit
                res = await this.GetInner(itemToEdit.Id);

                if (res == null)
                {
                    throw new NotFoundException($"ProductInstance with id={itemToEdit.Id} not exists!");
                }
                res.Description = itemToEdit.Description;
                res.Name        = itemToEdit.Name;
                res.IdProduct   = itemToEdit.IdProduct;
                res.Months      = itemToEdit.Months;
                res.Price       = itemToEdit.Price;
                res.Weeks       = itemToEdit.Weeks;
                res.Years       = itemToEdit.Years;
                res.Days        = itemToEdit.Days;

                _dbCtx.ProductInstances.Update(res);
                _dbCtx.SaveChanges();
            }
            else
            {
                //insert
                res    = itemToEdit.ToEntity();
                res.Id = Guid.NewGuid();
                _logger.LogDebug($"Calling Insert ProductInstance for id=[{res.Id}] (temp id, not created yet!)");
                await _dbCtx.ProductInstances.AddAsync(res);

                _dbCtx.SaveChanges();
            }
            return(res.ToDto());
        }
        public async Task <ActionResult <ProductInstanceDto> > Post([FromBody] ProductInstanceEditDto value)
        {
            var res = await _service.Save(value);

            return(res);
        }