Exemple #1
0
        private static MessagesInfo MessageToMessageInfo(Message message)
        {
            var messagesInfo = new MessagesInfo
            {
                SenderUsername = message.SenderUsername, Text = message.Text, UnixTime = message.UnixTime
            };

            return(messagesInfo);
        }
Exemple #2
0
        public async Task <GetMessagesResult> GetMessages(string conversationId, string continuationToken, int limit, long lastSeenMessageTime)
        {
            try
            {
                var feedOptions = new FeedOptions
                {
                    MaxItemCount = limit,
                    EnableCrossPartitionQuery = false,
                    RequestContinuation       = continuationToken,
                    PartitionKey = new PartitionKey("m_" + conversationId)
                };

                IQueryable <DocumentDbMessageEntity> query = _documentClient.CreateDocumentQuery <DocumentDbMessageEntity>(DocumentCollectionUri, feedOptions)
                                                             .Where(message => message.UnixTime > lastSeenMessageTime).OrderByDescending(entity => entity.UnixTime);

                FeedResponse <DocumentDbMessageEntity> feedResponse = await query.AsDocumentQuery().ExecuteNextAsync <DocumentDbMessageEntity>();

                var messages     = new List <MessagesInfo>();
                var messagesList = feedResponse.Select(ToMessage).ToList();

                foreach (var message in messagesList)
                {
                    var messageInfo = new MessagesInfo
                    {
                        Text           = message.Text,
                        SenderUsername = message.SenderUsername,
                        UnixTime       = message.UnixTime
                    };
                    messages.Add(messageInfo);
                }

                return(new GetMessagesResult
                {
                    ContinuationToken = feedResponse.ResponseContinuation,
                    Messages = messages
                });
            }
            catch (DocumentClientException e)
            {
                if (e.StatusCode == HttpStatusCode.NotFound)
                {
                    throw new MessageNotFoundException($"Conversation with id {conversationId} was not found");
                }
                throw new StorageErrorException($"Failed to get {limit} messages from conversation {conversationId}",
                                                e, (int)e.StatusCode);
            }
        }
Exemple #3
0
    public void SendShortMsg(string title, string content, JSReader[] recevierList)
    {
        MessagesInfo mi = new MessagesInfo();

        mi.Title    = title;
        mi.Content  = content;
        mi.Priority = MessagesInfo.MessagePriority.Normal;
        mi.Type     = MessagesInfo.MessageType.ShortMessage;
        mi.Model    = MessagesInfo.OpenModel.Normal;
        SortedList <string, string> SendTo = new SortedList <string, string>();

        foreach (JSReader recevier in recevierList)
        {
            SendTo.Add(recevier["id"].ToString(), recevier["name"].ToString());
        }
        mi.SendTo = SendTo;
        mi.SendMessage();
    }