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