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); }
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); } }
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); }