public async System.Threading.Tasks.Task Save()
        {
            RequestUnidadeMedidaSave unidadeMedidaToBeSave = new RequestUnidadeMedidaSave
            {
                Id             = 0,
                Nome           = "N" + DateTime.Now.ToString(),
                Representacao  = "TNT",
                FatorConversao = 45,
                TipoUnidadeId  = 2
            };


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

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

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

                UnidadeMedida unidadeMedidafterSaveDataBase = _unitOfw.UnidadeMedidaRepository.Get(y => y.Id == unidadeMedidaRetornoJson.Id).FirstOrDefault();

                Assert.AreEqual(unidadeMedidaRetornoJson.Id, unidadeMedidafterSaveDataBase.Id);
                Assert.AreEqual(unidadeMedidafterSaveDataBase.Nome, unidadeMedidaRetornoJson.Nome);
                Assert.AreEqual(unidadeMedidafterSaveDataBase.FatorConversao, unidadeMedidaRetornoJson.FatorConversao);
                Assert.AreEqual(unidadeMedidafterSaveDataBase.Representacao, unidadeMedidaRetornoJson.Representacao);
                Assert.AreEqual(unidadeMedidafterSaveDataBase.TipoUnidadeId, unidadeMedidaRetornoJson.TipoUnidadeId);
            }
        }
        public IActionResult Post([FromBody] RequestUnidadeMedidaSave unidadeMedida)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(new BadRequestObjectResult(ModelState.GenerateValidation()));
                }


                if (unitOfw.TipoUnidadeRepository.Count(y => y.Id == unidadeMedida.TipoUnidadeId) == 0)
                {
                    BaseViewModel <string> notFound = new BaseViewModel <string>("Tipo Unidade Not Found!");
                    return(NotFound(notFound));
                }

                if (unitOfw.UnidadeMedidaRepository.Count(y => y.Nome == unidadeMedida.Nome && y.Id != unidadeMedida.Id) > 0)
                {
                    BaseViewModel <string> already = new BaseViewModel <string>("Nome Already!");
                    return(BadRequest(already));
                }

                UnidadeMedida tobeSave = _mapper.Map <UnidadeMedida>(unidadeMedida);

                if (!unidadeMedida.Id.HasValue || unidadeMedida.Id == 0)
                {
                    unitOfw.UnidadeMedidaRepository.Insert(tobeSave);
                }

                else
                {
                    if (unitOfw.UnidadeMedidaRepository.Count(y => y.Id == unidadeMedida.Id) == 0)
                    {
                        return(NotFound());
                    }

                    unitOfw.UnidadeMedidaRepository.Update(tobeSave);
                }
                unidadeMedida.Id = tobeSave.Id;


                BaseViewModel <RequestUnidadeMedidaSave> baseObj = new BaseViewModel <RequestUnidadeMedidaSave>(unidadeMedida, "Tipo Unidade Saved Successfully!", "");
                return(Ok(baseObj));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }