private static MessagesInfo MessageToMessageInfo(Message message) { var messagesInfo = new MessagesInfo { SenderUsername = message.SenderUsername, Text = message.Text, UnixTime = message.UnixTime }; return(messagesInfo); }
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); } }
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(); }