示例#1
0
        async Task <ObservableCollection <GroupedUsers> > GetUserGroupsAsync()
        {
            ObservableCollection <GroupedUsers> groups = new ObservableCollection <GroupedUsers>();
            var letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToList();
            var users   = await SettingsHelper.Instance.op2.GetAllUsers(true, true);

            var groupByAlpha = from letter in letters
                               select new
            {
                Key = letter.ToString(),

                query = from item in users
                        where item.fullName.StartsWith(letter.ToString(), StringComparison.CurrentCultureIgnoreCase)
                        orderby item.fullName
                        select item
            };

            foreach (var g in groupByAlpha)
            {
                GroupedUsers groupedUsers = new GroupedUsers();
                groupedUsers.Key = g.Key;

                foreach (var item in g.query)
                {
                    groupedUsers.Add(item);
                }

                groups.Add(groupedUsers);
            }

            return(groups);
        }
示例#2
0
        private void FillAlphabeticallyGroupedUsers()
        {
            var dict         = GetAlphabeticallySortedUsersDictionary();
            var listDataKeys = (new List <char>(dict.Keys));

            listDataKeys.Sort((a, b) => a.CompareTo(b));

            foreach (var key in listDataKeys)
            {
                var group = new GroupedUsers();
                group.AddRange(dict[key]);
                group.Title = key.ToString();
                AlphabeticallyGroupedUsers.Add(group);
            }
        }
示例#3
0
        async Task <ObservableCollection <GroupedUsers> > GetUsersGroupedAsync()
        {
            ObservableCollection <GroupedUsers> groups = new ObservableCollection <GroupedUsers>();

            var query = from item in await SettingsHelper.Instance.op2.GetAllUsers(true, true)
                        group item by item.fullName.Substring(0, 1).ToUpper() into g
                        orderby g.Key
                        select new { GroupName = g.Key, Items = g };

            foreach (var g in query)
            {
                GroupedUsers info = new GroupedUsers();
                info.Key = g.GroupName;
                foreach (var item in g.Items)
                {
                    info.Add(item);
                }

                groups.Add(info);
            }

            return(groups);
        }