Exemple #1
0
        public async System.Threading.Tasks.Task Save()
        {
            try
            {
                RequestProdutoSave produtoToBeSave = new RequestProdutoSave
                {
                    Codigo          = "Código + " + DateTime.Now,
                    Descricao       = "Insert" + DateTime.Now,
                    TopologiaId     = 1,
                    TipoEntidadeId  = 232,
                    UnidadeMedidaId = 23,
                    Id = null
                };


                HttpResponseMessage response = await _clientCall.Save(_baseController + "Save/", JsonConvert.SerializeObject(produtoToBeSave));

                Assert.IsTrue(response.IsSuccessStatusCode);
                if (response.IsSuccessStatusCode)
                {
                    var retorno = await response.Content.ReadAsStringAsync();

                    ResponseProduto produtoRetorno = JsonConvert.DeserializeObject <ResponseProduto>(JObject.Parse(retorno)["data"].ToString());

                    Produto produtoFromDataBasefterSave = _unitOfw.ProdutoRepository.Get(y => y.Id == produtoRetorno.Id).FirstOrDefault();

                    Assert.AreEqual(produtoToBeSave.Descricao, produtoFromDataBasefterSave.Descricao);

                    Assert.AreEqual(produtoToBeSave.TopologiaId, produtoFromDataBasefterSave.TopologiaId);
                    Assert.AreEqual(produtoToBeSave.TipoEntidadeId, produtoFromDataBasefterSave.TipoEntidadeId);
                    Assert.AreEqual(produtoToBeSave.UnidadeMedidaId, produtoFromDataBasefterSave.UnidadeMedidaId);
                    Assert.AreEqual(produtoToBeSave.Codigo, produtoFromDataBasefterSave.Codigo);
                    Assert.AreEqual(produtoToBeSave.Descricao, produtoFromDataBasefterSave.Descricao);

                    HttpResponseMessage responseProduto = await _clientCall.Detail(_baseController + "Detail/" + produtoRetorno.Id);

                    var retornoProduto = await responseProduto.Content.ReadAsStringAsync();

                    ResponseProduto produto = JsonConvert.DeserializeObject <ResponseProduto>(JObject.Parse(retornoProduto)["data"].ToString());

                    foreach (var item in produto.UnidadesMedida)
                    {
                        if (item.Value == produtoToBeSave.UnidadeMedidaId.ToString())
                        {
                            Assert.IsTrue(item.Selected);
                        }
                    }

                    Assert.AreEqual(produto.TipoEntidadeId, produtoToBeSave.TipoEntidadeId);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        public IActionResult Post([FromBody] RequestProdutoSave model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new BadRequestObjectResult(ModelState.GenerateValidation()));
                }

                //TODO: fazer de um jeito mais generico a validação das FK
                if (_unitOfw.TopologiaRepository.Count(y => y.Id == model.TopologiaId) == 0)
                {
                    BaseViewModel <string> notFound = new BaseViewModel <string>("Topologia Not Found!");
                    return(NotFound(notFound));
                }

                if (_unitOfw.UnidadeMedidaRepository.Count(y => y.Id == model.UnidadeMedidaId) == 0)
                {
                    BaseViewModel <string> notFound = new BaseViewModel <string>("Unidade de Medida Not Found!");
                    return(NotFound(notFound));
                }

                if (_unitOfw.ProdutoRepository.Count(y => y.Descricao == model.Descricao && y.Id != model.Id) > 0)
                {
                    BaseViewModel <string> already = new BaseViewModel <string>("Nome Already!");
                    return(BadRequest(already));
                }

                //Produto tobeSave = _mapper.Map<Produto>(model);

                if (!model.Id.HasValue || model.Id == 0)
                {
                    var produtoSave = _produto.Save(model.Id, model.Codigo, model.Descricao, model.UnidadeMedidaId, model.TopologiaId, model.TipoEntidadeId);
                    //_unitOfw.ProdutoRepository.Insert(tobeSave);
                    model.Id = produtoSave.Id;
                }
                else
                {
                    if (_unitOfw.ProdutoRepository.Count(y => y.Id == model.Id) == 0)
                    {
                        BaseViewModel <string> notFound = new BaseViewModel <string>("Produto Not Found!");
                        return(NotFound(notFound));
                    }
                    var produtoSave = _produto.Save(model.Id, model.Codigo, model.Descricao, model.UnidadeMedidaId, model.TopologiaId, model.TipoEntidadeId);
                }

                BaseViewModel <RequestProdutoSave> baseObj = new BaseViewModel <RequestProdutoSave>(model, "Produto Saved Successfully!", "");
                return(Ok(baseObj));
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Exemple #3
0
        public async System.Threading.Tasks.Task SaveUpdate()
        {
            RequestProdutoSave produtoToBeSave = new RequestProdutoSave
            {
                Codigo          = "Código + " + DateTime.Now,
                Descricao       = "Insert" + DateTime.Now,
                UnidadeMedidaId = 23,
                Id             = 3041,
                TopologiaId    = 4015, /*Não deve ser alterado, deixar igual produto que já consta no banco*/
                TipoEntidadeId = 230   /*Não deve ser alterado,  deixar igual produto que já consta no banco*/
            };


            HttpResponseMessage response = await _clientCall.Save(_baseController + "Save/", JsonConvert.SerializeObject(produtoToBeSave));

            Assert.IsTrue(response.IsSuccessStatusCode);
            if (response.IsSuccessStatusCode)
            {
                var retorno = await response.Content.ReadAsStringAsync();

                RequestProdutoSave produtoRetorno = JsonConvert.DeserializeObject <RequestProdutoSave>(JObject.Parse(retorno)["data"].ToString());

                Produto produtoAfterUpdate = _unitOfw.ProdutoRepository.Get(y => y.Id == produtoToBeSave.Id).FirstOrDefault();


                Assert.AreEqual(produtoToBeSave.Codigo, produtoAfterUpdate.Codigo);
                Assert.AreEqual(produtoRetorno.Codigo, produtoAfterUpdate.Codigo);

                Assert.AreEqual(produtoToBeSave.TopologiaId, produtoAfterUpdate.TopologiaId);
                Assert.AreEqual(produtoRetorno.TopologiaId, produtoAfterUpdate.TopologiaId);

                Assert.AreEqual(produtoToBeSave.TipoEntidadeId, produtoAfterUpdate.TipoEntidadeId);
                Assert.AreEqual(produtoRetorno.TipoEntidadeId, produtoAfterUpdate.TipoEntidadeId);

                Assert.AreEqual(produtoToBeSave.UnidadeMedidaId, produtoAfterUpdate.UnidadeMedidaId);
                Assert.AreEqual(produtoRetorno.UnidadeMedidaId, produtoAfterUpdate.UnidadeMedidaId);
            }
        }