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();
        }
Пример #2
0
        private static Type ResolveMetadataDefinedRepositoryType(Guid id)
        {
            Type repoType;
            var  repositoryMetadataManager = new RepositoryMetadataManager();
            var  metadataManager           = repositoryMetadataManager.GetRepositoryMetdataByTypeResolverUid(id);

            if (!string.IsNullOrWhiteSpace(metadataManager.CustomAssemblyQualifiedTypeName))
            {
                repoType = Type.GetType(metadataManager.CustomAssemblyQualifiedTypeName);
            }
            else
            {
                repoType = Type.GetType(metadataManager.AssemblyQualifiedTypeName);
            }
            return(repoType);
        }
        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();
        }
Пример #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()
                });
            }
        }
Пример #5
0
        public void SetupDynamicTypes()
        {
            var fullDynamicTypeId = Guid.NewGuid();

            var repositories = new RepositoryMetadataManager();

            repositories.Save(new RepositoryMetdata
            {
                CustomRepositoryName = "Article",
                IsDynamic            = true,
                ApiId = fullDynamicTypeId
            });

            var mgr  = new ContentInterfaceRepository();
            var ext1 = new ContentInterface
            {
                ContentTypeId = fullDynamicTypeId,
                InterfaceName = KnownTypeExtensionNames.CustomFields
            };
            var ext2 = new ContentInterface
            {
                ContentTypeId = fullDynamicTypeId,
                InterfaceName = "SomePluginInfo"
            };

            mgr.Save(ext1);
            mgr.Save(ext2);

            var extension = mgr.GetCustomFieldsTypeExtension(fullDynamicTypeId);

            extension.InterfaceFields.Add(new ChoiceInterfaceField
            {
                PropertyName     = "IsFeatured",
                PropertyTypeName = typeof(bool).FullName
            });

            mgr.Save(extension);

            var repo = RepositoryActivator.ActivateRepository <ISupportsCmsForms>(fullDynamicTypeId);

            repo.Save(new DynamicVersionedContent(fullDynamicTypeId));
            //var drafts = repo.FindContentVersions("", ContentEnvironment.Draft);
            //if (!drafts.Any())
            //    throw new Exception();
        }