Пример #1
0
        private JsonTable BuidJsonTable(DataTable table, IEnumerable <REPORTCOLUMNDEFINITION> columns)
        {
            var jTable = new JsonTable();

            foreach (var column in columns)
            {
                jTable.ColumTemplate.Add(new JsonColumn {
                    ColumnName = column.COLUMN_NAME, ColumnType = column.COLUMN_TYPE, Name = column.DisplayName, Sort = ""
                });
            }

            foreach (DataRow row in table.Rows)
            {
                var currentRow = new Dictionary <string, string>();
                foreach (REPORTCOLUMNDEFINITION column in columns)
                {
                    if (!currentRow.Keys.Contains(column.COLUMN_NAME))
                    {
                        currentRow.Add(column.COLUMN_NAME, UIGenerator.FormatCellValue(row, column));
                    }
                }
                currentRow.Add("AssetId", row["AssetId"].ToString());
                currentRow.Add("Category", row["CATEGORYTYPE"].ToString());
                jTable.RowData.Add(currentRow);
            }
            return(jTable);
        }
Пример #2
0
        public JsonTable BuildJsonTable(DataTable table, IEnumerable <REPORTCOLUMNDEFINITION> columns, int total, int currentPage, int pageSize)
        {
            var jTable = new JsonTable();

            jTable.CurrentPage = currentPage;
            jTable.PageSize    = pageSize;
            jTable.Total       = total;
            foreach (var column in columns)
            {
                if (column.COLUMN_NAME == "KeyWord")
                {
                    continue;
                }
                jTable.ColumTemplate.Add(new JsonColumn {
                    ColumnName = column.COLUMN_NAME, ColumnType = column.COLUMN_TYPE, Name = column.DisplayName
                });
            }
            foreach (DataRow row in table.Rows)
            {
                var currentRow = new Dictionary <string, string>();
                foreach (var column in columns)
                {
                    if (!currentRow.Keys.Contains(column.COLUMN_NAME))
                    {
                        currentRow.Add(column.COLUMN_NAME, UIGenerator.FormatCellValue(row, column));
                    }
                }
                jTable.RowData.Add(currentRow);
            }
            return(jTable);
        }
Пример #3
0
        public void FormatCellValueTest()
        {
            object dataValue     = new DateTime(2014, 5, 18); // TODO: Initialize to an appropriate value
            string type          = "datetime";                // TODO: Initialize to an appropriate value
            string displayFormat = "yyyy-MM";                 // TODO: Initialize to an appropriate value
            string expected      = "2014-05";                 // TODO: Initialize to an appropriate value
            string actual;

            actual = UIGenerator.FormatCellValue(dataValue, type, displayFormat);
            Assert.AreEqual(expected, actual);
        }
Пример #4
0
        public string GDTFormatCellValue(DataRow row, COLUMNDEFINITION column)
        {
            var retValue = string.Empty;

            if (row.Table.Columns.Contains(column.ColumnDisplayName))
            {
                var dataValue = row[column.ColumnDisplayName];

                retValue = UIGenerator.FormatCellValue(dataValue, column.COLUMN_TYPE, column.DISPLAY_FORMAT);
            }
            return(retValue);
        }
Пример #5
0
        private List <Dictionary <string, string> > ConvertToDicForOutput(DateTime start, DateTime end, string code, out string reDate)
        {
            var dt   = Respository.GetSdLocalRefineryDailyOutputTable(start, end, code, out reDate);
            var data = new List <Dictionary <string, string> >();

            foreach (DataRow row in dt.Rows)
            {
                var currentRow = new Dictionary <string, string>
                {
                    { "ReDate", UIGenerator.FormatCellValue(row["ReDate"], "datetime") },
                    { "ProcessCapacity", UIGenerator.FormatCellValue(row["ProcessCapacity"], "decimal") },
                    { "Gasoline", UIGenerator.FormatCellValue(row["Gasoline"], "decimal") },
                    { "Diesel", UIGenerator.FormatCellValue(row["Diesel"], "decimal") }
                };
                data.Add(currentRow);
            }
            return(data);
        }
