Untitled
public Dictionary<string, JSONDataTable> GetCFSummaryScenario(string AssetName, string sessionId, string userName, List<string> scenarioNames, string dealName, string dataLevel = "L", string propertyName = null, List<string> allScenarioNames = null) { // ... your existing code ... DataTable dtFinancial = lnDetailedUWSummary != null ? VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeFinancialDatatoJSON(lnDetailedUWSummary) : new DataTable(); if (dtFinancial.Columns.Count > 0) { // Create a new DataTable with the desired column order DataTable orderedDtFinancial = new DataTable(); // Add User data columns first foreach (DataColumn col in dtFinancial.Columns) { if (col.ColumnName.StartsWith("USER ", StringComparison.OrdinalIgnoreCase) || col.ColumnName.StartsWith("Market|", StringComparison.OrdinalIgnoreCase) || col.ColumnName.StartsWith("OCM Base|", StringComparison.OrdinalIgnoreCase) || col.ColumnName.StartsWith("test rupali|", StringComparison.OrdinalIgnoreCase) || col.ColumnName.StartsWith("test|", StringComparison.OrdinalIgnoreCase) ) { orderedDtFinancial.Columns.Add(col.ColumnName, col.DataType); } } // Add Calculated Average columns foreach (DataColumn col in dtFinancial.Columns) { if (col.ColumnName.StartsWith("Average|", StringComparison.OrdinalIgnoreCase)) { orderedDtFinancial.Columns.Add(col.ColumnName, col.DataType); } } // Add Intex data columns foreach (DataColumn col in dtFinancial.Columns) { if (col.ColumnName.EndsWith("_INTEX|Amount", StringComparison.OrdinalIgnoreCase) || col.ColumnName.EndsWith("_INTEX|PerUnit", StringComparison.OrdinalIgnoreCase) || col.ColumnName.EndsWith("_INTEX|PercTotal", StringComparison.OrdinalIgnoreCase) || col.ColumnName.Equals("UW_INTEX|Amount", StringComparison.OrdinalIgnoreCase) || col.ColumnName.Equals("UW_INTEX|PerUnit", StringComparison.OrdinalIgnoreCase) || col.ColumnName.Equals("UW_INTEX|PercTotal", StringComparison.OrdinalIgnoreCase) ) { orderedDtFinancial.Columns.Add(col.ColumnName, col.DataType); } } // Add remaining columns (like FieldName, DisplayFieldName, SectionName) - these should likely be at the beginning foreach (DataColumn col in dtFinancial.Columns) { if (!orderedDtFinancial.Columns.Contains(col.ColumnName)) { orderedDtFinancial.Columns.Add(col.ColumnName, col.DataType); } } // Populate the ordered DataTable foreach (DataRow row in dtFinancial.Rows) { DataRow newRow = orderedDtFinancial.NewRow(); foreach (DataColumn col in orderedDtFinancial.Columns) { if (dtFinancial.Columns.Contains(col.ColumnName)) { newRow[col.ColumnName] = row[col.ColumnName]; } } orderedDtFinancial.Rows.Add(newRow); } // Replace the original DataTable with the ordered one dtFinancial = orderedDtFinancial; } if (lnDetailedUWSummary.SummaryCFs.ContainsKey("Average")) lnDetailedUWSummary.SummaryCFs.Remove("Average"); // ... rest of your code using dtFinancial ... returnData.Add("Financials", JSONUtils.DataTableToJSON(dtFinancial)); // ... rest of your code ... return returnData; }
Leave a Comment