public static async Task <nAssembla.Cache.SpaceDataCache> GetSpaceDataCache(string spaceId) { var dataCache = new nAssembla.Cache.SpaceDataCache(); var space = SpaceProxy.GetAsync(spaceId, true); var components = TicketComponentProxy.GetListAsync(true); var fields = CustomFieldProxy.GetListAsync(true); var custReports = CustomReportProxy.GetListAsync(true); var statuses = CustomStatusProxy.GetListAsync(true); var milestones = MilestoneProxy.GetListAsync(true); var tools = SpaceToolProxy.GetListAsync(true); var users = UserProxy.GetListAsync(true); var userRoles = UserRoleProxy.GetListAsync(true); #if NET4_5 await Task.WhenAll(space, components, fields, statuses, milestones, tools, users, custReports, userRoles); #else await TaskEx.WhenAll(space, components, fields, statuses, milestones, tools, users, custReports, userRoles); #endif dataCache.Space = space.Result; dataCache.Components = components.Result; dataCache.CustomFields = fields.Result; dataCache.CustomStatuses = statuses.Result; dataCache.Milestones = milestones.Result; dataCache.Tools = tools.Result; dataCache.Users = users.Result; dataCache.CustomReports = custReports.Result; dataCache.UserRoles = userRoles.Result; return(dataCache); }