public Tramite(TramitePostDto tramitePostDto)
 {
     Descricao    = tramitePostDto.Descricao;
     DataHora     = tramitePostDto.DataHora;
     Solucao      = tramitePostDto.Solucao;
     OcorrenciaId = tramitePostDto.OcorrenciaId;
     OcorrenciaId = tramitePostDto.UsuarioId;
 }
        public async Task <ActionResult> CadastrarTramite([FromBody] TramitePostDto tramitePostDto)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _tramiteService.CadastrarTramite(tramitePostDto);

            return(CustomResponse(new
            {
                mensagem = "O trâmite foi cadastrado com sucesso!",
            }));
        }
        public async Task <bool> CadastrarTramite(TramitePostDto tramitePostDto)
        {
            // validação domínio
            if (!ExecutarValidacao(new TramitePostDtoValidation(), tramitePostDto))
            {
                return(false);
            }

            // validação regra de negócio
            if (!await ValidarUsuarioEOcorrencia(tramitePostDto.UsuarioId, tramitePostDto.OcorrenciaId, tramitePostDto.DataHora))
            {
                return(false);
            }

            Tramite tramite = new Tramite(tramitePostDto);

            return(await _tramiteRepository.CadastrarAsync(tramite));
        }