public async Task <ActionResult> NovoPush(NovaMensagemPushViewModel p_mensagem) { if (!ModelState.IsValid) { return(View(p_mensagem)); } var _empresa = await this.empresaRepositorio.RetornarEmpresaPorId((int)UsuarioLogado.UsuarioAutenticado().EmpresaId); if (_empresa.QtdePush > 0) { var _retornoPushWoosh = EnvioPushWooshResult(p_mensagem); if (_retornoPushWoosh) { _empresa.QtdePush = _empresa.QtdePush - 1; await this.empresaRepositorio.AtualizarEmpresa(_empresa); } } return(View()); }
private bool EnvioPushWooshResult(NovaMensagemPushViewModel p_mensagem) { var _retornoPushWoosh = new EnvioPush().EnviarPushNotification(p_mensagem.Mensagem); return(_retornoPushWoosh); }
public async Task <ActionResult> NovoPushPorArea(NovaMensagemPushViewModel p_mensagem) { if (ModelState.IsValid) { var empresa = (int)UsuarioLogado.UsuarioAutenticado().EmpresaId; var geoCollection = await this.geoRepositorio.RetornarGeoPorUsuarioPorEmpresa(empresa); var geoValidas = new List <string>(); var tempo = DateTime.Now.AddDays(-30); foreach (var geo in geoCollection.Distinct().Where(x => x.DataCriacao >= tempo)) { //if (distance(p_mensagem.Latitude, p_mensagem.Longitude, geo.Latitude, geo.Longitude, 'K', p_mensagem.Area)) //{ // geoValidas.Add(geo.Usuario.PushWooshToken); //} if (CalcularDistancia(Convert.ToDouble(p_mensagem.Latitude), Convert.ToDouble(p_mensagem.Longitude), geo.Latitude, geo.Longitude, Convert.ToInt32(p_mensagem.Area))) { if (!String.IsNullOrEmpty(geo.Usuario.PushWooshToken) && !geoValidas.Contains(geo.Usuario.PushWooshToken)) { geoValidas.Add(geo.Usuario.PushWooshToken); } } } if (geoValidas.Any()) { var enviados = new List <UsuariosEnvioPushPorArea>(); var _empresa = await this.empresaRepositorio.RetornarEmpresaPorId((int)UsuarioLogado.UsuarioAutenticado().EmpresaId); if (_empresa.QtdePush > 0) //if (1 == 1)//TESTE { var _retornoPushWoosh = this.EnvioPushWooshResult(geoValidas, p_mensagem.Mensagem); if (_retornoPushWoosh) //if (1 == 1)//TESTE { foreach (var item in geoValidas) { var _usuario = await this.RetornaUsuarioPorPushWooshID(item); enviados.Add(new UsuariosEnvioPushPorArea { DataHoraEnvio = DateTime.Now, Mensagem = p_mensagem.Mensagem, Nome = _usuario.Nome, NomeEmpresa = UsuarioLogado.UsuarioAutenticado().Empresa.Nome, //EnderecoOrigem = this.RetornaEnderecoOrigem(Convert.ToDouble(p_mensagem.Latitude.Replace(',', '.'), Convert.ToDouble(p_mensagem.Longitude.Replace(',', '.')))) }); } ViewBag.UsuariosEnviados = enviados; _empresa.QtdePush = _empresa.QtdePush - geoValidas.Count; await this.empresaRepositorio.AtualizarEmpresa(_empresa); } } ViewBag.Erro = "Envio Concluido."; return(View()); } ViewBag.Erro = "Nenhum usuário dentro do raio inserido."; return(View()); } ViewBag.Erro = "Dados informados fora do formato esperado."; return(View()); }