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();
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 4
0
        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);
            //}
        }