public async Task PutMessageStateModification(MessageStateModification messageState) { HttpResponseMessage response = await client.PutAsJsonAsync(url + $"/api/Messages", messageState); if (!response.IsSuccessStatusCode) { throw new Exception("Die Message konnte nicht verädert werden."); } }
/// <summary> /// Meldet das eine Nachricht gelesen wurde. /// </summary> /// <param name="messageGuid"></param> /// <param name="messageState"></param> /// <returns></returns> public static async Task ReportMessageHasBeenReaded(string messageGuid) { MessageStateModification messageStateModification = new MessageStateModification { MessageGuid = messageGuid, MessageState = MessageState.Readed }; await apiClientService.PutMessageStateModification(messageStateModification); }
// Put: api/Messages public void Put([FromBody] MessageStateModification messageState) { var message = ChatServerContext.Messages.FirstOrDefault(m => m.MessageGuid == messageState.MessageGuid); if (message != null) { message.State = messageState.MessageState; hubContext.Clients.Client(message.From.ConnectionGuid).ReceiveMessageStateModification(messageState); } ChatServerContext.SaveChanges(); }
private void ReceiveMessageStateModification(MessageStateModification messageModification) { foreach (var conversation in DataContext.Instance.Conversations) { var message = conversation.Messages.FirstOrDefault(m => m.MessageGuid == messageModification.MessageGuid); if (message != null) { message.State = messageModification.MessageState; chatClient?.UpdateMessageState(messageModification); break; } } }
// POST: api/Messages public void Post([FromBody] Message message) { DataContext.Instance.Context.Messages.Add(message); ChatServerContext.Messages.Add(message); ChatServerContext.SaveChanges(); var messageState = new MessageStateModification { MessageGuid = message.MessageGuid, MessageState = MessageState.OnServer }; hubContext.Clients.Client(message.From.ConnectionGuid).ReceiveMessageStateModification(messageState); var conGuid = ChatServerContext.Users.FirstOrDefault(u => u.UserGuid == message.ToGuid)?.ConnectionGuid; if (conGuid != null) { hubContext.Clients.Client(conGuid).ReceivePrivateMessage(message); } }
public void UpdateMessageState(MessageStateModification messageStateModification) { OnPropertyChanged(nameof(Conversation)); OnPropertyChanged(nameof(Conversations)); }