예제 #1
0
        public IActionResult Put(PerfilEdicaoModel model)
        {
            //verificando se os campos da model passaram nas ões
            if (ModelState.IsValid)
            {
                try
                {
                    var perfil = mapper.Map <Perfil>(model);
                    perfilRepository.Alterar(perfil);

                    var result = new
                    {
                        message = "Perfil atualizado com sucesso",
                        perfil
                    };

                    return(Ok(result)); //HTTP 200 (SUCESSO!)
                }
                catch (Exception e)
                {
                    return(StatusCode(500, "Erro: " + e.Message));
                }
            }
            else
            {
                //Erro HTTP 400 (BAD REQUEST)
                return(BadRequest("Ocorreram erros de validação."));
            }
        }
예제 #2
0
        public async Task <Perfil> Alterar(Perfil perfil)
        {
            perfil = await _perfilRepository.Alterar(perfil);

            return(perfil);
        }
예제 #3
0
        public bool Salvar(PerfilDTO dto)
        {
            if (!UsuarioLogado.IsInRole(Funcionalidade.PerfilGravar))
            {
                messageQueue.Add(Resource.Sigim.ErrorMessages.PrivilegiosInsuficientes, TypeMessage.Error);
                return(false);
            }

            if (dto == null)
            {
                throw new ArgumentNullException("dto");
            }

            if (ValidaSalvar(dto) == false)
            {
                return(false);
            }

            var  perfilFuncionalidade = new PerfilFuncionalidade();
            bool novoItem             = false;
            var  perfil = perfilRepository.ObterPeloId(dto.Id, l => l.ListaFuncionalidade);

            if (perfil == null)
            {
                perfil          = new Perfil();
                perfil.ModuloId = dto.ModuloId;
                novoItem        = true;
            }
            else
            {
                for (int i = perfil.ListaFuncionalidade.Count - 1; i >= 0; i--)
                {
                    perfilFuncionalidadeRepository.Remover(perfil.ListaFuncionalidade.ToList()[i]);
                }

                foreach (var item in dto.ListaFuncionalidade)
                {
                    item.PerfilId = perfil.Id.Value;
                }
            }

            perfil.Descricao           = dto.Descricao;
            perfil.ListaFuncionalidade = dto.ListaFuncionalidade.To <List <PerfilFuncionalidade> >();

            if (Validator.IsValid(perfil, out validationErrors))
            {
                if (novoItem)
                {
                    perfilRepository.Inserir(perfil);
                }
                else
                {
                    perfilRepository.Alterar(perfil);
                }

                perfilRepository.UnitOfWork.Commit();
                messageQueue.Add(Resource.Sigim.SuccessMessages.SalvoComSucesso, TypeMessage.Success);
                return(true);
            }
            else
            {
                messageQueue.AddRange(validationErrors, TypeMessage.Error);
            }

            return(false);
        }