public ActionResult Index() { this.TempData[CachedSurvey] = null; IEnumerable <SurveyModel> surveysForTenant = this.surveyStore .GetSurveysByTenant(this.TenantName) .Select(s => new SurveyModel(s)) .ToList(); if (surveysForTenant.Count() > 0) { string assemblyFile, typeNamespace; if (this.HasModelExtensionAssembly(this.TenantName, out assemblyFile, out typeNamespace)) { var extensionType = ExtensibilityTypeResolver.GetTypeFrom(assemblyFile, typeNamespace, typeof(Survey)); var modelExtensions = this.surveyStore.GetSurveyExtensionsByTenant(this.TenantName, extensionType); foreach (var modelExtension in modelExtensions) { var survey = surveysForTenant.FirstOrDefault(s => modelExtension.IsChildOf(this.surveyStore.GetStorageKeyFor(s))); if (survey != null) { survey.Extensions = ExtensibilityTypeMapper.GetModelExtensionProperties(modelExtension).ToList(); } } } } var model = this.CreateTenantPageViewData(surveysForTenant); model.Title = "My Surveys"; return(this.View(model)); }
public ActionResult New() { var cachedSurvey = (SurveyModel)this.TempData[CachedSurvey]; if (cachedSurvey == null) { cachedSurvey = new SurveyModel(); // First time to the page string assemblyFile, typeNamespace; if (this.HasModelExtensionAssembly(this.TenantName, out assemblyFile, out typeNamespace)) { var modelExtension = ExtensibilityTypeResolver.GetInstanceFrom(assemblyFile, typeNamespace, typeof(Survey)); cachedSurvey.Extensions = ExtensibilityTypeMapper.GetModelExtensionProperties(modelExtension).ToList(); } } var model = this.CreateTenantPageViewData(cachedSurvey); model.Title = "New Survey"; this.TempData[CachedSurvey] = cachedSurvey; return(this.View(model)); }