public static async Task<CohortDisplayObject> GetCohortDisplayObject(CohortService cs, Cohort cohort) { var students = GetStudentsByCohortId(cs, cohort.id); var custom = GetCohortCustomByCohortId(cs, cohort.id); await Task.WhenAll(students, custom); var displayObject = new CohortDisplayObject(); displayObject.cohort = cohort; displayObject.students = from s in students.Result select s.id; displayObject.custom = JsonConvert.DeserializeObject<CohortCustom>(custom.Result); ; return displayObject; }
/// <summary> /// Get all information about a cohort /// </summary> /// <param name="cs"></param> /// <param name="cohort"></param> /// <returns></returns> public static async Task<CohortDisplayObject> GetCohortDisplayObject(CohortService cs, Cohort cohort) { //check to see if the item is already in cache. if so, return the cache item var cache = (CohortDisplayObject)HttpContext.Current.Cache[cohort.id]; if (cache != null) return cache; var students = GetStudentsByCohortId(cs, cohort.id); var custom = GetCohortCustomByCohortId(cs, cohort.id); await Task.WhenAll(students, custom); var displayObject = new CohortDisplayObject(); displayObject.cohort = cohort; displayObject.students = from s in students.Result select s.id; displayObject.custom = JsonConvert.DeserializeObject<CohortCustom>(custom.Result); ; HttpContext.Current.Cache.Insert(cohort.id, displayObject); return displayObject; }