Пример #6
0
        private JsonTable BuildBondIssuMaturesTopTable(DataTable table)
        {
            var jTable  = new JsonTable();
            var headers = GetIssuMaturesTopTableHeaders();
            var columns = GetIssuMaturesTopTableColumns();

            for (int i = 0; i < headers.Length; i++)
            {
                jTable.ColumTemplate.Add(new JsonColumn {
                    ColumnName = columns[i], Name = headers[i]
                });
            }
            var typeName    = "TypeCn";
            var subTypeName = "SubTypeCn";

            if (CultureHelper.IsEnglishCulture())
            {
                typeName    = "TypeEn";
                subTypeName = "SubTypeEn";
            }
            foreach (DataRow row in table.Rows)
            {
                var currentRow = new Dictionary <string, string>
                {
                    { "TypeValue", row["Type"].ToString() },
                    { "Type", row[typeName].ToString() },
                    { "SubType", row[subTypeName].ToString() },
                    { "SubTypeValue", row["SubType"].ToString() },
                    { "isParent", row["isParent"].ToString() },
                    { "EndBalance", UIGenerator.FormatCellValue(row["EndBalance"], "decimal") },
                    { "InitialBalance", UIGenerator.FormatCellValue(row["InitialBalance"], "decimal") },
                    { "Issues", row["Issues"].ToString() },
                    { "IssuesPercent", UIGenerator.FormatCellValue(row["IssuesPercent"], "decimal") },
                    { "IssuesAmount", UIGenerator.FormatCellValue(row["IssuesAmount"], "decimal") },
                    { "IssuesAmountPercent", UIGenerator.FormatCellValue(row["IssuesAmountPercent"], "decimal") },
                    { "MaturityBonds", row["MaturityBonds"].ToString() },
                    { "MaturityAmount", UIGenerator.FormatCellValue(row["MaturityAmount"], "decimal") },
                    { "EndIssues", row["EndIssues"].ToString() },
                    { "EndIssuesPercent", UIGenerator.FormatCellValue(row["EndIssuesPercent"], "decimal") }
                };
                jTable.RowData.Add(currentRow);
            }
            return(jTable);
        }
Пример #7
0
        private List <Dictionary <string, string> > ConvertToDicForDevice(bool isEnglish, string code, string reDate)
        {
            var data = new List <Dictionary <string, string> >();

            if (string.IsNullOrEmpty(reDate))
            {
                return(data);
            }

            var dt = Respository.GetSdLocalRefineryDeviceInfoTable(isEnglish, code, reDate);

            foreach (DataRow row in dt.Rows)
            {
                var currentRow = new Dictionary <string, string>
                {
                    { "Device", UIGenerator.FormatCellValue(row["Device"], "") },
                    { "YieldByTon", UIGenerator.FormatCellValue(row["YieldByTon"], "decimal") },
                    { "YieldByBarrel", UIGenerator.FormatCellValue(row["YieldByBarrel"], "decimal") }
                };
                data.Add(currentRow);
            }
            return(data);
        }
