Untitled
IUserSessionLogOperations operationsObjUserLog = getContext().GetObject("UserSessionLogOperations") as IUserSessionLogOperations; operationsObjUserLog.SaveUserSessionDetailLogforUser(HttpContext.Current.Session.SessionID, "Data is coming for SummaryCF/UW Financials/Cap Stack/DSCRHurdle/SalesCompsPropertyDetail/SourcesAndUsesDetail", "Loan dashboard", ""); IUnderwritingOperations operationsObj = getContext().GetObject("LoanUnderwritingOperations") as IUnderwritingOperations; ICollection<Tuple<string, bool, string>> detailedUWScenarios = getDetailedUWScenarios(AssetName, dealName); detailedUWScenarios = detailedUWScenarios .OrderBy(t => t.Item3.Equals("USER",StringComparison.CurrentCultureIgnoreCase)) // Sort by user (the third item in the tuple) .ThenBy(t => t.Item3.Equals("INTEX", StringComparison.CurrentCultureIgnoreCase)) // Then sort by Intex (the second item in the tuple) .ThenBy(t => t.Item3.Equals("Calculated", StringComparison.CurrentCultureIgnoreCase)) // Finally, sort by calculated (the first item in the tuple) .ToList(); LoanDetailedUWSummary lnDetailedUWSummary = operationsObj.GetCFSummaryScenario(AssetName, sessionId, userName, detailedUWScenarios.Select(t => t.Item1).ToList(), dealName, dataLevel: dataLevel, propertyName: propertyName); //LoanDetailedUWSummary lnDetailedUWSummary = operationsObj.GetCFSummaryScenario(AssetName, sessionId, userName, detailedUWScenarios.Select(t => t.Item1).ToList(), dealName, dataLevel: dataLevel, propertyName: propertyName); if (allScenarioNames != null && CMBSConfigurableParams.AverageScenarioCount > 0 && !(string.Equals(PROPERTYTYPE_SHORTNAMES.MULTIFAMILY, lnDetailedUWSummary.LoanDetailedUWData.PropertyType) || string.Equals(PROPERTYTYPE_SHORTNAMES.LODGING, lnDetailedUWSummary.LoanDetailedUWData.PropertyType))) { if (allScenarioNames.Count >= CMBSConfigurableParams.AverageScenarioCount) allScenarioNames = allScenarioNames.Take(CMBSConfigurableParams.AverageScenarioCount).ToList<string>(); LoanDetailedUWSummary lnDetailedUWSummaryForAvg = operationsObj.GetCFSummaryScenario(AssetName, sessionId, userName, allScenarioNames, dealName, dataLevel: dataLevel, propertyName: propertyName); DataTable dtFinancialForAvg = VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeFinancialDatatoJSON(lnDetailedUWSummaryForAvg); //CalculateAverageScenario( dtFinancialForAvg, dtFinancial, allScenarioNames); SummaryCFScenario summaryCFScenario = operationsObj.GetCalculatedAverageScenario(lnDetailedUWSummary, allScenarioNames); lnDetailedUWSummary.SummaryCFs["Average"] = summaryCFScenario; } DataTable dtFinancial = lnDetailedUWSummary != null? VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeFinancialDatatoJSON(lnDetailedUWSummary) : new DataTable(); if (lnDetailedUWSummary.SummaryCFs.ContainsKey("Average")) lnDetailedUWSummary.SummaryCFs.Remove("Average"); DataTable dtSummaryCashflows = lnDetailedUWSummary != null ? VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeSummaryCashflowsDatatoJSON(lnDetailedUWSummary) : new DataTable(); DataTable dtCapitalStructure = VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeCapitalStructureDatatoJSON(lnDetailedUWSummary); DataTable dtDSCRHurdle = VABSDomainLayer.Utils.CMBS.LoanDashboardUtils.TransposeDSCRHurdletoJSON(lnDetailedUWSummary); DataTable dtSalesCompsPropertyDetail = lnDetailedUWSummary != null ? ToDataTable(lnDetailedUWSummary.LoanDetailedUWData.LoanDetailedUWSalesAndMarketCompsDetailData.SalesCompsPropertyDetails) : new DataTable(); DataTable dtSourcesAndUsesDetail = lnDetailedUWSummary != null ? ToDataTable(lnDetailedUWSummary.LoanDetailedUWData.LoanDetailedUWSourcesAndUsesDetailData) : new DataTable(); Dictionary<string, JSONDataTable> returnData = new Dictionary<string, JSONDataTable>(); returnData.Add("Financials", JSONUtils.DataTableToJSON(dtFinancial)); returnData.Add("SummaryCashflows", JSONUtils.DataTableToJSON(dtSummaryCashflows)); returnData.Add("CapitalStructure", JSONUtils.DataTableToJSON(dtCapitalStructure)); returnData.Add("DSCRHurdle", JSONUtils.DataTableToJSON(dtDSCRHurdle)); returnData.Add("SalesCompsPropertyDetail", JSONUtils.DataTableToJSON(dtSalesCompsPropertyDetail)); returnData.Add("SourcesAndUsesDetail", JSONUtils.DataTableToJSON(dtSourcesAndUsesDetail)); //UserSessionInfo.UserInfo userInfoObj = (UserSessionInfo.UserInfo)UserSessionInfo._userInfoMap[HttpContext.Current.Session.SessionID]; //userInfoObj.UserNotes = lnDetailedUWSummary.LoanDetailedUWData.UserNotes; return returnData; } catch (Exception ex) { logger.Error("Error in GetCFSummaryScenario", ex); IUserSessionLogOperations operationsObjUserLog = getContext().GetObject("UserSessionLogOperations") as IUserSessionLogOperations; operationsObjUserLog.SaveUserSessionDetailLogforUser(HttpContext.Current.Session.SessionID, "On GetCFSummaryScenario", "Loan Dashboard", "Error in GetCFSummaryScenario" + ex); if (BUBBLE_EXCEPTIONS) throw ex; else return null; }
Leave a Comment