コード例 #1
0
ファイル: FormMain.cs プロジェクト: ASIXz/PowerAggregator
 void AddMessage(IEnumerable <PowerAgregator.Message> msgs, ChatterUser user)
 {
     if (CurrentUser != null && (CurrentUser == user || CurrentUser == user.AgregatorUser))
     {
         listMessages.Items.AddRange(msgs.ToArray());
     }
     else
     {
         if (user.AgregatorUser != null)
         {
             foreach (ListViewItem item in listAgregatorContacts.Items)
             {
                 if (item.Tag == user.AgregatorUser)
                 {
                     item.Font = new Font(item.Font, FontStyle.Bold);
                 }
             }
         }
         else
         {
             foreach (ListViewItem item in listChattersContacts.Items)
             {
                 if (item.Tag == user)
                 {
                     item.Font = new Font(item.Font, FontStyle.Bold);
                 }
             }
         }
     }
 }
コード例 #2
0
ファイル: DbHelper.cs プロジェクト: ASIXz/PowerAggregator
 public static void SaveMessages(ChatterUser user)
 {
     db.Messages.RemoveRange(db.Messages.Where(x => x.UserId == user.UserId));
     db.Messages.AddRange(user.Messages.Select((x, i) =>
     {
         var c = x.StoreData();
         c.Id += i.ToString();
         return(c);
     }));
     db.SaveChanges();
 }
コード例 #3
0
        public IEnumerable <Message> GetChatForUser(ChatterUser user, int skipCount)
        {
            int id = 0;

            if (DecomposeId(user.UserId, out id) == this.user.AccessHash)
            {
                return(new List <Message>());
            }
            var z = new Thread(() =>
            {
                Thread.CurrentThread.IsBackground = true;
                /* run your code here */
                AGetHistory(user, skipCount);
                Task.Delay(1000).Wait();
            });

            z.Start();
            z.Join();
            if (Messages is TLMessagesSlice)
            {
                var msgs   = (TLMessagesSlice)Messages;
                var result = msgs.Messages.Select(x =>
                {
                    var msg = (TLMessage)x;
                    return(new Message(user)
                    {
                        Time = ZeroTDate.AddSeconds(msg.Date),
                        Recived = !msg.Out,
                        Text = msg.Message
                    });
                });
                return(result);
            }
            else
            {
                var msgs   = (TLMessages)Messages;
                var result = msgs.Messages.Select(x =>
                {
                    var msg = (TLMessage)x;
                    return(new Message(user)
                    {
                        Time = ZeroTDate.AddSeconds(msg.Date),
                        Recived = !msg.Out,
                        Text = msg.Message
                    });
                });
                return(result);
            }

            //ZeroTDate.AddSeconds(((res as TLMessages).Messages[0] as TLMessage).Date)
        }
コード例 #4
0
        public async void AGetHistory(ChatterUser user, int skipCount)
        {
            int  id   = 0;
            long hash = DecomposeId(user.UserId, out id);

            try
            {
                Messages = await client.GetHistoryAsync(new TLInputPeerUser()
                {
                    UserId = id, AccessHash = hash
                }, skipCount, 0, 0);
            }
            catch (Exception ex)
            {
                Messages = new TLMessagesSlice();
            }
        }
コード例 #5
0
ファイル: TestPlugin.cs プロジェクト: ASIXz/PowerAggregator
        public bool SendMessage(ref Message message)
        {
            message.Recived = false;
            string      msgText = message.Text;
            ChatterUser msgUser = message.User;

            if (msgText.StartsWith("reply", StringComparison.InvariantCultureIgnoreCase))
            {
                msgText = msgText.Substring(6);
                new Task(() =>
                {
                    Task.Delay(5000).Wait();
                    MessageRecived?.Invoke(new Message[] { new Message(msgUser)
                                                           {
                                                               Recived = true, Time = DateTime.Now.AddSeconds(5), Text = "Thanks for: " + msgText
                                                           } }, msgUser);
                }).Start();
            }
            return(true);
        }
コード例 #6
0
ファイル: DbHelper.cs プロジェクト: ASIXz/PowerAggregator
 public static void LoadMessages(ChatterUser user)
 {
     user.Messages = db.Messages.Where(x => x.UserId == user.UserId).ToList().Select(x => new Message(x, user)).ToList();
 }
コード例 #7
0
 public byte[] GetImage(ChatterUser user)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
 public IEnumerable <Message> GetChatForUser(ChatterUser user)
 {
     return(GetChatForUser(user, 0));
 }
コード例 #9
0
ファイル: TestPlugin.cs プロジェクト: ASIXz/PowerAggregator
        public IEnumerable <Message> GetChatForUser(ChatterUser user)
        {
            var Result = new Message[]
            {
                new Message(user)
                {
                    Recived = false,
                    Text    = "Dialog Start!",
                    Time    = new DateTime(2017, 12, 10, 10, 10, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Message 1!",
                    Time    = new DateTime(2017, 12, 10, 10, 12, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = false,
                    Text    = "Message 2!",
                    Time    = new DateTime(2017, 12, 10, 10, 14, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Bye bye!",
                    Time    = new DateTime(2017, 12, 10, 10, 17, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = false,
                    Text    = "Dialog Start 2!",
                    Time    = new DateTime(2017, 12, 11, 10, 10, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Message 1!",
                    Time    = new DateTime(2017, 12, 11, 10, 12, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = false,
                    Text    = "Message 2!",
                    Time    = new DateTime(2017, 12, 11, 10, 14, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Bye bye 2!",
                    Time    = new DateTime(2017, 12, 11, 10, 17, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Dialog Start 3!",
                    Time    = new DateTime(2017, 12, 11, 11, 10, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = false,
                    Text    = "Message 1!",
                    Time    = new DateTime(2017, 12, 11, 11, 12, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = true,
                    Text    = "Message 2!",
                    Time    = new DateTime(2017, 12, 11, 11, 14, int.Parse(user.UserId))
                },
                new Message(user)
                {
                    Recived = false,
                    Text    = "Bye bye 3!",
                    Time    = new DateTime(2017, 12, 11, 11, 17, int.Parse(user.UserId))
                }
            };

            foreach (Message msg in Result)
            {
                msg.Time = msg.Time.AddHours(-7).AddMinutes(2);
            }

            return(Result);
        }
コード例 #10
0
ファイル: TestPlugin.cs プロジェクト: ASIXz/PowerAggregator
 public IEnumerable <Message> GetChatForUser(ChatterUser user, int LastMessage)
 {
     throw new NotImplementedException();
 }