Example #1
0
        /// <summary>
        /// Call server to remove message
        /// </summary>
        /// <param name="messageId"></param>
        /// <param name="callback"></param>
        private void RemoveMessage(Message message, Action<string, Exception> callback)
        {
            Dictionary<string, object> data = new Dictionary<string, object>();
            data.Add(ApiKey_Key, ApiKey);
            data.Add(UserId_Key, UserId);
            data.Add( message.IsPush ? HTMLMessageId_Key : MessageId_Key, message.IsPush ? message.htmlMessageId : message.messageId);

            ExecuteRequest("rulegrid/mobile/message/removeMessage", data, callback);
        }
Example #2
0
        /// <summary>
        /// Call server to notify about opened message
        /// </summary>
        /// <param name="messageId"></param>
        /// <param name="callback"></param>
        private void NotifyMessageOpened(Message message, Action<string, Exception> callback)
        {
            Dictionary<string, object> data = new Dictionary<string, object>();
            data.Add(ApiKey_Key, ApiKey);
            data.Add(UserId_Key, UserId);
            data.Add(MessageId_Key, message.messageId);
            data.Add(HTMLMessageId_Key, message.htmlMessageId);
            if( message.IsPush == true )
                data.Add(CampaignId_Key, message.campaignId);

            ExecuteRequest("rulegrid/mobile/message/messageOpened", data, callback);
        }
Example #3
0
        private void GetPushedMessages(Action<Message[], Exception> callback)
        {
            Dictionary<string, object> data = new Dictionary<string, object>();
            data.Add(ApiKey_Key, ApiKey);
            data.Add(UserId_Key, UserId);

            ExecuteRequest("rulegrid/mobile/message/getPushedMessages", data, (result, ex) =>
            {
                if (result != null)
                {
                    try
                    {
                        PushMessage[] pushMessages = JsonConvert.DeserializeObject<PushMessage[]>(result);
                        Message[] messages = new Message[pushMessages.Length];

                        for (int i = 0; i < pushMessages.Length; i++)
                        {
                            messages[i] = new Message();
                            messages[i].fillFromPushMessage(pushMessages[i]);
                        }
                        callback(messages, null);
                    }
                    catch (JsonSerializationException e)
                    {
                        callback(null, e);
                    }

                    //  GetMessagesHtml(messages, 0, callback);
                }
                else
                {
                    callback(null, ex);
                }

            });
        }
Example #4
0
        /// <summary>
        /// Get html body for all messages with recursion
        /// </summary>
        /// <param name="messages"></param>
        /// <param name="index"></param>
        /// <param name="callback"></param>
        private void GetMessagesHtml(Message[] messages, int index, Action<Message[]> callback)
        {
            if(index >= messages.Length)
            {
                _dispatcher.Post(state => callback(messages), null);
                return;
            }

            Dictionary<string, object> data = new Dictionary<string, object>();
            data.Add(ApiKey_Key, ApiKey);
            data.Add(UserId_Key, UserId);
            data.Add(HTMLMessageId_Key, messages[index].htmlMessageId);
            data.Add(MessageId_Key, messages[index].messageId);
            data.Add(CampaignId_Key, messages[index].campaignId);

            WebClient webClient = new WebClient();
            webClient.Headers["Content-Type"] = "application/json";
            String httpBody = JsonConvert.SerializeObject(data);
            webClient.UploadStringAsync(new Uri(new Uri(ServerUrl), "rulegrid/mobile/message/getPhoneHTML"), "PUT", httpBody);
            webClient.UploadStringCompleted += (sender, e) =>
                                                   {
                                                       if(e.Error == null)
                                                       {
                                                           messages[index].Html = e.Result;
                                                       }

                                                       GetMessagesHtml(messages, index + 1, callback);
                                                   };
        }
Example #5
0
 /// <summary>
 /// Remove message
 /// </summary>
 /// <param name="messageId"></param>
 internal void RemoveMessage(Message message)
 {
     RemoveMessage(message, null);
 }
Example #6
0
 /// <summary>
 /// notify that message was shown to user
 /// </summary>
 /// <param name="messageId"></param>
 internal void NotifyMessageOpened(Message message)
 {
     NotifyMessageOpened(message, null);
 }