コード例 #1
0
        public async System.Threading.Tasks.Task <string> AprovarEvento(int idEvento)
        {
            try
            {
                bool   podeAdicionar = true;
                Evento ev            = new Evento();

                List <Usuario> usuarios = new List <Usuario>();

                var evento = _eventoService.GetById(idEvento);

                var retornoConsultaEvento = VerificaSeEventoJaExiste(evento);

                foreach (var v in retornoConsultaEvento)
                {
                    if (
                        podeAdicionar &&
                        (evento.DataHoraInicio <= v.DataHoraInicio && evento.DataHoraFim <= v.DataHoraInicio) ||
                        (evento.DataHoraInicio >= v.DataHoraFim && evento.DataHoraFim >= v.DataHoraFim)
                        )
                    {
                        podeAdicionar = true;
                    }
                    else
                    {
                        ev            = v;
                        podeAdicionar = false;
                    }
                }

                if (podeAdicionar)
                {
                    evento.Aprovado = true;
                    evento.Ativo    = true;

                    _eventoService.Update(evento);

                    var garagens = _garagemService.GetByLatLong(evento.Latitude, evento.Longitude, 1);

                    foreach (var g in garagens)
                    {
                        var vaga = _vagaService.GetByIdGarage(g.GaragemId);

                        foreach (var v in vaga)
                        {
                            var loc = _locacaoService.GetAll().Where(l => l.VagaId == v.VagaId &&
                                                                     ((l.DiaHoraInicio <= evento.DataHoraInicio && l.DiaHoraFim == null && l.Ativo) ||
                                                                      (l.DiaHoraInicio <= evento.DataHoraInicio && l.DiaHoraFim >= evento.DataHoraFim && l.Ativo)));

                            if (loc.Count() == 0)
                            {
                                usuarios.Add(v.Usuario);
                            }
                        }
                    }

                    var usuariosDistintos = usuarios.DistinctBy(e => e.UsuarioId).ToList();

                    foreach (var u in usuariosDistintos)
                    {
                        var notifiEmail = _notificacaoEmailSms.GetAll().Where(n => n.UsuarioId == u.UsuarioId && n.TipoNotificacao == 1 && n.MotivoNotificacao == 3 && n.DataCadastro >= DateTime.Now.AddHours(-2) && n.DataCadastro <= DateTime.Now);

                        if (notifiEmail.Count() == 0)
                        {
                            var assunto  = "Novo Evento em sua região";
                            var mensagem = "Olá " + u.Nome + ". <br /><br /> Gostaríamos de informar que no dia " +
                                           evento.DataHoraInicio.ToString("dd/MM/yyyy") + " das " +
                                           evento.DataHoraInicio.ToString("HH:mm") + " às " +
                                           evento.DataHoraFim.ToString("HH:mm") + " ocorrerá um evento próximo da região na qual você possui vagas. <br /><br />" +
                                           "Constatamos que até o momento " +
                                           "sua vaga possui horários disponíveis no período em que irá ocorrer o evento e achamos que esta será uma ótima " +
                                           "oportunidade para você lucrar. Fique atento. <br /><br />" +
                                           "Dados do Evento: <br />" +
                                           "Nome: " + evento.NomeEvento + "<br />" +
                                           "Endereço: " + evento.Endereco +
                                           ", Nº " + evento.Numero + "<br />" +
                                           "CEP: " + evento.Cep + "<br /><br />" +
                                           "E-mail automático. Favor não responder.";

                            /*Notification n = new Notification();
                             *
                             * if (u.AceitaReceberEmail)
                             * {
                             *  await n.SendMailAsync(u.Email, assunto, mensagem);
                             * }*/

                            NotificacaoEmailSms nes = new NotificacaoEmailSms();

                            nes.MotivoNotificacao = 3;
                            nes.TipoNotificacao   = 1;
                            nes.UsuarioId         = u.UsuarioId;

                            _notificacaoEmailSms.Add(nes);
                        }

                        var notifiSms = _notificacaoEmailSms.GetAll().Where(n => n.UsuarioId == u.UsuarioId && n.TipoNotificacao == 2 && n.MotivoNotificacao == 3 && n.DataCadastro >= DateTime.Now.AddHours(-2) && n.DataCadastro <= DateTime.Now);

                        if (notifiSms.Count() == 0)
                        {
                            /*Notification n = new Notification();
                             * if(u.AceitaReceberSms)
                             * {
                             *  string sms = "Informamos que no dia " + evento.DataHoraInicio.ToString("dd/MM/yyyy") +
                             *              " ocorrerá um evento próximo da região na qual você possui vagas. Para mais informações acesse o App PareAqui.";
                             *
                             *  n.SendSMS(u.Celular, sms);
                             * }*/
                            NotificacaoEmailSms nes = new NotificacaoEmailSms();

                            nes.MotivoNotificacao = 3;
                            nes.TipoNotificacao   = 2;
                            nes.UsuarioId         = u.UsuarioId;

                            _notificacaoEmailSms.Add(nes);
                        }

                        var token = _usuarioService.GetById(u.UsuarioId).TokenPush;

                        if (token != null)
                        {
                            var client  = new RestClient("https://fcm.googleapis.com/fcm/send");
                            var request = new RestRequest(Method.POST);
                            request.AddHeader("content-type", "application/json");
                            request.AddHeader("authorization", "key=AAAApWoJXi4:APA91bHQiIkzL3CnydktDyZaMcs_pDR1Bu6ECbM-apPfRIXKgHZg_WWyYDHAFLsXeb6E1TZmjdqtjrrfZWa9BDd6JQKcF89NtAVZOIj2Kmu6yYSYg3n9mFMbc1np6mmiAXULJkKuwnqj");
                            request.AddParameter("application/json", "{\"to\" : \"" + token + "\",\"collapse_key\" : \"type_a\",\"notification\" : {\"body\" : \"Haverá um evento em sua região. É a oportunidade perfeita para você lucrar. Em instantes você receberá um e-mail com mais detalhes.\",\"title\": \"Oportunidade de lucar\" }}", ParameterType.RequestBody);
                            IRestResponse response = client.Execute(request);
                        }
                    }

                    var evts = _eventoService.GetEventsForApproval().Where(e => e.Cep == evento.Cep && e.Numero == evento.Numero);

                    foreach (var e in evts)
                    {
                        if (
                            e.DataHoraInicio < evento.DataHoraInicio && e.DataHoraFim <= evento.DataHoraInicio ||
                            e.DataHoraInicio >= evento.DataHoraFim && e.DataHoraFim > evento.DataHoraFim
                            )
                        {
                        }
                        else
                        {
                            var a = ReprovarEvento(e.EventoId, "Há outro Evento neste mesmo horário que já foi aprovado.");
                        }
                    }

                    return(JsonConvert.SerializeObject(new { code = 200, message = "Evento aprovado com sucesso." }));
                }
                else
                {
                    return(JsonConvert.SerializeObject(new { code = 400, message = "Desculpe, mas já existe um evento cadastrado neste local para este horário.", retornoEvento = ev }));
                }
            }
            catch
            {
                return(JsonConvert.SerializeObject(new { code = 400, message = "Houve um erro ao aprovar o Evento. Por favor tente novamente." }));
            }
        }
