示例#1
0
            public async Task <long> Handle(CreateRelatoArquivoCommand request, CancellationToken cancellationToken)
            {
                var entity = new Domain.Entities.RelatoArquivo
                {
                    CodRelato   = request.CodRelato,
                    NomeArquivo = request.NomeArquivo,
                    Arquivo     = request.Arquivo,
                    Caminho     = request.Caminho,
                    CriadoPor   = request.CriadoPor,
                    DataCriacao = DateTime.Now
                };

                _context.RelatoArquivo.Add(entity);

                await _context.SaveChangesAsync(cancellationToken);

                return(entity.CodRelatoArquivo);
            }
            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);
                }
            }