예제 #1
0
        public void PersistirPerfil(Perfil perfil)
        {
            var mensagens = new PerfilValidator().Validate(perfil).Errors;

            if (mensagens.Count > 0)
            {
                foreach (var mensagem in mensagens)
                {
                    _notificationHandler.AddMensagem(mensagem.PropertyName, mensagem.ErrorMessage);
                }
                return;
            }
            if (_perfilRepository.Validar(perfil))
            {
                _notificationHandler.AddMensagem("Sigla", "PERSISTIR_PERFIL_DUPLICIDADE_NOME");
                return;
            }
            perfil.DataAlteracao = DateTime.Now;
            perfil.Usuario       = _variables.UserName;
            if (perfil.Id == 0)
            {
                _perfilRepository.Adicionar(perfil);
            }
            else
            {
                AtualizarPerfil(perfil);
            }
            _unitOfWork.Commit();
        }
예제 #2
0
        public async Task <CommandResponse> Handle(CriarPerfilCommand request, CancellationToken cancellationToken)
        {
            var perfil = this.DefinirPerfil(request);

            var perfilExistente = await _perfilRepository.Buscar(p => p.Identifacao.Nome == request.Nome && p.DeletadoEm == null);

            if (perfilExistente.Any())
            {
                await _mediator.Publish(new DomainNotification(request.GetType().Name, $"Um perfil com o nome {request.Nome} já existe."));

                return(await Task.FromResult(CommandResponse.Fail));
            }

            foreach (var item in request.Atribuicoes)
            {
                if (item.Ativo)
                {
                    perfil = await _perfilService.AtribuirPermissaoAsync(perfil, item.PermissaoId);
                }
                else
                {
                    perfil = await _perfilService.RevogarPermissaoAsync(perfil, item.PermissaoId);
                }
            }

            _perfilRepository.Adicionar(perfil);

            if (await Commit())
            {
                await _mediator.Publish(new PerfilCriadoEvent(perfil));
            }

            return(await Task.FromResult(CommandResponse.Ok));
        }
예제 #3
0
        public IActionResult Post(Perfil perfil)
        {
            try
            {
                _perfilRepository.Adicionar(perfil);

                return(Ok(perfil));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
예제 #4
0
        public IActionResult Post([FromForm] Perfil perfil)
        {
            try
            {
                //Adicionar um perfil
                _perfilRepository.Adicionar(perfil);

                //Retorna OK e os perfis
                return(Ok(perfil));
            }
            catch (Exception ex)
            {
                //Caso ocorra um erro retorna uma mensagem de erro
                return(BadRequest(ex.Message));
            }
        }
예제 #5
0
        public ActionResult <Perfil> CriarPerfil(Perfil perfil)
        {
            if (_context.Get(perfil.Login) != null)
            {
                return(BadRequest());
            }

            try
            {
                _context.Adicionar(perfil);

                return(CreatedAtAction(nameof(GetPerfil), new { id = perfil.Id }, perfil));
            }
            catch
            {
                return(BadRequest());
            }
        }