Пример #8
0
        public JsonTable buildJsonTable(BaseReport report)
        {
            var table = new JsonTable();

            switch (report.GetType().Name)
            {
            case "StandardReport":
                var data = (StandardReport)report;
                if (data.ResultDataTable.Rows.Count > 0)
                {
                    table.ReportDate = ((DateTime)data.ResultDataTable.Rows[0]["REDATE"]).ToString("yyyy-MM");
                }

                foreach (var column in data.Columns)
                {
                    table.ColumTemplate.Add(new JsonColumn()
                    {
                        ColumnName  = column.ColumnName.ToLower(),
                        ColumnStyle = column.ColumnStyle,
                        ColumnType  = column.ColumnType,
                        Name        = column.Culture == "zh-CN" ? column.ColumnHeaderCN : column.ColumnHeaderEN
                    });
                }

                table.ExtraHeaders = new List <JsonExtraColumn>();
                foreach (var extraHeader in data.ExtraHeaderCollection)
                {
                    table.ExtraHeaders.Add(new JsonExtraColumn()
                    {
                        Name        = extraHeader.Culture == "zh-CN" ? extraHeader.HeaderTextCN : extraHeader.HeaderTextEN,
                        ColumnStyle = extraHeader.HeaderStyle,
                        ColSpan     = extraHeader.HeaderColumnSpan,
                        HeaderLevel = extraHeader.HeaderLevel
                    });
                }

                table.RowData = new List <Dictionary <string, string> >();

                foreach (DataRow row in data.ResultDataTable.Rows)
                {
                    var currentRow = new Dictionary <string, string>();

                    foreach (var column in data.Columns)
                    {
                        if (!currentRow.Keys.Contains(column.ColumnName))
                        {
                            currentRow.Add(column.ColumnName.ToLower(), UIGenerator.FormatCellValue(row, column));
                        }
                    }
                    if (row.Table.Columns.Contains("id"))
                    {
                        currentRow.Add("id", row["id"].ToString());
                    }
                    if (row.Table.Columns.Contains("last_update"))
                    {
                        currentRow.Add("last_update", row["last_update"].ToString());
                    }
                    if (row.Table.Columns.Contains("row_index"))
                    {
                        currentRow.Add("row_index", row["row_index"].ToString());
                    }
                    if (row.Table.Columns.Contains("chart_source"))
                    {
                        currentRow.Add("chart_source", row["chart_source"].ToString());
                    }
                    if (row.Table.Columns.Contains("row_level"))
                    {
                        currentRow.Add("row_level", row["row_level"].ToString());
                    }

                    table.RowData.Add(currentRow);
                }

                break;
            }
            return(table);
        }
Пример #9
0
        public JsonTable BuidJsonTable(DataTable table, IEnumerable <REPORTCOLUMNDEFINITION> columns, int total = 0, int currentPage = 0, int pageSize = 0)
        {
            var jTable = new JsonTable();

            jTable.CurrentPage = currentPage;
            jTable.PageSize    = pageSize;
            jTable.Total       = total;
            foreach (var column in columns)
            {
                jTable.ColumTemplate.Add(new JsonColumn {
                    ColumnName = column.COLUMN_NAME, ColumnType = column.COLUMN_TYPE, Name = column.DisplayName, ColumnStyle = column.COLUMN_STYLE ?? ""
                });
            }
            foreach (DataRow row in table.Rows)
            {
                var currentRow = new Dictionary <string, string>();
                foreach (REPORTCOLUMNDEFINITION column in columns)
                {
                    if (!currentRow.Keys.Contains(column.COLUMN_NAME))
                    {
                        currentRow.Add(column.COLUMN_NAME, column.COLUMN_STYLE != "" && row[column.COLUMN_NAME].ToString().Length > 200 ? (row[column.COLUMN_NAME].ToString().Substring(0, 200) + "...") : UIGenerator.FormatCellValue(row, column));
                    }
                }
                if (!columns.Any(x => x.COLUMN_NAME == "Code"))
                {
                    currentRow.Add("Code", row["Code"].ToString());
                }
                if (!columns.Any(x => x.COLUMN_NAME == "AssetId"))
                {
                    currentRow.Add("AssetId", row["AssetId"].ToString());
                }
                jTable.RowData.Add(currentRow);
            }
            return(jTable);
        }
