/// <summary> /// Salva os dados da mensagem de parceiro. /// </summary> /// <param name="mensagemParceiro"></param> /// <returns></returns> public Colosoft.Business.SaveResult SalvarMensagemParceiro(Entidades.MensagemParceiro mensagemParceiro) { mensagemParceiro.Require("mensagemParceiro").NotNull(); var enviarPush = !mensagemParceiro.ExistsInStorage; using (var session = SourceContext.Instance.CreateSession()) { var resultado = mensagemParceiro.Save(session); if (!resultado) { return(resultado); } resultado = session.Execute(false).ToSaveResult(); if (!resultado) { return(resultado); } //Dispara a notificação push para os dispositivos cadastrados if (enviarPush) { ServiceLocator.Current.GetInstance <IDeviceAppFluxo>().EnviarNotificacao(mensagemParceiro); } return(new SaveResult(true, null)); } }
/// <summary> /// Apaga os dados da mensagem de parceiro. /// </summary> /// <param name="mensagemParceiro"></param> /// <returns></returns> public Colosoft.Business.DeleteResult ApagarMensagemParceiro(Entidades.MensagemParceiro mensagemParceiro) { mensagemParceiro.Require("mensagemParceiro").NotNull(); using (var session = SourceContext.Instance.CreateSession()) { var resultado = mensagemParceiro.Delete(session); if (!resultado) { return(resultado); } return(session.Execute(false).ToDeleteResult()); } }
/// <summary> /// Dispara uma notificação para o dispositivo /// </summary> /// <param name="mensagemParceiro"></param> /// <returns></returns> public OperationResult EnviarNotificacao(Entidades.MensagemParceiro mensagemParceiro) { try { var idsCli = mensagemParceiro.DestinatariosCliente.Select(f => f.IdCli); var tokens = SourceContext.Instance.CreateQuery() .From <Data.Model.DeviceApp>() .Where(string.Format("IdCliente IN({0})", string.Join(",", idsCli))) .Select("Token") .Execute() .Select(f => f.GetString(0)) .ToList(); if (tokens == null || tokens.Count == 0) { return(new OperationResult(true, null)); } using (var sender = new Sender("AAAAUcATlp8:APA91bFX3xuB1kO6AVv9ZnpPgVIUAfg6aNLlTSoKROdiUGryVCxDJw1WC1V8twqyCCD9rOVippaN744klbGaSxb__C5gDyQ8uWo0vFRZnyduHLOQPYeyxyrK9Uf2zJcbuvC-wYomHz4O")) { var msgSub = mensagemParceiro.Descricao; if (msgSub.Length > 10) { mensagemParceiro.Descricao.Substring(0, 10); } var msg = new Message() { RegistrationIds = tokens, Data = new fcm.net.Data() { Title = mensagemParceiro.Assunto, Message = msgSub + "...", IdMensagem = mensagemParceiro.IdMensagemParceiro } }; var res = sender.Send(msg); } return(new OperationResult(true, null)); } catch (Exception ex) { return(new OperationResult(false, ex.Message.GetFormatter())); } }