public Ativo(AtivoPostDto ativoPostDto)
 {
     Id                        = ativoPostDto.Id;
     Nome                      = ativoPostDto.Nome;
     Descricao                 = ativoPostDto.Descricao;
     DataHoraCadastro          = DateTime.Now;
     DataHoraUltimaAtualizacao = DateTime.Now;
     StatusAtivo               = StatusAtivoEnum.ATIVO;
     CriticidadeAtivo          = ativoPostDto.CriticidadeAtivo;
     SetorId                   = ativoPostDto.SetorId;
 }
        public async Task <ActionResult> CadastrarAtivo([FromBody] AtivoPostDto ativoPostDto)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _ativoService.CadastrarAtivoAsync(ativoPostDto);

            AtivoViewDto viewDto = await _ativoService.PesquisarAtivoPorIdAsync(ativoPostDto.Id);

            return(CustomResponse(new
            {
                Inc = viewDto.IncAtivo,
                mensagem = "Ativo foi cadastrado com sucesso!",
            }));
        }
        public async Task <bool> CadastrarAtivoAsync(AtivoPostDto ativoPostDto)
        {
            // validação domínio
            if (!ExecutarValidacao(new AtivoPostDtoValidation(), ativoPostDto))
            {
                return(false);
            }

            // validação regra de negócio
            if (!await EhSetorValido(ativoPostDto.SetorId))
            {
                return(false);
            }

            Ativo ativo = new Ativo(ativoPostDto);

            return(await _ativoRepository.CadastrarAsync(ativo));
        }