Exemplo n.º 1
0
        public AddSaleResponse Execute(AddSaleRequest request)
        {
            try
            {
                addSaleValidationActivity.Validate(request);
                addSaleActivity.Run(request.Product, int.Parse(request.Count), DateTime.Parse(request.DateTime), float.Parse(request.Price), request.Seller);
                List <Sale> sales = getSaleActivity.Run(request.Product.ArrivedGoods.Department);

                editProductActivity.Run(request.Product.Id, request.Product.Unit, request.Product.Category, request.Product.Class,
                                        request.Product.TareChange, (request.Product.Count - int.Parse(request.Count)), request.Product.ExpirationDate,
                                        request.Product.ArrivedGoods, request.Product.PurchasePrice, request.Product.SalesPrice, request.Product.Returned,
                                        request.Product.ReturnedDate, request.Product.WritenOff);
                List <Product> products = getProductActivity.Run(request.Product.ArrivedGoods.Department);

                return(new AddSaleResponse(sales, products));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
        public EditProductGoodsResponse Execute(EditProductGoodsRequest request)
        {
            try
            {
                editProductGoodsValidationActivity.Validate(request);

                editArrivedGoodsActivity.Run(request.ArrivedGoods.Id, request.Provider, int.Parse(request.Count), DateTime.Parse(request.DateTime), float.Parse(request.AllPurchasePrice), float.Parse(request.AllSalesPrice), request.Department, request.Seller);
                List <ArrivedGoods> arrivedGoods = getArrivedGoodsActivity.Run(request.Department);

                var returnedDate = string.IsNullOrEmpty(request.ReturnedDate) ? (DateTime?)null : DateTime.Parse(request.ReturnedDate);

                editProductActivity.Run(request.Id, request.Unit, request.Category, request.Class, request.TareChange, int.Parse(request.Count),
                                        DateTime.Parse(request.ExpirationDate), request.ArrivedGoods, float.Parse(request.AllPurchasePrice) / float.Parse(request.Count),
                                        float.Parse(request.AllSalesPrice) / float.Parse(request.Count), request.Returned, returnedDate, request.WritenOff);
                List <Product> products = getProductActivity.Run(request.Department);

                return(new EditProductGoodsResponse(arrivedGoods, products));
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }