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.");
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        // 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();
        }
Exemple #4
0
 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;
         }
     }
 }
Exemple #5
0
        // 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);
            }
        }
Exemple #6
0
 public void UpdateMessageState(MessageStateModification messageStateModification)
 {
     OnPropertyChanged(nameof(Conversation));
     OnPropertyChanged(nameof(Conversations));
 }