public HttpResponseMessage Atualizar(HttpRequestMessage request, CategoriaViewModel categoriaViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Categoria novaCategoria = _categoriaRep.GetSingle(categoriaViewModel.Id); Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId())); var fornecedorCategoria = _fornecedorCategoriaRep.FindBy(x => x.CategoriaId == categoriaViewModel.Id).Count(); var membroCategoria = _membroCategoriaRep.FindBy(m => m.CategoriaId == categoriaViewModel.Id).Count(); if (fornecedorCategoria == 0 && membroCategoria == 0) { novaCategoria.AtualizarCategoria(categoriaViewModel, usuario); _unitOfWork.Commit(); // Update view model categoriaViewModel = Mapper.Map <Categoria, CategoriaViewModel>(novaCategoria); response = request.CreateResponse(HttpStatusCode.OK, categoriaViewModel); } else { response = request.CreateResponse(HttpStatusCode.BadRequest, categoriaViewModel); } } return response; })); }