private void ValidarEvento(comum_dto.EnvelopeEvento <Evento> envelope)
 {
     if (envelope.Evento == null)
     {
         throw new System.Exception("Evento vazio");
     }
 }
예제 #2
0
        public bool Avaliar(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            var ultimaReacao = this.consultarReacao.ObterUltimaReacao(envelope);

            var podeProcessar = ultimaReacao.Tipo == coreenums.TipoEventoEnum.curtida;

            return(podeProcessar);
        }
예제 #3
0
 public void Validar(comum_dto.EnvelopeEvento <Evento> envelope)
 {
     if (envelope.Evento == null ||
         envelope.Evento.Ping == null)
     {
         throw new EventoInvalidoException(envelope.Evento);
     }
 }
예제 #4
0
        public bool Avaliar(comum_dto.EnvelopeEvento <EventoReacao> envelope)
        {
            var ultimaReacao = this.consultarReacao.ObterUltimaReacao(envelope);

            var valido = ultimaReacao.Tipo == coreenums.TipoEventoEnum.none ||
                         ultimaReacao.Tipo == coreenums.TipoEventoEnum.descurtida;

            return(valido);
        }
예제 #5
0
        public void Validar(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            var eventoFacade = new EventoFacade(envelope.Evento);

            if (!eventoFacade.Validar())
            {
                throw new coreexceptions.EventoInvalidoException(envelope.Evento);
            }
        }
예제 #6
0
        public comum_dto.Ponto Pontuar(comum_dto.EnvelopeEvento <EventoReacao> envelope)
        {
            var regra = Factory.ObtemRegra(envelope.Evento);

            var pontos = regra.Pontuar(envelope.Evento);

            var eventoFacade = new EventoReacaoFacade(envelope.Evento);

            return(new comum_dto.Ponto(envelope.Id, envelope.UsuarioId, envelope.EmpresaId, eventoFacade.PostId, eventoFacade.PerfilId, envelope.DataEvento, corehelper.DateTimeHelper.Now(), eventoFacade.Tipo, pontos, coreenums.RedeSocialEnum.twitter));
        }
예제 #7
0
        public comum_dto.Reacao ObterUltimaReacao(comum_dto.EnvelopeEvento <EventoReacao> envelope)
        {
            var dto = new EventoReacaoFacade(envelope.Evento);

            var response = twitterClient.ObterUltimaReacao(envelope.UsuarioId, dto.PostId);

            var evento = response.Item;

            return(evento);
        }
 public PingEventoTriado(
     coreinterfaces.triador.IRegistradorEventoTriagem <EventoPing> registradorPing,
     coreinterfaces.triador.IAvaliadorDeEvento <EventoPing> avaliadorDeEvento,
     EnfileiradorClient enfileirador,
     comum_dto.EnvelopeEvento <Evento> _envelope)
 {
     this.registradorPing   = registradorPing;
     this.enfileirador      = enfileirador;
     this.avaliadorDeEvento = avaliadorDeEvento;
     this.envelope          = _envelope.Transformar <EventoPing>(_envelope.Evento.Ping);
 }
예제 #9
0
 public ReacaoCurtida(
     coreinterfaces.triador.IAvaliadorDeEvento <EventoReacao> avaliadorDeEvento,
     coreinterfaces.triador.IRegistradorEventoTriagem <EventoReacao> registradorReacao,
     EnfileiradorClient enfileirador,
     comum_dto.EnvelopeEvento <EventoReacao> envelope)
 {
     this.avaliadorDeEvento = avaliadorDeEvento;
     this.registradorReacao = registradorReacao;
     this.enfileirador      = enfileirador;
     this.envelope          = envelope;
 }
        public void RegistrarEvento(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            var dto = new EventoFacade(envelope.Evento);

            facebookClient.RegistrarReacao(
                envelope.Id,
                envelope.UsuarioId,
                dto.PerfilId,
                dto.PostId,
                envelope.DataEvento,
                envelope.Evento,
                dto.Intensidade,
                dto.Tipo);
        }
예제 #11
0
        public void ProcessarEnvelope(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            ValidarEvento(envelope);

            if (envelope.Evento.favorite_events != null)
            {
                foreach (var reacao in envelope.Evento.favorite_events)
                {
                    var envelopeReacao = envelope.Transformar <EventoReacao>(reacao);

                    triadorService.ProcessarEnvelope(envelopeReacao);
                }
            }
        }
예제 #12
0
 public void RegistrarEvento(comum_dto.EnvelopeEvento <EventoPing> envelope)
 {
     this.twitchClient.RegistrarPing(
         envelope.Id,
         envelope.UsuarioId,
         envelope.Evento.PerfilId,
         envelope.Evento.PostId,
         envelope.DataEvento,
         envelope.Evento.Ultimo,
         envelope.Evento.Atual,
         envelope.Evento.ToleranciaSegundos,
         envelope.Evento.FrequenciaMinutos,
         envelope.Evento.PausaMilissegundos,
         TipoEventoEnum.ping);
 }
