示例#1
0
        /// <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));
            }
        }
示例#2
0
        /// <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());
            }
        }
示例#3
0
        /// <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()));
            }
        }