Пример #10
0
        private List <Dictionary <string, string> > ConvertToRowData(IEnumerable <IssuerFundamental> issuerFundamental, string fundamentalType, string reportType)
        {
            //PID = parent id, IP = is parent id, 0 or 1,IL= indent level , 0, 1, 2, CR= chart row
            List <Dictionary <string, string> > rowData = new List <Dictionary <string, string> >();
            var fieldMapping = _repository.GetFundamentalFiledMapping(fundamentalType);

            PropertyInfo[] properties = typeof(IssuerFundamental).GetProperties();
            var            startYear  = issuerFundamental.Min(f => f.EndDate).Year;
            string         chartRow   = "";

            if (fundamentalType == "tabb")
            {
                chartRow = "Field60";
            }
            else if (fundamentalType == "tacb")
            {
                chartRow = "Field62";
            }
            else if (fundamentalType == "tapb")
            {
                chartRow = "Field50";
            }

            foreach (PropertyInfo p in properties)
            {
                //fields that needn't displaying
                var fieldName = CultureHelper.IsEnglishCulture() ?
                                fieldMapping.Where(f => f.FIELD_NAME == p.Name && f.FUNDAMENATAL_TYPE == fundamentalType).Select(f => f.ENGLISH_NAME).FirstOrDefault()
                                : fieldMapping.Where(f => f.FIELD_NAME == p.Name && f.FUNDAMENATAL_TYPE == fundamentalType).Select(f => f.CHINESE_NAME).FirstOrDefault();

                if (string.IsNullOrEmpty(fieldName))
                {
                    continue;
                }

                var indentLevel = fieldMapping.Where(f => f.FIELD_NAME == p.Name && f.FUNDAMENATAL_TYPE == fundamentalType).Select(f => f.INDENT_LEVEL).FirstOrDefault() ?? 0;
                var is_Parent   = fieldMapping.Where(f => f.FIELD_NAME == p.Name && f.FUNDAMENATAL_TYPE == fundamentalType).Select(f => f.IS_PARENT).FirstOrDefault().ToString();
                var pId         = fieldMapping.Where(f => f.FIELD_NAME == p.Name && f.FUNDAMENATAL_TYPE == fundamentalType).Select(f => f.PARENT_ID).FirstOrDefault().ToString();

                Dictionary <string, string> row = new Dictionary <string, string>();
                row.Add("Item", SetIndent(indentLevel) + fieldName); //add the field name, the first left name column
                row.Add("PID", pId);
                row.Add("IP", is_Parent);
                row.Add("CR", p.Name == chartRow ? (fundamentalType == "tapb" ? fieldName.Substring(2, 3) : fieldName) : "0");

                if (reportType == "Y") //year report
                {
                    for (var i = DateTime.Now.Year - 1; i >= startYear; i--)
                    {
                        var fund  = issuerFundamental.Where(f => f.EndDate.Year == i).FirstOrDefault();
                        var value = fund == null ? null : p.GetValue(fund, null);
                        row.Add("Y" + i.ToString(), value == null ? "" : UIGenerator.FormatCellValue(value, "decimal"));
                    }
                    rowData.Add(row);
                }
                else
                {
                    for (var i = DateTime.Now.Year; i >= startYear; i--)
                    {
                        var funds = issuerFundamental.Where(f => f.EndDate.Year == i).OrderByDescending(f => f.EndDate).ToList(); //add in a year

                        for (var j = 0; j < funds.Count(); j++)
                        {
                            int quarterIndex = 0;
                            int quarter      = Convert.ToInt32(funds.ElementAt(j).EndDate.Month) / 3;

                            switch (quarter)
                            {
                            case 1:
                                quarterIndex = 3;
                                break;

                            case 2:
                                quarterIndex = 2;
                                break;

                            case 3:
                                quarterIndex = 6;
                                break;

                            case 4:
                                quarterIndex = 1;
                                break;

                            default:
                                break;
                            }

                            var fund  = funds.Where(f => f.ReportType == quarterIndex).Select(f => f).FirstOrDefault();
                            var value = fund == null ? null : p.GetValue(fund, null);

                            row.Add("Y" + i.ToString() + "Q" + quarter.ToString(), value == null ? "" : UIGenerator.FormatCellValue(value, "decimal"));
                        }
                    }
                    rowData.Add(row);
                }
            }

            return(rowData);
        }