Esempio n. 1
0
            public async Task <long> Handle(CreateHistoricoRelatoCommand request, CancellationToken cancellationToken)
            {
                var entity = new Domain.Entities.HistoricoRelato
                {
                    CriadoPor   = request.CriadoPor,
                    DataCriacao = DateTime.Now
                };

                _context.HistoricoRelato.Add(entity);

                await _context.SaveChangesAsync(cancellationToken);

                return(entity.CodHistoricoRelato);
            }
            public async Task <bool> Handle(UpdateAtribuicaoRelatoCommand request, CancellationToken cancellationToken)
            {
                var entity = await _context.AtribuicaoRelato.FindAsync(request.CodAtribuicaoRelato);


                entity.AlteradoPor   = request.AlteradoPor;
                entity.DataAlteracao = DateTime.Now;
                entity.FlagAtivo     = true;

                await _context.SaveChangesAsync(cancellationToken);

                //Rn0033 - Ocorrencia Atribuída
                var entityHistoricoRelato = new Domain.Entities.HistoricoRelato
                {
                    CodRelato     = entity.CodRelato,
                    DscAtribuicao = "Ocorrência Atribuída, " + DateTime.Now.ToString("dd/MM/yyyy") + ", " + DateTime.Now.ToString("hh:mm"),
                    CriadoPor     = request.AlteradoPor,
                    DataCriacao   = DateTime.Now
                };

                _context.HistoricoRelato.Add(entityHistoricoRelato);

                await _context.SaveChangesAsync(cancellationToken);

                var entityRelato = await _context.Relato.FindAsync(entity.CodRelato);

                if (entity == null)
                {
                    throw new NotFoundException(nameof(Domain.Entities.Relato), entity.CodRelato);
                }
                entityRelato.AlteradoPor     = request.AlteradoPor;
                entityRelato.DataAlteracao   = DateTime.Now;
                entityRelato.FlgStatusRelato = request.FlgStatusRelato;

                _context.Relato.Update(entityRelato);
                await _context.SaveChangesAsync(cancellationToken);

                return(true);
            }
            public async Task <long> Handle(CreateRelatoCommand request, CancellationToken cancellationToken)
            {
                try
                {
                    var entity = new Domain.Entities.Relato
                    {
                        CodUnidadeInfraestrutura  = request.CodUnidadeInfraestrutura,
                        DatOcorrencia             = Convert.ToDateTime(request.DatOcorrencia),
                        HorOcorrencia             = request.HorOcorrencia,
                        DscEnvolvidosOcorrencia   = request.DscEnvolvidosOcorrencia,
                        DscLocalOcorrenciaRelator = request.DscLocalOcorrenciaRelator,
                        DscOcorrenciaRelator      = request.DscOcorrenciaRelator,
                        NomRelator         = request.NomRelator,
                        EmailRelator       = request.EmailRelator,
                        NumTelefoneRelator = request.NumTelefoneRelator,
                        NomEmpresaRelator  = request.NomEmpresaRelator,
                        CriadoPor          = request.CriadoPor,
                        DataCriacao        = DateTime.Now,
                        //Rn0033 - Nao Iniciado
                        FlgStatusRelato = request.FlgStatusRelato,
                        FlagAtivo       = true,
                        NumRelato       = string.Empty
                    };

                    _context.Relato.Add(entity);

                    await _context.SaveChangesAsync(cancellationToken);

                    //Rn0033 - Ocorrencia Não Iniciada
                    var entityHistoricoRelato = new Domain.Entities.HistoricoRelato
                    {
                        CodRelato      = entity.CodRelato,
                        DscNaoIniciado = request.DscOcorrenciaStatus,
                        CriadoPor      = request.CriadoPor,
                        DataCriacao    = DateTime.Now
                    };

                    _context.HistoricoRelato.Add(entityHistoricoRelato);

                    await _context.SaveChangesAsync(cancellationToken);

                    //Rn0086
                    entity.NumRelato = DateTime.Now.Year.ToString() + request.Sigla +
                                       entity.CodRelato.ToString().PadLeft(4, '0').ToString();

                    await _context.SaveChangesAsync(cancellationToken);

                    foreach (var item in request.ListRelatoArquivo)
                    {
                        var entityRelatoArquivo = new Domain.Entities.RelatoArquivo
                        {
                            CodRelato   = entity.CodRelato,
                            Arquivo     = item.Arquivo,
                            NomeArquivo = item.NomeArquivo,
                            Caminho     = item.Caminho,
                            CriadoPor   = request.CriadoPor,
                            DataCriacao = DateTime.Now,
                            FlagAtivo   = true
                        };

                        _context.RelatoArquivo.Add(entityRelatoArquivo);

                        await _context.SaveChangesAsync(cancellationToken);
                    }
                    //Rn0032
                    var listUsuario = await _context.ResponsavelTecnico.Where(x =>
                                                                              //x.ListEmpresa.CodUnidadeInfraestrutura == request.CodUnidadeInfraestrutura
                                                                              //&&
                                                                              x.FlagGestorSgso == true)
                                      .ProjectTo <ResponsavelTecnicoDto>(_mapper.ConfigurationProvider)
                                      .ToListAsync(cancellationToken);


                    foreach (var usu in listUsuario)
                    {
                        var entityAtribuicaoRelato = new Domain.Entities.AtribuicaoRelato
                        {
                            CodUsuarioAtribuidor  = request.CodUsuarioAtribuidor,
                            CodRelato             = entity.CodRelato,
                            CodResponsavelTecnico = usu.CodResponsavelTecnico,
                            CodSituacaoAtribuicao = request.CodSituacaoAtribuicao,
                            DthAtribuicao         = DateTime.Now,
                            CriadoPor             = request.CriadoPor,
                            DataCriacao           = DateTime.Now,
                            FlagAtivo             = true
                        };

                        _context.AtribuicaoRelato.Add(entityAtribuicaoRelato);

                        await _context.SaveChangesAsync(cancellationToken);
                    }


                    //Rn0039 - Ocorrência Atribuída
                    entityHistoricoRelato.DscAtribuicao = "Ocorrência Atribuída, " + DateTime.Now.ToString("dd/MM/yyyy") + ", " + DateTime.Now.ToString("hh:mm");
                    entityHistoricoRelato.AlteradoPor   = request.CriadoPor;
                    entityHistoricoRelato.DataAlteracao = DateTime.Now;

                    await _context.SaveChangesAsync(cancellationToken);

                    return(entity.CodRelato);
                }
                catch (Exception e)
                {
                    return(0);
                }
            }