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; } }
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); } }