Пример #1
0
        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();
        }
Пример #2
0
 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));
        }