public HttpResponseMessage Atualizar(HttpRequestMessage request, FabricanteViewModel fabricanteVM) { 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 { Fabricante novoFabricante = _Fabricante.GetSingle(fabricanteVM.Id); Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId())); if (novoFabricante.Produtos.Count > 0 && fabricanteVM.Ativo == false) { return request.CreateErrorResponse(HttpStatusCode.PreconditionFailed, "Não é possível ser desativado"); } else { novoFabricante.AtualizarFabricante(fabricanteVM, usuario); } _unitOfWork.Commit(); // Update view model fabricanteVM = Mapper.Map <Fabricante, FabricanteViewModel>(novoFabricante); response = request.CreateResponse(HttpStatusCode.OK, fabricanteVM); } return response; })); }