/* public string FranchisesDataString { get; set; } public string TeamsResultsDataString { get; set; } public string TeamsDrillDownDataString { get; set; } */ public async Task<bool> LoadFranchisesDataAsync(string cachedJson = "") { List<FranchiseModel> franchises; if (string.IsNullOrEmpty(cachedJson)) { var dataContext = new DataContext(); var svcResult = string.Empty; svcResult = await dataContext.GetFranchisesAsync(); if (svcResult == null) { return false; } //no results message //FranchisesDataString = svcResult; franchises = JsonConvert.DeserializeObject<List<FranchiseModel>>(svcResult); } else { franchises = JsonConvert.DeserializeObject<List<FranchiseModel>>(cachedJson); } var groupedItems = from franchise in franchises orderby franchise.Location select new TeamsFranchisesViewModel { FirstLetter = franchise.Location.Substring(0, 1), LineOne = franchise.GetDisplayName(), LineTwo = franchise.GetDetail(), TeamId = franchise.RetroId, Location = franchise.Location } into list group list by list.FirstLetter into listByYear select new KeyedList<string, TeamsFranchisesViewModel>(listByYear); if (FranchiseList.Count <= 0) { foreach (var franchise in franchises) { FranchiseList.Add(new TeamsFranchisesViewModel() { LineOne = franchise.GetDisplayName(), LineTwo = franchise.GetDetail(), TeamId = franchise.RetroId, Location = franchise.Location }); } } FranchiseItems.Clear(); foreach (var viewModelItem in groupedItems) { FranchiseItems.Add(viewModelItem); } return true; }