public async Task <IActionResult> PutMessageChatModel(MessageChatModel message) { if (message.Id == 0) { setStatus("fail", "Error in request", 403); return(BadRequest(status)); } _context.Entry(message).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MessageChatModelExists(message.Id)) { setStatus("fail", "No message found", 404); return(NotFound(status)); } else { throw; } } setStatus("success", "Update message sucessfully", 200); return(Ok(status)); }
private async void GetChatMe() { try { pr_Load.Visibility = Visibility.Collapsed; wc = new WebClientClass(); // http://message.bilibili.com/api/msg/query.room.list.do?access_key=a36a84cc8ef4ea2f92c416951c859a25&actionKey=appkey&appkey=c1b107428d337928&build=414000&page_size=100&platform=android&ts=1461404884000&sign=5e212e424761aa497a75b0fb7fbde775 string url = string.Format("http://message.bilibili.com/api/msg/query.room.list.do?access_key={0}&actionKey=appkey&appkey={1}&build=411005&page_size=100&platform=android&ts={2}", ApiHelper.access_key, ApiHelper._appKey, ApiHelper.GetTimeSpen); url += "&sign=" + ApiHelper.GetSign(url); string results = await wc.GetResults(new Uri(url)); MessageChatModel model = JsonConvert.DeserializeObject <MessageChatModel>(results); if (model.code == 0) { List <MessageChatModel> list = JsonConvert.DeserializeObject <List <MessageChatModel> >(model.data.ToString()); list_ChatMe.ItemsSource = list; } else { messShow.Show("读取失败" + model.message, 3000); } } catch (Exception) { messShow.Show("读取失败", 3000); } finally { pr_Load.Visibility = Visibility.Collapsed; } }
private async Task CreateNotification(MessageChatModel msg, Guid messageId, string notifyType, ICollection <UserModel> toUser) { await Mediator.Send(new CreateNotificationCommand() { RegUserId = _currentUserService.UserId, RegUserName = _currentUserService.UserName, MessageContent = msg.Content, ConversationId = msg.ConversationId.ToString(), MessageId = messageId.ToString(), ToUser = toUser, Type = notifyType, TeamId = msg.TeamId }); // Method intentionally left empty. }
public List <MessageChatModel> SearchMessages(string userId, string searchText) { try { var lstMessages = new List <MessageChatModel>(); var conversationIds = GetConversationIds(userId); // If blank search, assume they want to search everything if (!string.IsNullOrWhiteSpace(searchText)) { searchText += SearchBolbStorageFiles(searchText); } else { searchText = "*"; } var parameters = new SearchParameters() { Filter = $"search.in(ConversationId, '{conversationIds}', ',')", SearchMode = SearchMode.All }; var results = _indexMessagesClient.Documents.Search(searchText, parameters).Results; foreach (SearchResult <Document> result in results) { var message = new MessageChatModel() { Id = Guid.Parse((string)result.Document.GetValueOrDefault("Id")), Content = (string)result.Document.GetValueOrDefault("Content"), ConversationId = Guid.Parse((string)result.Document.GetValueOrDefault("ConversationId")), RegUserName = (string)result.Document.GetValueOrDefault("RegUserName"), Created = ((DateTimeOffset)result.Document.GetValueOrDefault("Created")).UtcDateTime }; lstMessages.Add(message); } return(lstMessages); } catch (Exception ex) { Console.WriteLine("Error querying index: {0}\r\n", ex.Message.ToString()); } return(null); }
private async Task <ConversationLastContentModel> GetLastConversationAsync(MessageChatModel msg) { var conver = await Mediator.Send(new GetConversationQuery { LoginUserId = _currentUserService.UserId, ConversationId = msg.ConversationId.ToString() }); return(new ConversationLastContentModel { Conversation = conver, LastMessageChatContent = new MessageChatModel { RegUserName = msg.RegUserName, Content = msg.Content, ConversationId = msg.ConversationId, Created = DateTime.UtcNow } }); }
public async Task <ActionResult <MessageChatModel> > PostMessageChatModel(MessageChatModel message) { var sender = await _context.Users.FindAsync(message.SenderId); if (sender == null) { setStatus("fail", "No id found with the sender id", 404); return(NotFound(status)); } var receiver = await _context.Users.FindAsync(message.ReceiverId); if (receiver == null) { setStatus("fail", "No id found with the receiver id", 404); return(NotFound(status)); } _context.MessageChats.Add(message); await _context.SaveChangesAsync(); return(CreatedAtAction("GetMessageChatModel", new { id = message.Id }, message)); }
public async Task <IActionResult> SendMessageToUser([FromRoute] string userId, [FromBody] MessageChatModel msg) { try { msg.CreatedBy = _currentUserService.UserId; msg.RegUserName = _currentUserService.UserName; if (msg.AttachFileList != null) { foreach (AttachFileModel file in msg.AttachFileList) { file.BlobStorageUrl = await _blobStorageService .UploadFileToBlobAsync(file.LocalUrl.Replace("\\\\", "\\"), file.FileStorageName); } } msg.Created = DateTime.UtcNow; Guid messageId = await Mediator.Send(new CreateMessageChatCommand() { RegUserId = msg.CreatedBy, RegUserName = msg.RegUserName, Content = msg.Content, ConversationId = msg.ConversationId, AttachFileList = msg.AttachFileList, RelatedMessagesId = msg.RelatedMessagesId, RelatedTaskId = msg.RelatedTaskId }); // edit message id back to MessageChatModel msg.Id = messageId; // query other members of the conversation var conversation = await Mediator.Send(new GetConversationQuery { ConversationId = msg.ConversationId.ToString() }); msg.TeamId = conversation.TeamId; // create Notification await CreateNotification(msg, messageId, "Mention", msg.Mentions); // Do client cua ban cu su dung 2 message model khac nhau, // nen doan code duoi dung de chuyen ve model ban cu de co the send message cho ca ban moi va ban cu var msgSend = new MessageDto() { AttachFiles = msg.AttachFileList, ConversationId = msg.ConversationId, ConversationName = msg.ConversationName, Date = msg.Created, IsPin = msg.IsPin, Mentions = msg.Mentions, Message = msg.Content, MessageId = msg.Id.ToString(), Name = msg.RegUserName, Reactions = msg.ReactionList, RelatedMessagesId = msg.RelatedMessagesId, RelatedTaskId = msg.RelatedTaskId, TeamId = msg.TeamId, UserId = msg.CreatedBy, }; msgSend.Type = "received"; // Sent messages to Receiver foreach (var entity in GetConnectionEntitys(userId)) { await _hubContext.Clients.Client(entity.RowKey).SendAsync("NewConversation", await GetLastConversationAsync(msg)); await _hubContext.Clients.Client(entity.RowKey).SendAsync("ReceiveMessage", msgSend); } msgSend.Type = "sent"; // Sent messages to Sender foreach (var entity in GetConnectionEntitys(_currentUserService.UserId)) { await _hubContext.Clients.Client(entity.RowKey).SendAsync("ReceiveMessage", msgSend); } } catch (Exception) { if (msg.AttachFileList != null) { foreach (AttachFileModel file in msg.AttachFileList) { await _blobStorageService.DeleteBlobData(file.BlobStorageUrl); } } } return(NoContent()); }