예제 #13
0
        public bool Avaliar(comum_dto.EnvelopeEvento <EventoPing> envelope)
        {
            var evento = envelope.Evento;

            var subtracao = evento.Atual - evento.Ultimo.AddMilliseconds(evento.PausaMilissegundos);

            var frequenciaSegundos = (evento.FrequenciaMinutos * 60);

            var segundosToleradosAposUltimoPing = frequenciaSegundos + evento.ToleranciaSegundos;

            var valido = subtracao.TotalSeconds >= frequenciaSegundos &&
                         subtracao.TotalSeconds <= segundosToleradosAposUltimoPing;

            return(valido);
        }
예제 #14
0
        public IEventoTriado Triar(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            IEventoTriado eventoTriado = new EventoTriadoNullable();

            if (envelope.Evento.TipoEvento == enums.TipoEventoEnum.ping)
            {
                eventoTriado = new PingEventoTriado(
                    registradorEventoPing,
                    avaliadorDeEvento,
                    enfileiradorClient,
                    envelope);;
            }

            return(eventoTriado);
        }
예제 #15
0
        public comum_dto.Ponto Pontuar(comum_dto.EnvelopeEvento <EventoPing> envelope)
        {
            var regra = Factory.RegraPontuacaoPadrao(envelope.Evento);

            var pontos = regra.Pontuar(envelope.Evento);

            return(new comum_dto.Ponto(envelope.Id,
                                       envelope.UsuarioId,
                                       envelope.EmpresaId,
                                       envelope.Evento.PostId,
                                       envelope.Evento.PerfilId,
                                       envelope.DataEvento,
                                       corehelper.DateTimeHelper.Now(),
                                       enums.TipoEventoEnum.ping,
                                       pontos,
                                       enums.RedeSocialEnum.twitch));
        }
예제 #16
0
        public coreinterfaces.triador.IEventoTriado Triar(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            coreinterfaces.triador.IEventoTriado eventoTriado = new EventoTriadoNullable();

            var eventoFacade = new EventoFacade(envelope.Evento);

            if (eventoFacade.Value.item == EventoItemEnum.reaction.ToString())
            {
                if (eventoFacade.Value.verb == EventoVerbEnum.add.ToString())
                {
                    eventoTriado = new Reacao(registradorReacao, avaliadorCurtida, enfileiradorClient, envelope);
                }
                else if (eventoFacade.Value.verb == EventoVerbEnum.remove.ToString())
                {
                    eventoTriado = new Reacao(registradorReacao, avaliadorDescurtida, enfileiradorClient, envelope);
                }
                else
                {
                    throw new Exception($"Facebook: Tipo de reação não identificada {eventoFacade.Value.verb}");
                }
            }

            return(eventoTriado);
        }
예제 #17
0
        public adduohelper.envelopes.ResponseEnvelope <comum_dto.Perfil> Identificar(comum_dto.EnvelopeEvento <Evento> envelope)
        {
            var eventoFacade = new EventoFacade(envelope.Evento);

            return(client.Obter(envelope.EmpresaId, coreenums.RedeSocialEnum.facebook, eventoFacade.PerfilId));
        }
예제 #18
0
 public coreinterfaces.triador.IEventoTriado Triar(comum_dto.EnvelopeEvento <EventoReacao> envelopoe)
 {
     return(new ReacaoCurtida(avaliadorDeEvento, registradorReacao, enfileirador, envelopoe));
 }
예제 #19
0
        public void RegistrarEvento(comum_dto.EnvelopeEvento <EventoReacao> envelope)
        {
            var facade = new EventoReacaoFacade(envelope.Evento);

            twitterClient.RegistrarReacao(envelope.Id, envelope.UsuarioId, facade.PerfilId, facade.PostId, envelope.DataEvento, envelope.Evento, facade.Tipo);
        }
 public adduohelper.envelopes.ResponseEnvelope <comum_dto.Perfil> Identificar(comum_dto.EnvelopeEvento <Evento> envelope)
 {
     return(client.Obter(envelope.EmpresaId, enums.RedeSocialEnum.twitch, envelope.Evento.PerfilId));
 }
        public ResponseEnvelope <comum_dto.Perfil> Identificar(comum_dto.EnvelopeEvento <EventoReacao> envelope)
        {
            var dto = new EventoReacaoFacade(envelope.Evento);

            return(client.Obter(envelope.EmpresaId, coreenums.RedeSocialEnum.twitter, dto.PerfilId));
        }