Ejemplo n.º 1
0
        public async Task <IActionResult> Alterar([FromBody] ProductRequest request)
        {
            try
            {
                var mapper = new MapperProduct();
                Domain.ProductDomain productDomain = mapper.MapperRequestToDomain(request);

                await _productUseCase.Update(productDomain);

                return(Ok());
            }
            catch (DomainException exb)
            {
                return(BadRequest(exb.Message));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public Domain.ProductDomain MapperRequestToDomain(ProductRequest request)
        {
            var productDomain = new Domain.ProductDomain
            {
                Name         = request.Name,
                Sku          = request.Sku,
                IsMarketable = false,
                Inventory    = new Domain.InventoryDomain
                {
                    Warehouses = new List <Domain.WarehouseDomain>()
                }
            };

            if (request.Inventory != null)
            {
                if (request.Inventory.Warehouses.Any())
                {
                    request.Inventory.Warehouses.ToList().ForEach(x =>
                    {
                        productDomain.Inventory.Warehouses.Add(new Domain.WarehouseDomain
                        {
                            Locality = x.Locality,
                            Quantity = new Random().Next(0, 9000),//adiciona quantidades ficticias..
                            Type     = x.Type
                        });
                    });
                }

                //  Um produto é marketable sempre que seu inventory.quantity for maior que 0
                if (productDomain.Inventory.Warehouses.Any(x => x.Quantity > 0))
                {
                    productDomain.IsMarketable = true;
                }
            }
            return(productDomain);
        }