/// <summary> /// get bond issue amount statistical data /// </summary> /// <param name="param"></param> /// <returns></returns> public IEnumerable <BondIssueAmount> GetBondIssueAmountNew(BondIssueAmountParams param) { var table = GetBondIssueAmountDtNew(param.Type, param.StartDate, param.EndDate, param.Unit, string.Join(",", param.TypeList.ToArray()), param.UseSubType ? 1 : 0, param.SubType); var pResult = DataTableSerializer.ToList <BondIssueAmount>(table); return(pResult); }
/// <summary> /// Get bond issue amouont statitical data /// </summary> /// <param name="reportParams"></param> /// <returns></returns> public IEnumerable <BondIssueAmount> GetIssueAmount(BondIssueAmountParams reportParams) { Dictionary <string, int> typeOrderDic = CacheGet <Dictionary <string, int> >("TypeOrder"); if (typeOrderDic == null) { typeOrderDic = BondReportRepository.GetTypeOrder(); CacheSet("TypeOrder", typeOrderDic); } return(BondReportRepository.GetBondIssueAmountNew(reportParams)); }
public ActionResult GetIssueAmountReportContent(int reportId, string reportName, string type, string typeList, string useSubType, string subType, string startDate, string endDate, string unit) { var param = new BondIssueAmountParams { Type = type, TypeList = typeList.Split(',').ToList(), UseSubType = useSubType == "true", SubType = subType, StartDate = DateTime.Parse(startDate), EndDate = DateTime.Parse(endDate), Unit = unit }; IEnumerable <BondIssueAmount> topGrid; IEnumerable <BondDetail> bottomGrid; GetIssueAmountReportData(param, out topGrid, out bottomGrid); var model = new BondIssueAmountReport( reportId, reportName, HtmlUtil.GetUnitOptionByKey(unit), // for display topGrid, bottomGrid); if (topGrid == null || topGrid.Count() == 0) { return(new EmptyResult()); } ViewData["StartDate"] = param.StartDate; ViewData["EndDate"] = param.EndDate; ViewData["Type"] = param.Type; ViewData["TypeList"] = typeList; ViewData["SubType"] = param.SubType; ViewData["UseSubType"] = param.UseSubType && type != subType; ViewData["UseSecType"] = (param.UseSubType && type != subType) ? "y" : "n"; ViewData["Unit"] = param.Unit; ViewData["TopGridName"] = model.TopGridName; ViewData["TypeValue"] = model.TopGrid.Select(t => t.Type).First(); ViewData["SubTypeValue"] = ""; ViewData["TopGridName"] = model.TopGridName; ViewData["BottomGridName"] = model.BottomGridName; return(View("_IssueAmountReportContent", model)); }
private void GetIssueAmountReportData(BondIssueAmountParams param, out IEnumerable <BondIssueAmount> topGrid, out IEnumerable <BondDetail> bottomGrid) { var detailParam = new BondDetailParams(); if (param == null) { int year = DateTime.Now.Year; int month; if (DateTime.Now.Month == 1) { year = DateTime.Now.Year - 1; month = 12; } else { month = DateTime.Now.Month - 1; } param = new BondIssueAmountParams(); param.Type = "Bond_Class"; param.TypeList = UIStaticDataCache.Instance.AssetClass.Select(re => re.Value).ToList(); param.Unit = "100M"; param.UseSubType = false; param.SubType = ""; param.StartDate = new DateTime(year, month, 1); param.EndDate = DateTime.Now; _log.Error("GetIssueAmount Data 1:" + DateTime.Now); topGrid = ReportService.GetIssueAmount(param).ToList(); _log.Error("GetIssueAmount Data 2:" + DateTime.Now); if (topGrid.Count() == 0) { bottomGrid = new List <BondDetail>(); } else { detailParam.Type = ConstValues.Type_Bond_Class; detailParam.TypeValue = topGrid.Select(t => t.Type).First(); detailParam.StartDate = new DateTime(year, month, 1); detailParam.EndDate = DateTime.Now; detailParam.UseSubType = false; detailParam.ItemList = detailParam.TypeValue; detailParam.StartPage = 1; detailParam.PageSize = 300; bottomGrid = ReportService.GetBondDetailByTypeAndSubType(detailParam); _log.Error("GetIssueAmount Data 3:" + DateTime.Now); } } else { _log.Error("GetIssueAmount Data 4:" + DateTime.Now); topGrid = ReportService.GetIssueAmount(param); _log.Error("GetIssueAmount Data 5:" + DateTime.Now); var bondIssueAmounts = topGrid as BondIssueAmount[] ?? topGrid.ToArray(); if (bondIssueAmounts.Count() == 0) { bottomGrid = new List <BondDetail>(); } else { detailParam.Type = param.Type; detailParam.TypeValue = bondIssueAmounts.Select(t => t.Type).First(); detailParam.StartDate = param.StartDate; detailParam.EndDate = param.EndDate; detailParam.UseSubType = false; detailParam.PageSize = 300; detailParam.StartPage = 1; detailParam.ItemList = string.Join(",", param.TypeList); bottomGrid = ReportService.GetBondDetailByTypeAndSubType(detailParam); } _log.Error("GetIssueAmount Data 6:" + DateTime.Now); } }
public ActionResult ExportReport(string reportId, string startDate, string endDate, string type, string typeValue, string typeList, string subType, string subTypeValue, string useSecType, string unit, string isParent, string reportName, string reportType, int startPage = 1) { IEnumerable <BondIssueAmountExport> summaryExport; IEnumerable <BondDetail> detailExport; BondIssueAmountParams summaryParam; BondDetailParams detailParam; string[] headers; string[] rowKeys; if (reportType == "summary") { summaryParam = new BondIssueAmountParams { Type = type, TypeList = string.IsNullOrEmpty(typeList) ? null : typeList.Split(',').ToList(), UseSubType = useSecType == "y", SubType = subType, StartDate = DateTime.Parse(startDate), EndDate = DateTime.Parse(endDate), Unit = unit }; var summaryReport = ReportService.GetIssueAmount(summaryParam); summaryExport = (from s in summaryReport select new BondIssueAmountExport { TypeName = s.IsParent == 1 ? (string.IsNullOrEmpty(s.Type) ? Resources.Global.Tip_Other : s.TypeName) : (string.IsNullOrEmpty(s.SubType) ? Resources.Global.Tip_Other : s.SubTypName), Issues = s.Issues, IssuesPercent = s.IssuesPercent, IssuesAmount = s.IssuesAmount, IssuesAmountPercent = s.IssuesAmountPercent, LowestIssueRate = s.LowestIssueRate, HighestIssueRate = s.HighestIssueRate, Row_level = s.IsParent == 1 ? "0" : "1" }).ToList(); headers = GetIssueAmountHeader("summary"); rowKeys = GetIssueAmountCloumns("summary"); string sumGroupColumnName = "TypeName"; string groupedRowLevelColumnName = "Row_level"; try { return(new ExcelResult(summaryExport.AsQueryable(), headers, rowKeys, reportName, reportName, sumGroupColumnName: sumGroupColumnName, groupedRowLevelColumnName: groupedRowLevelColumnName)); } catch (Exception ex) { throw ex; } } else { detailParam = new BondDetailParams { Type = type, TypeValue = typeValue, UseSubType = (useSecType == "y"), // && !string.IsNullOrEmpty(subTypeValue)) ? true : false, SubType = subType, SubTypeValue = subTypeValue, IsParent = isParent == "true", StartDate = DateTime.Parse(startDate), EndDate = DateTime.Parse(endDate), ItemList = typeList, PageSize = 300, StartPage = startPage }; detailExport = ReportService.GetBondDetailByTypeAndSubType(detailParam); headers = GetIssueAmountHeader("detail"); rowKeys = GetIssueAmountCloumns("detail"); var bondDetails = detailExport as BondDetail[] ?? detailExport.ToArray(); bondDetails.ToList().ForEach(r => r.Term = r.Term + (r.OrigAvgLife < 1 ? Resources.Global.Time_Day : Resources.Global.Time_Year)); string dateFormat = "yyyy-MM-dd"; try { return(new ExcelResult(bondDetails.AsQueryable(), headers, rowKeys, reportName, reportName, specificDateFormat: dateFormat)); } catch (Exception ex) { throw ex; } } }