Example #1
0
        /// <summary>
        /// Called by the framework when the component needs to be rendered as HTML.
        /// </summary>
        /// <param name="model">The model being rendered by the component.</param>
        /// <returns>The component rendered as HTML.</returns>
        public async Task <string> RenderAsync(SerializableList <SkinDefinition> model)
        {
            HtmlBuilder hb = new HtmlBuilder();

            int        index      = 0;
            SkinAccess skinAccess = new SkinAccess();

            hb.Append($@"
<div id='{ControlId}' class='yt_moduleskins t_edit'>
    {await HtmlHelper.ForEditComponentAsync(Container, PropertyName, null, "Hidden", HtmlAttributes: new { __NoTemplate = true, @class = Forms.CssFormNoSubmit })}");

            foreach (SkinCollectionInfo skinDef in (from s in skinAccess.GetAllSkinCollections() orderby s.CollectionDescription select s).ToList())
            {
                hb.Append($@"
    <div class='t_collection'>");

                SkinDefinition sd       = (from s in model where s.Collection == skinDef.CollectionName select s).FirstOrDefault();
                string         fileName = sd?.FileName;

                ModuleSkinUI ms = new ModuleSkinUI {
                    Collection              = skinDef.CollectionName,
                    FileName                = fileName,
                    FileNameCaption         = skinDef.CollectionDescription,
                    FileName_ModuleSkinList = skinAccess.GetAllModuleSkins(skinDef.CollectionName),
                };

                using (Manager.StartNestedComponent($@"{FieldName}[{index}]")) {
                    hb.Append(await HtmlHelper.ForDisplayAsync(ms, nameof(ms.Collection)));
                    hb.Append(await HtmlHelper.ForLabelAsync(ms, nameof(ms.FileName)));
                    hb.Append(await HtmlHelper.ForEditAsync(ms, nameof(ms.FileName)));
                    hb.Append(ValidationMessage(FieldNamePrefix, nameof(ms.FileName)));
                }

                index++;
                hb.Append($@"
    </div>");
            }

            hb.Append($@"
</div>");
            //Manager.ScriptManager.AddLast($@"new YetaWF_ComponentsHTML.ModuleSkinsEditComponent('{ControlId}');");

            return(hb.ToString());
        }
Example #2
0
        /// <summary>
        /// Called by the framework when the component needs to be rendered as HTML.
        /// </summary>
        /// <param name="model">The model being rendered by the component.</param>
        /// <returns>The component rendered as HTML.</returns>
        public async Task <string> RenderAsync(SerializableList <SkinDefinition> model)
        {
            HtmlBuilder hb = new HtmlBuilder();

            int        index      = 0;
            SkinAccess skinAccess = new SkinAccess();

            hb.Append($@"
<div id='{DivId}' class='yt_moduleskins t_display'>");

            foreach (SkinCollectionInfo skinDef in (from s in skinAccess.GetAllSkinCollections() orderby s.CollectionDescription select s).ToList())
            {
                hb.Append($@"
    <div class='t_collection'>");

                SkinDefinition sd       = (from s in model where s.Collection == skinDef.CollectionName select s).FirstOrDefault();
                string         fileName = sd?.FileName;

                ModuleSkinUI ms = new ModuleSkinUI {
                    FileName                = fileName,
                    FileNameCaption         = skinDef.CollectionDescription,
                    FileName_ModuleSkinList = skinAccess.GetAllModuleSkins(skinDef.CollectionName),
                };

                using (Manager.StartNestedComponent($@"{FieldName}[{index}]")) {
                    hb.Append(await HtmlHelper.ForLabelAsync(ms, nameof(ms.FileName)));
                    hb.Append(await HtmlHelper.ForDisplayAsync(ms, nameof(ms.FileName)));
                }
                index++;
                hb.Append($@"
    </div>");
            }

            hb.Append($@"
</div>");

            return(hb.ToString());
        }