コード例 #2
0
        public async System.Threading.Tasks.Task <string> ReprovarVaga(int idVaga, string motivoReprovada)
        {
            try
            {
                var vaga = _vagaService.GetById(idVaga);

                vaga.Aceita          = false;
                vaga.Ativo           = false;
                vaga.MotivoReprovada = motivoReprovada;

                _vagaService.Update(vaga);

                var usuario = vaga.Usuario;

                var notifiEmail = _notificacaoEmailSms.GetAll().Where(n => n.UsuarioId == usuario.UsuarioId && n.TipoNotificacao == 1 && n.MotivoNotificacao == 2 && n.DataCadastro >= DateTime.Now.AddHours(-2) && n.DataCadastro <= DateTime.Now);

                if (notifiEmail.Count() == 0)
                {
                    string assunto  = "Vaga reprovada";
                    var    mensagem = "Olá " + usuario.Nome + ". <br /><br /> Infelizmente não podemos aprovar a sua vaga, localizada na " + vaga.Garagem.Endereco +
                                      " Nº " + vaga.Garagem.NumeroRua + ". <br /><br /> Segue abaixo o motivo pelo qual não podemos aprovar a mesma.<br /><br />" +
                                      "Dados da Vaga: <br />" +
                                      "Endereço: " + vaga.Garagem.Endereco +
                                      ", Nº " + vaga.Garagem.NumeroRua + "<br />" +
                                      "Bairro: " + vaga.Garagem.Bairro + "<br />" +
                                      "CEP: " + vaga.Garagem.Cep + "<br /><br />" +
                                      "Motivo da Reprovação: " + motivoReprovada + "<br /><br />" +
                                      "E-mail automático. Favor não responder.";

                    /*Notification n = new Notification();
                     *
                     * if (usuario.AceitaReceberEmail)
                     * {
                     *  await n.SendMailAsync(usuario.Email, assunto, mensagem);
                     * }*/

                    NotificacaoEmailSms nes = new NotificacaoEmailSms();

                    nes.MotivoNotificacao = 2;
                    nes.TipoNotificacao   = 1;
                    nes.UsuarioId         = usuario.UsuarioId;

                    _notificacaoEmailSms.Add(nes);
                }

                var notifiSms = _notificacaoEmailSms.GetAll().Where(n => n.UsuarioId == usuario.UsuarioId && n.TipoNotificacao == 2 && n.MotivoNotificacao == 2 && n.DataCadastro >= DateTime.Now.AddHours(-2) && n.DataCadastro <= DateTime.Now);

                if (notifiSms.Count() == 0)
                {
                    /*Notification n = new Notification();
                     *
                     * if(usuario.AceitaReceberSms)
                     * {
                     *  string sms = "Olá " + usuario.Nome + ". Infelizmente não podemos aprovar a sua vaga. Para mais informações acesse o App PareAqui.";
                     *
                     *  n.SendSMS(usuario.Celular, sms);
                     * }*/

                    NotificacaoEmailSms nes = new NotificacaoEmailSms();

                    nes.MotivoNotificacao = 2;
                    nes.TipoNotificacao   = 2;
                    nes.UsuarioId         = usuario.UsuarioId;

                    _notificacaoEmailSms.Add(nes);
                }

                var token = _usuarioService.GetById(vaga.UsuarioId).TokenPush;

                if (token != null)
                {
                    var client  = new RestClient("https://fcm.googleapis.com/fcm/send");
                    var request = new RestRequest(Method.POST);
                    request.AddHeader("content-type", "application/json");
                    request.AddHeader("authorization", "key=AAAApWoJXi4:APA91bHQiIkzL3CnydktDyZaMcs_pDR1Bu6ECbM-apPfRIXKgHZg_WWyYDHAFLsXeb6E1TZmjdqtjrrfZWa9BDd6JQKcF89NtAVZOIj2Kmu6yYSYg3n9mFMbc1np6mmiAXULJkKuwnqj");
                    request.AddParameter("application/json", "{\"to\" : \"" + token + "\",\"collapse_key\" : \"type_a\",\"notification\" : {\"body\" : \"Infelizmente não podemos aprovar a sua vaga. Em instantes você receberá um e-mail com mais detalhes.\",\"title\": \"Vaga reprovada\" }}", ParameterType.RequestBody);
                    IRestResponse response = client.Execute(request);
                }

                return(JsonConvert.SerializeObject(new { code = 200, message = "Vaga reprovada com sucesso." }));
            }
            catch
            {
                return(JsonConvert.SerializeObject(new { code = 400, message = "Houve um erro ao reprovar a Vaga. Por favor tente novamente." }));
            }
        }