Ejemplo n.º 1
0
        public Task GetContactsFavorites(Action <List <Contact> > result)
        {
            return(Task.Factory.StartNew(() =>
            {
                var count = 0;
                var users = new List <User>();
                foreach (var bubbleGroup in BubbleGroupManager.SortByMostPopular(this, true))
                {
                    var address = bubbleGroup.Address;
                    var user = _dialogs.GetUser(uint.Parse(address)) as User;
                    if (user != null)
                    {
                        users.Add(user);
                    }
                    count++;
                    if (count > 6)
                    {
                        break;
                    }
                }

                if (!users.Any())
                {
                    result(null);
                    return;
                }

                var contacts = users.Select(x => CreateTelegramContact(x))
                               .OfType <Contact>().OrderBy(x => x.FullName).ToList();

                result(contacts);
            }));
        }
Ejemplo n.º 2
0
 public Task GetContactsFavorites(Action <List <Contact> > result)
 {
     return(Task.Factory.StartNew(async() =>
     {
         var count = 0;
         var inputUsers = new List <IInputUser>();
         foreach (var bubbleGroup in BubbleGroupManager.SortByMostPopular(this, true))
         {
             var address = bubbleGroup.Address;
             foreach (var user in _dialogs.Users)
             {
                 var userId = TelegramUtils.GetUserId(user);
                 if (userId == address)
                 {
                     var inputUser = TelegramUtils.CastUserToInputUser(user);
                     if (inputUser != null)
                     {
                         inputUsers.Add(inputUser);
                         break;
                     }
                 }
             }
             count++;
             if (count > 6)
             {
                 break;
             }
         }
         if (!inputUsers.Any())
         {
             result(null);
         }
         else
         {
             using (var client = new FullClientDisposable(this))
             {
                 var users = await GetUsers(inputUsers, client.Client);
                 var contacts = users.Select(x =>
                                             new TelegramContact
                 {
                     Available = TelegramUtils.GetAvailable(x),
                     LastSeen = TelegramUtils.GetLastSeenTime(x),
                     FirstName = TelegramUtils.GetUserName(x),
                     Ids = new List <Contact.ID>
                     {
                         new Contact.ID
                         {
                             Service = this,
                             Id = TelegramUtils.GetUserId(x).ToString(CultureInfo.InvariantCulture)
                         }
                     },
                 }).OfType <Contact>().OrderBy(x => x.FirstName).ToList();
                 result(contacts);
             }
         }
     }));
 }
Ejemplo n.º 3
0
        public Task GetContactsFavorites(Action <List <Contact> > result)
        {
            return(Task.Factory.StartNew(() =>
            {
                var count = 0;
                var users = new List <IUser>();
                foreach (var bubbleGroup in BubbleGroupManager.SortByMostPopular(this, true))
                {
                    var address = bubbleGroup.Address;
                    var user = _dialogs.GetUser(uint.Parse(address));
                    if (user != null)
                    {
                        users.Add(user);
                    }
                    count++;
                    if (count > 6)
                    {
                        break;
                    }
                }

                if (!users.Any())
                {
                    result(null);
                    return;
                }

                var contacts = users.Select(x =>
                                            new TelegramContact
                {
                    Available = TelegramUtils.GetAvailable(x),
                    LastSeen = TelegramUtils.GetLastSeenTime(x),
                    FirstName = TelegramUtils.GetUserName(x),
                    Ids = new List <Contact.ID>
                    {
                        new Contact.ID
                        {
                            Service = this,
                            Id = TelegramUtils.GetUserId(x).ToString(CultureInfo.InvariantCulture)
                        }
                    },
                    User = x as User
                }).OfType <Contact>().OrderBy(x => x.FirstName).ToList();

                result(contacts);
            }));
        }