コード例 #1
0
        public bool AddProductToShoppingCart()
        {
            string saleUser = "";

            saleRepository = new SaleRepository();

            var result = new ShoppingCartViewModel
            {
                Products  = new ProductsBusiness(this.products).getProductById(),
                SaleItems = new SaleItems()
            };

            //verifica se o usuário possui venda aberta
            saleUser = saleRepository.GetSaleByCurrentUser();

            if (result.Products.quantify < 1)
            {
                throw new Exception("Produto Indisponível!");
            }

            //se nâo cria uma e insere o produto em seguida
            if (saleUser != null)
            {
                result.SaleItems.idProduct = result.Products.id;
                result.SaleItems.idSale    = Convert.ToInt32(saleUser);
                result.SaleItems.amount    = 1;

                if (!new SaleRepository(result.SaleItems).addProductToShoppingCart())
                {
                    throw new Exception("Ops! Ocorreu um problema, tente novamente!");
                }

                return(true);
            }

            new SaleRepository().createSale();
            saleUser = saleRepository.GetSaleByCurrentUser();

            //define valores no item da venda
            result.SaleItems.idProduct = result.Products.id;
            result.SaleItems.idSale    = Convert.ToInt32(saleUser);
            result.SaleItems.amount    = 1;

            if (!new SaleRepository(result.SaleItems).addProductToShoppingCart())
            {
                throw new Exception("Ops! Ocorreu um problema, tente novamente!");
            }

            /* criar view model que irá ter o item da venda(SaleItems) e os dados de produto(Products)
             * necessário para validar quantidade disponível em estoque
             * e calcular preço total a partir da quantidade desejada pelo cliente
             */

            return(true);
        }