public async Task SendMessageHall(string Message, int UserID, int HallID) { Hall h = await api.GetHallAsync(HallID); if (h == null || !h.Active) { return; } Player p = await api.GetPlayerAsync(UserID); if (p == null) { return; } MessageHall mh = new MessageHall() { Content = Message, ID_Destination = HallID, ID_Sender = UserID, Status = MessageStatus.None, Send_Time = DateTime.Now, Destination = h, Sender = p }; h.Messages.Add(mh); await Clients.Group("hall_" + HallID).ReceiveMessageHall(mh); await api.db.SaveChangesAsync(); }
public PopMessage(MessageHall Hall) { this.Hall = Hall; MQTTEventTrigger.SetCallBackAction(new PubSubClient.ReceiveMessage(((string Topic, string Message) => { if (Message != "" && Topic != "") { Task.Factory.StartNew(() => { Hall.Dispatcher.Invoke(() => { TextBlock Content = new TextBlock(); MQTTEventTrigger.StatusMessage status = MQTTEventTrigger.MQTTMessageDecode(Topic, Message); Content.Text = status.Message; TextBlock Description = new TextBlock(); Description.Opacity = 0.68; Description.Text = status.Description; StackPanel panel = new StackPanel(); panel.Margin = new Thickness(24, 8, 24, 16); panel.Orientation = Orientation.Vertical; panel.Children.Add(Content); panel.Children.Add(Description); Expander expander = new Expander(); expander.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch; expander.Header = status.Topic; expander.Content = panel; Hall.MessageList.Children.Insert(0, expander); Hall.Ondoing.Text = status.Topic + "..."; }); }); } }))); }
public async Task <IHttpActionResult> PutMessageHall(int id, MessageHall messageHall) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != messageHall.ID) { return(BadRequest()); } db.Entry(messageHall).State = EntityState.Modified; try { await db.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!MessageHallExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public async Task <IHttpActionResult> GetMessageHall(int id) { MessageHall messageHall = await db.MessageHalls.FindAsync(id); if (messageHall == null) { return(NotFound()); } return(Ok(messageHall)); }
public async Task <IHttpActionResult> PostMessageHall(MessageHall messageHall) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.MessageHalls.Add(messageHall); await db.SaveChangesAsync(); return(CreatedAtRoute("DefaultApi", new { id = messageHall.ID }, messageHall)); }
public async Task <IHttpActionResult> DeleteMessageHall(int id) { MessageHall messageHall = await db.MessageHalls.FindAsync(id); if (messageHall == null) { return(NotFound()); } db.MessageHalls.Remove(messageHall); await db.SaveChangesAsync(); return(Ok(messageHall)); }