Untitled
unknown
plain_text
10 months ago
3.8 kB
4
Indexable
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;
}Editor is loading...
Leave a Comment