public List <string> GetTemplatePage(string contextIds, int?currentPage, bool bool_0) { IService service = ServiceHelper.GetService(printTemp.ModelName); List <string> list = new List <string>(); List <TemplatePageInfo> list2 = GetTemplatePageInfo(contextIds); int num = (!currentPage.HasValue) ? 1 : currentPage.Value; dicPageInfo["page"] = ObjectExtensions.ToStr((object)num); dicPageInfo["pagecount"] = ObjectExtensions.ToStr((object)list2.Count); for (int i = 1; i <= list2.Count; i++) { if (i != num && !bool_0) { list.Add(null); } else { TemplatePageInfo templatePageInfo = list2[i - 1]; string context = templatePageInfo.Context; formatContent = printTemp.TemplateBody; string detailFieldName = GetReportDetialHtml(); if (!string.IsNullOrEmpty(detailFieldName)) { ModelDetailData = service.GetDetailData(context, null, false); ServiceConfig serviceConfig = ServiceHelper.GetServiceConfig(printTemp.ModelName); Field field = (from a in serviceConfig.fields where a.name == detailFieldName select a).FirstOrDefault(); if (field != null) { IService service2 = ServiceHelper.GetService(field.relationModel); PagedData pagedData = service2.GetPageData(new QueryDescriptor { SortName = "CreateDate", SortOrder = "asc", PageIndex = templatePageInfo.PageIndex, PageSize = printTemp.PageSize.Value, Condition = new FilterGroup { op = "and", rules = new List <FilterRule> { new FilterRule(field.relationField, context, "equal") } } }) as PagedData; ModelDetailData[detailFieldName] = pagedData.Records; DoWithJsonXmlContent(); DoWithJsonContent(); string text = formatContent; text = text.Replace("{#page}", ObjectExtensions.ToStr((object)i)); text = text.Replace("{#pagecount}", ObjectExtensions.ToStr((object)list2.Count)); list.Add(text); continue; } } ModelDetailData = service.GetDetailData(context, null); DoWithJsonXmlContent(); DoWithJsonContent(); string text2 = formatContent; text2 = text2.Replace("{#page}", ObjectExtensions.ToStr((object)i)); text2 = text2.Replace("{#pagecount}", ObjectExtensions.ToStr((object)list2.Count)); list.Add(text2); } } return(list); }
public List <TemplatePageInfo> GetTemplatePageInfo(string contextIds) { List <TemplatePageInfo> list = new List <TemplatePageInfo>(); if (printTemp != null) { ServiceConfig serviceConfig = ServiceHelper.GetServiceConfig(printTemp.ModelName); string detailFieldName = GetReportDetialHtml(); int num = 1; if (string.IsNullOrEmpty(detailFieldName)) { string[] array = contextIds.Split(';'); foreach (string context in array) { TemplatePageInfo templatePageInfo = new TemplatePageInfo { Context = context, PageIndex = 1, AllPageIndex = num++ }; list.Add(templatePageInfo); } } else { DbContext currentDb = SysContext.GetCurrentDb(); Field field = (from a in serviceConfig.fields where a.name == detailFieldName select a).FirstOrDefault(); if (field != null) { ServiceHelper.GetService(field.relationModel); string[] array = contextIds.Split(';'); foreach (string context in array) { int num2 = 1; int num4 = currentDb.ExecuteScalar <int>(string.Format("select count(*) from {0} where {1} = @0", field.relationModel, field.relationField), new object[1] { context }); double a2 = (double)num4 * 1.0 / (double)printTemp.PageSize.Value; int num5 = (int)Math.Ceiling(a2); if (num5 == 0) { list.Add(new TemplatePageInfo { Context = context, PageIndex = num2++, AllPageIndex = num++ }); } else { for (int j = 1; j <= num5; j++) { list.Add(new TemplatePageInfo { Context = context, PageIndex = num2++, AllPageIndex = num++ }); } } } } } } return(list); }