public virtual void AddAttributeMetadata(ICmsEntityEditingMetadataContainer container, EntityReference entity, string attributeLogicalName, string attributeDisplayName, string portalName = null)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            if (entity == null)
            {
                throw new ArgumentNullException("entity");
            }

            var portal      = PortalCrmConfigurationManager.CreatePortalContext(portalName ?? PortalName);
            var servicePath = CmsEntityAttributeRouteHandler.GetAppRelativePath(portal.Website.Id, entity, attributeLogicalName);

            container.AddLabel(attributeDisplayName);
            container.AddAttribute("data-xrm-base", VirtualPathUtility.ToAbsolute("~/xrm-adx/"));
            container.AddAttribute("data-editable-url", VirtualPathUtility.ToAbsolute(servicePath));
            container.AddAttribute("data-editable-title", attributeDisplayName ?? attributeLogicalName);

            AddEntityTemplateServiceReference(container, portal, entity);
            AddEntityTemplateRenderServiceReference(container, portal, entity);
            AddFileBrowserServiceReference(container, portal, FileBrowserDirectoryEntityNames.Contains(entity.LogicalName));
        }
        public void AddEntityMetadata(ICmsEntityEditingMetadataContainer container, string entityLogicalName, string portalName = null, string entityDisplayName = null, JObject initialValues = null)
        {
            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            var portal  = PortalCrmConfigurationManager.CreatePortalContext(portalName ?? PortalName);
            var website = portal.Website.ToEntityReference();

            container.AddLabel(entityDisplayName);
            container.AddAttribute("data-xrm-base", VirtualPathUtility.ToAbsolute("~/xrm-adx/"));
            container.AddAttribute("data-logicalname", entityLogicalName);

            AddFileBrowserServiceReference(container, portal, FileBrowserDirectoryEntityNames.Contains(entityLogicalName));
            AddEntityTemplateServiceReference(container, portal, website, entityLogicalName);
            AddEntityTemplateRenderServiceReference(container, portal, website, entityLogicalName);

            if (initialValues != null)
            {
                container.AddAttribute("data-create-initial", initialValues.ToString(Formatting.None));
            }

            if (entityLogicalName == "adx_contentsnippet")
            {
                container.AddAttribute("data-create-url", VirtualPathUtility.ToAbsolute(CmsEntityRelationshipRouteHandler.GetAppRelativePath(website.Id, website, new Relationship("adx_website_contentsnippet"))));
                container.AddAttribute("data-create-attribute", "adx_value");
                container.AddAttribute("data-editable-uritemplate", VirtualPathUtility.ToAbsolute(CmsEntityAttributeRouteHandler.GetAppRelativePathTemplate(website.Id, entityLogicalName, "Id", "adx_value")));
            }
        }