コード例 #1
0
        public async Task <bool> Executar(MensagemRabbit mensagemRabbit)
        {
            if (mensagemRabbit?.Mensagem is null)
            {
                throw new NegocioException("Não foi possível processaor o curso GSA. A mensagem enviada é inválida.");
            }

            var cursoGsaDto = JsonConvert.DeserializeObject <CursoGsaDto>(mensagemRabbit.Mensagem.ToString());

            if (cursoGsaDto is null)
            {
                throw new NegocioException("Não foi possível processaor o curso GSA. A mensagem enviada é inválida.");
            }

            var cursoGoogle = await mediator.Send(new ObterCursoGooglePorIdQuery(cursoGsaDto.Id));

            var cursoInseridoManualmente = cursoGoogle is null;
            var cursoGsa = new CursoGsa(cursoGsaDto.Id, cursoGsaDto.Nome, cursoGsaDto.Secao, cursoGsaDto.CriadorId, cursoGsaDto.Descricao, cursoInseridoManualmente, cursoGsaDto.DataInclusao);

            var retorno = await mediator.Send(new InserirCursoGsaCommand(cursoGsa));

            if (cursoGsaDto.UltimoItemDaFila)
            {
                await IniciarValidacaoAsync();
            }

            await InicarCargaUsuariosDoCursoAsync(cursoGsaDto);

            return(retorno);
        }
コード例 #2
0
        public async Task <int> SalvarAsync(CursoGsa cursoGsa)
        {
            try
            {
                const string insertQuery = @"insert into public.cursos_gsa
                                        (id, nome, secao, criador_id, descricao, data_inclusao, inserido_manualmente_google)
                                        values
                                        (@id, @nome, @secao, @criadorId, @descricao, @dataInclusao, @inseridoManualmenteGoogle)";

                var parametros = new
                {
                    id        = cursoGsa.Id,
                    nome      = cursoGsa.Nome,
                    secao     = cursoGsa.Secao,
                    criadorId = cursoGsa.CriadorId,
                    descricao = cursoGsa.Descricao,
                    inseridoManualmenteGoogle = cursoGsa.InseridoManualmenteGoogle,
                    dataInclusao = cursoGsa.DataInclusao
                };

                using var conn = ObterConexao();
                return(await conn.ExecuteAsync(insertQuery, parametros));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        private async Task InserirCursoGsa(string salaVirtual, long cursoGoogleId)
        {
            var cursoGsa = await mediator.Send(new ObterCursoGsaPorNomeQuery(salaVirtual));

            if (cursoGsa == null)
            {
                var inserirCursoGsa = new CursoGsa(cursoGoogleId, salaVirtual, ConstanteFormacaoCidade.PREFIXO_SALA_VIRTUAL, ConstanteFormacaoCidade.CRIADOR, ConstanteFormacaoCidade.DESCRICAO, true, DateTime.Now);
                await mediator.Send(new InserirCursoGsaCommand(inserirCursoGsa));
            }
        }
コード例 #4
0
 public InserirCursoGsaCommand(CursoGsa cursoGsa)
 {
     CursoGsa = cursoGsa;
 }