Esempio n. 1
0
        public static async Task <Dictionary <string, object> > SaveAttributesAsync(IPathManager pathManager, Site site, List <TableStyle> styleList, NameValueCollection formCollection, List <string> dontAddAttributes)
        {
            var dict = new Dictionary <string, object>();

            if (dontAddAttributes == null)
            {
                dontAddAttributes = new List <string>();
            }

            foreach (var style in styleList)
            {
                if (ListUtils.ContainsIgnoreCase(dontAddAttributes, style.AttributeName))
                {
                    continue;
                }
                //var theValue = GetValueByForm(style, site, formCollection);

                var theValue  = formCollection[style.AttributeName] ?? string.Empty;
                var inputType = style.InputType;
                if (inputType == InputType.TextEditor)
                {
                    theValue = await pathManager.EncodeTextEditorAsync(site, theValue);

                    theValue = UEditorUtils.TranslateToStlElement(theValue);
                }

                if (inputType != InputType.TextEditor && inputType != InputType.Image && inputType != InputType.File && inputType != InputType.Video && !StringUtils.EqualsIgnoreCase(style.AttributeName, nameof(Content.LinkUrl)))
                {
                    theValue = AttackUtils.FilterXss(theValue);
                }

                dict[style.AttributeName] = theValue;

                if (style.IsFormatString)
                {
                    var formatString    = TranslateUtils.ToBool(formCollection[style.AttributeName + "_formatStrong"]);
                    var formatEm        = TranslateUtils.ToBool(formCollection[style.AttributeName + "_formatEM"]);
                    var formatU         = TranslateUtils.ToBool(formCollection[style.AttributeName + "_formatU"]);
                    var formatColor     = formCollection[style.AttributeName + "_formatColor"];
                    var theFormatString = ContentUtility.GetTitleFormatString(formatString, formatEm, formatU, formatColor);

                    dict[GetFormatStringAttributeName(style.AttributeName)] = theFormatString;
                }

                //if (inputType == InputType.Image || inputType == InputType.File || inputType == InputType.Video)
                //{
                //    var attributeName = GetExtendAttributeName(style.AttributeName);
                //    dict[attributeName] = formCollection[attributeName];
                //}
            }

            return(dict);
        }