public HttpResponseMessage Atualizar(HttpRequestMessage request, MembroDemandaViewModel membroDemandaViewModel)
        {
            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
                {
                    MembroDemanda _membroDemanda = _membroDemandaRep.GetSingle(membroDemandaViewModel.Id);

                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));
                    _membroDemanda.AtualizarMembroDemanda(membroDemandaViewModel, usuario);

                    _unitOfWork.Commit();

                    // Update view model
                    membroDemandaViewModel = Mapper.Map <MembroDemanda, MembroDemandaViewModel>(_membroDemanda);
                    response = request.CreateResponse(HttpStatusCode.OK, membroDemandaViewModel);

                    //TODO: Verificar se deve enviar e-mail ao cadastrar demanda.
                    //_utilService.MembroInserirUsuarioEnviarEmail(membroDemandaViewModel.Id, usuario.Id);
                }

                return response;
            }));
        }
 public static void AtualizarMembroDemanda(this MembroDemanda membroDemanda, MembroDemandaViewModel membroDemandaVm, Usuario usuario)
 {
     membroDemanda.UsuarioAlteracao = usuario;
     membroDemanda.SubCategoriaId   = membroDemandaVm.SubCategoriaId;
     membroDemanda.UnidadeMedidaId  = membroDemandaVm.UnidadeMedidaId;
     membroDemanda.PeriodicidadeId  = membroDemandaVm.PeriodicidadeId;
     membroDemanda.Quantidade       = membroDemandaVm.Quantidade;
     membroDemanda.Observacao       = membroDemandaVm.Observacao;
     membroDemanda.Ativo            = membroDemandaVm.Ativo;
 }
        public HttpResponseMessage Inserir(HttpRequestMessage request, MembroDemandaViewModel membroDemandaViewModel)
        {
            return(CreateHttpResponse(request, () =>
            {
                HttpResponseMessage response = null;

                if (ModelState.IsValid)
                {
                    Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId()));

                    MembroDemanda novoMembroDemanda = new MembroDemanda()
                    {
                        MembroId = membroDemandaViewModel.MembroId,
                        UsuarioCriacao = usuario,
                        DtCriacao = DateTime.Now,
                        PeriodicidadeId = membroDemandaViewModel.PeriodicidadeId,
                        UnidadeMedidaId = membroDemandaViewModel.UnidadeMedidaId,
                        SubCategoriaId = membroDemandaViewModel.SubCategoriaId,
                        Quantidade = membroDemandaViewModel.Quantidade,
                        Observacao = membroDemandaViewModel.Observacao,
                        Ativo = membroDemandaViewModel.Ativo
                    };
                    _membroDemandaRep.Add(novoMembroDemanda);

                    _unitOfWork.Commit();

                    // Update view model
                    membroDemandaViewModel = Mapper.Map <MembroDemanda, MembroDemandaViewModel>(novoMembroDemanda);
                    response = request.CreateResponse(HttpStatusCode.Created, membroDemandaViewModel);
                }
                else
                {
                    response = request.CreateResponse(HttpStatusCode.BadRequest,
                                                      ModelState.Keys.SelectMany(k => ModelState[k].Errors)
                                                      .Select(m => m.ErrorMessage).ToArray());
                }

                return response;
            }));
        }