public async Task <ActionResult> EditarTramite(Guid tramiteId, [FromBody] TramitePutDto tramitePutDto)
        {
            if (tramiteId != tramitePutDto.Id)
            {
                NotificarErro("Id da request diferente do Id da Entidade!");
                return(CustomResponse(tramitePutDto));
            }

            TramiteResultDto tramiteResultDto = await _tramiteService.PesquisarTramitePorId(tramiteId);

            if (tramiteResultDto == null)
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "O trâmite informado não foi encontrado!",
                }));
            }

            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _tramiteService.EditarTramite(tramitePutDto, tramiteResultDto);

            return(CustomResponse(new
            {
                mensagem = "O trâmite foi editado com sucesso!",
            }));
        }
        public async Task <bool> EditarTramite(TramitePutDto tramitePutDto, TramiteResultDto tramiteResultDto)
        {
            // validação domínio
            if (!ExecutarValidacao(new TramitePutDtoValidation(), tramitePutDto))
            {
                return(false);
            }

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

            // Verificar se já existe um trâmite solução
            ICollection <TramiteResultDto> listaTramiteResultDto = await _tramiteRepository.PesquisarTramitesPorOcorrencia(tramitePutDto.OcorrenciaId);

            foreach (TramiteResultDto itemTra in listaTramiteResultDto)
            {
                if (bool.Parse(itemTra.Solucao))
                {
                    Notificar("Já existe um trâmite definido como solução!");
                    return(false);
                }
            }

            Tramite tramite = new Tramite(tramitePutDto, tramiteResultDto);

            await _tramiteRepository.EditarAsync(tramite);

            return(true);
        }
Exemple #3
0
        public async Task <TramiteResultDto> PesquisarTramitePorInc(int incTramite)
        {
            try
            {
                TramiteResultDto result = await _context.Tramites
                                          .Include(tra => tra.UsuarioId)
                                          .Include(tra => tra.OcorrenciaId)
                                          .Where(tra => tra.IncTramite.Equals(incTramite))
                                          .DefaultIfEmpty()
                                          .Select(tra => new TramiteResultDto
                {
                    Id                  = tra.Id.ToString(),
                    IncTramite          = tra.IncTramite.ToString(),
                    Descricao           = tra.Descricao,
                    DataHora            = tra.DataHora.ToString("dd/MM/yyyy HH:mm:ss"),
                    Solucao             = tra.Solucao ? "SIM" : "NAO",
                    OcorrenciaId        = tra.OcorrenciaId.ToString(),
                    UsuarioId           = tra.UsuarioId.ToString(),
                    DescricaoOcorrencia = tra.Ocorrencia.IncOcorrencia.ToString() + " - " + tra.Ocorrencia.Titulo,
                    DescricaoUsuario    = tra.Usuario.UserName + " - " + tra.Usuario.NomeCompleto,
                }).SingleAsync();

                return(result);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 public Tramite(TramitePutDto tramitePutDto, TramiteResultDto tramiteResultDto)
 {
     Id           = Guid.Parse(tramiteResultDto.Id);
     IncTramite   = int.Parse(tramiteResultDto.IncTramite);
     Descricao    = tramitePutDto.Descricao;
     DataHora     = tramitePutDto.DataHora;
     Solucao      = tramitePutDto.Solucao;
     OcorrenciaId = tramitePutDto.OcorrenciaId;
     UsuarioId    = tramitePutDto.UsuarioId;
 }
        public async Task <ActionResult> PesquisarTramitePorId(Guid tramiteId)
        {
            TramiteResultDto tramiteResultDto = await _tramiteService.PesquisarTramitePorId(tramiteId);

            if (tramiteResultDto == null)
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "O trâmite informado não foi encontrado!",
                }));
            }

            return(CustomResponse(tramiteResultDto));
        }
        public async Task <ActionResult> PesquisarTramitePorInc(int incTramite)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            TramiteResultDto tramiteResultDto = await _tramiteService.PesquisarTramitePorInc(incTramite);

            if (tramiteResultDto == null)
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "O setor informado não foi encontrado!",
                }));
            }

            return(CustomResponse(tramiteResultDto));
        }