Пример #1
0
        public async Task <ActionResult> EditarOcorrencia(Guid ocorrenciaId, [FromBody] OcorrenciaPutDto ocorrenciaPutDto)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            if (ocorrenciaId != ocorrenciaPutDto.Id)
            {
                NotificarErro("Id da request diferente do Id da Entidade!");
                return(CustomResponse(ocorrenciaPutDto));
            }

            OcorrenciaResultDto ocorrenciaResultDto = await _ocorrenciaService.PesquisarOcorrenciaPorId(ocorrenciaId);

            if (ocorrenciaResultDto == null)
            {
                return(NotFound(new
                {
                    success = true,
                    status = 404,
                    mensagem = "A ocorrência informada não foi encontrada!",
                }));
            }

            await _ocorrenciaService.EditarOcorrencia(ocorrenciaPutDto, ocorrenciaResultDto);

            return(CustomResponse(new
            {
                mensagem = "Ocorrência foi editada com sucesso!",
            }));
        }
        private async Task <bool> EditarTurnoOcorrencia(OcorrenciaPutDto ocorrenciaPutDto, Guid ocorrenciaId)
        {
            TurnoOcorrencia turnoOcorrencia = new TurnoOcorrencia(ocorrenciaPutDto.TurnoId,
                                                                  ocorrenciaId,
                                                                  ocorrenciaPutDto.StatusAtualOcorrencia);

            // atualizar TurnoOcorrencia caso altere Status ocorrencia

            return(await _turnoOcorrenciaRepository.EditarStatusTurnoOcorrencia(turnoOcorrencia));
        }
 public Ocorrencia(OcorrenciaPutDto ocorrenciaPutDto, OcorrenciaResultDto ocorrenciaResultDto)
 {
     Id                        = Guid.Parse(ocorrenciaResultDto.Id);
     IncOcorrencia             = int.Parse(ocorrenciaResultDto.IncOcorrecia);
     Titulo                    = ocorrenciaPutDto.Titulo;
     DataHoraInicio            = ocorrenciaPutDto.DataHoraInicio;
     DataHoraFim               = ocorrenciaPutDto.DataHoraFim;
     DataHoraUltimaAtualizacao = DateTime.Now;
     ChamadoTI                 = ocorrenciaPutDto.ChamadoTI;
     ChamadoFornecedor         = ocorrenciaPutDto.ChamadoFornecedor;
     ChamadoTI                 = ocorrenciaPutDto.OcorrenciaCCM;
     Acionamento               = ocorrenciaPutDto.Acionamento;
     Impacto                   = ocorrenciaPutDto.Impacto;
     DescricaoImpacto          = ocorrenciaPutDto.DescricaoImpacto;
     StatusAtualOcorrencia     = ocorrenciaPutDto.StatusAtualOcorrencia;
     UsuarioId                 = ocorrenciaPutDto.UsuarioId;
 }
        public async Task <bool> EditarOcorrencia(OcorrenciaPutDto ocorrenciaPutDto, OcorrenciaResultDto ocorrenciaResultDto)
        {
            // validação domínio
            if (!ExecutarValidacao(new OcorrenciaPutDtoValidation(), ocorrenciaPutDto))
            {
                return(false);
            }

            // validação regra de negócio
            if (!await EhDataHoraValida(ocorrenciaPutDto.TurnoId, ocorrenciaPutDto.DataHoraInicio, ocorrenciaPutDto.DataHoraFim))
            {
                return(false);
            }

            if (!await EhTurnoValido(ocorrenciaPutDto.TurnoId))
            {
                return(false);
            }

            if (!await EhUsuarioValido(ocorrenciaPutDto.UsuarioId))
            {
                return(false);
            }

            if (!await EhListaAtivoValida(ocorrenciaPutDto.Ativos))
            {
                return(false);
            }

            Ocorrencia ocorrencia = new Ocorrencia(ocorrenciaPutDto, ocorrenciaResultDto);

            await _ocorrenciaRepository.EditarAsync(ocorrencia);

            await EditarTurnoOcorrencia(ocorrenciaPutDto, Guid.Parse(ocorrenciaResultDto.Id));

            await ExcluirOcorrenciaAtivo(ocorrenciaPutDto.Id);

            await CadastrarOcorrenciaAtivo(ocorrenciaPutDto.Id, ocorrenciaPutDto.Ativos);

            return(true);
        }