Пример #1
0
        public static HtmlTag GenerateWrappedTagFor(TagInfo tagInfo)
        {
            var    a       = TagFactory.GenerateTagFor(tagInfo).GetTag();
            var    wrapper = new HtmlTag("div");
            string res;
            var    tryGetValue = tagInfo.Attributes.TryGetValue("class", out res);

            if (tryGetValue)
            {
                wrapper.AddClasses(res);
            }

            wrapper.Append(a);

            return(wrapper);
        }
Пример #2
0
        public static HtmlString CreateForm(ExcelPackage pck)
        {
            ExcelWorksheet worksheet            = pck.Workbook.Worksheets["ConfigurationSetup"];
            ExcelWorksheet worksheetListDetails = pck.Workbook.Worksheets["Lists"];
            var            formBuilder          = new FormBuilder()
                                                  .SetName("my-form")
                                                  .SetAction("/index")
                                                  .SetMethod("post");

            List <TagInfo> tagInfoExcel = new List <TagInfo>();
            Dictionary <string, string> attributes;
            List <string> listValues;
            int           itemIdIndex          = -1;
            int           nameCaptionIndex     = -1;
            int           fieldTypeIndex       = -1;
            int           listIdIndex          = -1;
            int           fieldListIndex       = -1;
            int           defaultValueIndex    = -1;
            int           requiredIndex        = -1;
            int           ratingIndicatorIndex = -1;
            int           fieldSizeIndex       = -1;
            int           classesIndex         = -1;
            int           cssIndex             = -1;
            int           variableName         = -1;
            int           helpingFunc          = -1;

            for (int i = 1; worksheet.Cells[1, i].Value != null; i++)
            {
                var metaData = worksheet.Cells[1, i].Value.ToString();
                switch (metaData)
                {
                case "FieldId": itemIdIndex = i; break;

                case "NameCaption": nameCaptionIndex = i; break;

                case "FieldType": fieldTypeIndex = i; break;

                case "ListId": listIdIndex = i; break;

                case "FieldList": fieldListIndex = i; break;

                case "Default": defaultValueIndex = i; break;

                case "Required": requiredIndex = i; break;

                case "RatingIndicator": ratingIndicatorIndex = i; break;

                case "FieldSize": fieldSizeIndex = i; break;

                case "CSSClass": classesIndex = i; break;

                case "CSSStyle": cssIndex = i; break;

                case "VariableName": variableName = i; break;

                case "HelpingFunc": helpingFunc = i; break;

                case "FuncOutput": helperFunctions = i; break;

                case "MidResult": procedures = i; break;

                default: continue;
                }
            }

            for (int col = 2; worksheet.Cells[col, 1].Value != null; col++)
            {
                if (!worksheet.Cells[col, 1].Value.ToString().Equals("empty"))
                {
                    attributes = new Dictionary <string, string>();
                    listValues = new List <string>();

                    if (worksheet.Cells[col, nameCaptionIndex].Value != null)
                    {
                        attributes.Add("name", worksheet.Cells[col, nameCaptionIndex].Value.ToString());
                    }

                    if (worksheet.Cells[col, requiredIndex].Value.ToString() == "1")
                    {
                        attributes.Add("required", "true");
                    }

                    if (worksheet.Cells[col, fieldSizeIndex].Value != null)
                    {
                        attributes.Add("field_size", worksheet.Cells[col, fieldSizeIndex].Value.ToString());
                    }

                    if (worksheet.Cells[col, classesIndex].Value != null)
                    {
                        attributes.Add("class", worksheet.Cells[col, classesIndex].Value.ToString());
                    }
                    if (worksheet.Cells[col, cssIndex].Value != null)
                    {
                        attributes.Add("css", worksheet.Cells[col, cssIndex].Value.ToString());
                    }

                    if (worksheet.Cells[col, defaultValueIndex].Value.ToString() != "n/a")
                    {
                        attributes.Add("default", worksheet.Cells[col, defaultValueIndex].Value.ToString());
                    }

                    var listId = worksheet.Cells[col, listIdIndex].Value;
                    var type   = worksheet.Cells[col, fieldTypeIndex].Value.ToString();

                    if (listId != null && !listId.ToString().Equals("0") && type.Equals("dropdown"))
                    {
                        for (int column = 2; worksheetListDetails.Cells[column, 1].Value != null; column++)
                        {
                            var listIdDetails = worksheetListDetails.Cells[column, 1].Value;
                            if (listIdDetails != null && listIdDetails.Equals(listId))
                            {
                                var listValue = worksheetListDetails.Cells[column, 3].Value.ToString();
                                listValues.Add(listValue);
                            }
                        }
                    }

                    TagInfo tagInfo =
                        new TagInfo
                    {
                        Id         = worksheet.Cells[col, itemIdIndex].Value.ToString(),
                        Name       = worksheet.Cells[col, nameCaptionIndex].Value.ToString(),
                        Type       = worksheet.Cells[col, fieldTypeIndex].Value.ToString(),
                        Attributes = attributes,
                        ListItems  = listValues,
                    };

                    tagInfoExcel.Add(tagInfo);
                }
            }

            foreach (var excelRow in tagInfoExcel)
            {
                var wrapper = TagFactory.GenerateWrappedTagFor(excelRow);
                formBuilder.AddElement(wrapper);
            }
            var result = formBuilder.ToHtmlString();

            return(new HtmlString(result));
        }