Untitled

 avatar
unknown
plain_text
a month ago
5.2 kB
5
Indexable
    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