protected override void OnInit(EventArgs e) { base.OnInit(e); var formIdRaw = Request["formId"]; var formTypeRaw = Request["formType"]; ContentTypePicker.Visible = string.IsNullOrEmpty(formTypeRaw) && string.IsNullOrEmpty(formIdRaw); if (ContentTypePicker.Visible) { ContentTypeDropDownList.Items.Add(new ListItem(string.Empty, string.Empty)); var all = new RepositoryMetadataManager().Find(); foreach (var contentType in all) { var text = RepositoryTypeResolver.ResolveTypeByApiId(contentType.ApiId).Name; ContentTypeDropDownList.Items.Add(new ListItem(text, contentType.ApiId.ToString())); } SelectContentTypeButton.Click += (sender, args) => { //todo: make this work regardless of the querystring already present. var url = HttpContext.Current.Request.RawUrl + "&formType=" + ContentTypeDropDownList.SelectedValue; HttpContext.Current.Response.Redirect(url); }; return; } CmsForm cmsForm; if (string.IsNullOrEmpty(formIdRaw)) { cmsForm = new CmsForm { ContentId = Guid.NewGuid(), RepositoryUid = new Guid(formTypeRaw) } } ; else { var formRepository = new FormRepository(); cmsForm = formRepository.FindContentVersions(By.ContentId(new Guid(formIdRaw)), ContentEnvironment.Draft).Result.Single(); } //var mgr = new EditingContextManager(); //var ec = mgr.GetOrCreateEditingContext(cmsForm); //CmsPageLayoutEngine.ActivateAndPlaceContent(RuntimePlaceHolder, ec.AllContent,PageRenderMode.PageDesigner); //RuntimePlaceHolder.Controls.AddAt(0, new DropTarget(RuntimePlaceHolder, DropTargetDirective.Begin)); //RuntimePlaceHolder.Controls.Add(new DropTarget(RuntimePlaceHolder, DropTargetDirective.End)); //this.Page.Init += (x,y) => this.Page.EnableDesignerDependencies(); }
public ContentListData GetContentListData(Guid repositoryApiId, Guid listId, string filter) { var definition = new ContentListDefinitionRepository().FindContentVersions(By.ContentId(listId)).Result .Single(); var repo = RepositoryActivator.ActivateRepository(repositoryApiId); List <WarpCoreEntity> allItems = null; var entityType = RepositoryTypeResolver.ResolveTypeByApiId(repositoryApiId); var tokens = new BooleanExpressionParser().ReadBooleanExpressionTokens(filter); var expression = new BooleanExpressionTokenReader().CreateBooleanExpressionFromTokens(tokens); if (repo is IUnversionedContentRepository unversionedRepo) { allItems = unversionedRepo.FindContent(expression) .Cast <WarpCoreEntity>() .ToList(); } if (repo is IVersionedContentRepository versionedRepo) { allItems = versionedRepo.FindContentVersions(expression, ContentEnvironment.Draft) .Cast <WarpCoreEntity>() .ToList(); } if (allItems == null) { throw new Exception(); } var propertyNameLookup = definition.Fields.ToLookup(x => x.PropertyName); var wrapper = new ContentListData(); foreach (var item in allItems) { var dict = item.GetPropertyValues(x => propertyNameLookup.Contains(x.Name)); dict[nameof(item.ContentId)] = item.ContentId.ToString(); wrapper.Items.Add(dict); } return(wrapper); }
protected override void OnInit(EventArgs e) { base.OnInit(e); Page.RegisterRequiresControlState(this); PropertyTypeDropDownList.Items.Add(ContentFieldTopLevelType.Text.ToString()); PropertyTypeDropDownList.Items.Add(ContentFieldTopLevelType.Choice.ToString()); var mgr = new RepositoryMetadataManager(); var allRepos = mgr.Find(); foreach (var repo in allRepos) { var repoType = RepositoryTypeResolver.ResolveTypeByApiId(repo.ApiId); var repoName = repo.CustomRepositoryName; if (string.IsNullOrWhiteSpace(repoName)) { repoName = repoType.GetCustomAttribute <DisplayNameAttribute>()?.DisplayName; } if (string.IsNullOrWhiteSpace(repoName)) { repoName = repoType.Name; } RepositoryDataSourceDropDownList.Items.Add(new ListItem(repoName, repo.ApiId.ToString())); } if (Page.IsPostBack) { return; } var interfaceId = Request["wc-interface"]; if (!string.IsNullOrWhiteSpace(interfaceId)) { var dynamicPropertyViewModels = GetAllDynamicFields(new Guid(interfaceId)); _controlState.Properties = dynamicPropertyViewModels; } FinishInit(); }
public IEnumerable <ListOption> GetOptions(ConfiguratorBuildArguments buildArguments, IDictionary <string, string> model) { var mgr = new RepositoryMetadataManager(); foreach (var repo in mgr.Find()) { var t = RepositoryTypeResolver.ResolveTypeByApiId(repo.ApiId); var displayName = repo.CustomRepositoryName ?? t.GetDisplayName(); yield return(new ListOption { Text = displayName, Value = repo.ApiId.ToString() }); } }
private void Reload() { var repoType = RepositoryTypeResolver.ResolveTypeByApiId(RepositoryId); var repo = (IVersionedContentRepository)Activator.CreateInstance(repoType); var allDrafts = repo.FindContentVersions(BooleanExpression.None, ContentEnvironment.Draft).ToList(); List <object> ds = new List <object>(); var fields = Config.Fields; if (!Config.Fields.Any()) { Config.Fields = new List <ContentListField>(); var titleField = new ContentListField { Header = "Title", Template = Templating.CreateToStringExpression(nameof(WarpCoreEntity.Title)) }; Config.Fields.Add(titleField); } foreach (var d in allDrafts) { var row = new List <string>(); var dict1 = d.GetPropertyValues(x => true); foreach (var f in fields) { var val = Templating.Interpolate(f.Template, dict1); row.Add(val); } ds.Add(row); } var fieldConfigurations = new List <object>(); foreach (var f in fields) { fieldConfigurations.Add(new { title = f.Header }); } var js = new JavaScriptSerializer(); Data.Value = js.Serialize(ds); Fields.Value = js.Serialize(fieldConfigurations); DataBind(); //this.ContentListDataGrid.DataSource = ds; //this.ContentListDataGrid.AutoGenerateColumns = false; //foreach (var field in fields) //{ // this.ContentListDataGrid.Columns.Add(new BoundColumn { DataField = field, HeaderText = field }); //} //this.ContentListDataGrid.DataBind(); //var configFieldLookup = Configuration.Fields // .Select(x => x.PropertyName) // .ToDictionary(x => x, x => x); //foreach (var draft in allDrafts) //{ // var li = new ContentListItem // { // Values = draft.GetPropertyValues(x => configFieldLookup.ContainsKey(x.Name)) // }; // _controlState.Items.Add(li); //} }