Example #1
0
        private void InitializeColumnList()
        {
            ColumnList = new List <ColumnHeadData>();

            var rootElement = Definition.Element("Table");

            if (null == rootElement)
            {
                throw new Exception("Definition doesn't contains the Table element");
            }

            var firstRow = DataTable.Rows[0];

            var columnDefinitionElements = rootElement.Elements();
            var enumerator = columnDefinitionElements.GetEnumerator();

            while (enumerator.MoveNext())
            {
                var element        = enumerator.Current;
                var columnHeadData = new ColumnHeadData
                {
                    ExcelID         = element.Attribute("ExcelID").Value,
                    TxtColumnText   = element.Attribute("TxtColumnText").Value,
                    TxtTextPosition = int.Parse(element.Attribute("TxtTextPosition").Value),
                    ColumnPosition  = Array.IndexOf(firstRow.ItemArray, element.Attribute("ExcelID").Value.ToString())
                };

                bool groupKey = false;
                if (null != element.Attribute("GroupKey"))
                {
                    bool.TryParse(element.Attribute("GroupKey").Value, out groupKey);
                }
                columnHeadData.GroupKey = groupKey;
                ColumnList.Add(columnHeadData);

                var cellFormatAttribute = element.Attribute("CellFormat");
                if (null != cellFormatAttribute && !string.IsNullOrEmpty(cellFormatAttribute.Value))
                {
                    columnHeadData.CellFormat = cellFormatAttribute.Value;
                }

                columnHeadData.CustomAttributes = new Dictionary <string, string>();
                var customAttributes = element.Attributes().Where(attr => !attr.Name.LocalName.Equals("ExcelID") && !attr.Name.LocalName.Equals("TxtColumnText") && !attr.Name.LocalName.Equals("TxtTextPosition") && !attr.Name.LocalName.Equals("GroupKey") && !attr.Name.LocalName.Equals("CellFormat"));
                foreach (var customAttr in customAttributes)
                {
                    columnHeadData.CustomAttributes.Add(customAttr.Name.LocalName, customAttr.Value.ToString());
                }

                IdentifyOrderableColumn(element, columnHeadData);
            }
            ColumnList = ColumnList.OrderBy(c => c.TxtTextPosition).ToList();
        }
Example #2
0
        protected string ApplyFormatToValue(ColumnHeadData columnHeadData, string cellValue)
        {
            var cellFormat = columnHeadData.CellFormat;

            if (string.IsNullOrEmpty(cellFormat))
            {
                return(cellValue);
            }

            cellFormattersToValueDictionary.TryGetValue(cellFormat, out ICellValueFormatter cellFormatter);
            if (null == cellFormatter)
            {
                return(cellValue);
            }

            return(cellFormatter.ApplyFormatToValue(cellValue));
        }
Example #3
0
        private void IdentifyOrderableColumn(XElement column, ColumnHeadData columnHeadData)
        {
            if (null != orderableColumnHeadData)
            {
                return;
            }

            var orderableAttribute = column.Attribute("Orderable");

            if (null != orderableAttribute && !string.IsNullOrEmpty(orderableAttribute.Value))
            {
                columnHeadData.Orderable = new OrderableAttribute
                {
                    Type = orderableAttribute.Value
                };
                orderableColumnHeadData = columnHeadData;
            }
        }
Example #4
0
 protected void IdentifyOrderableColumn()
 {
     orderableColumnHeadData = columnList.FirstOrDefault(c => null != c.Orderable);
 }