public object PesquisarUsuarios(PesquisarUsuariosQueryFilter filter) { if (string.IsNullOrEmpty(filter.Descritivo)) { // Pesquisar sem filtro retorna lista vazia return(new object()); } else { var query = _session.QueryOver <Usuario>() .Where(x => x.Ativo); var a = query.List(); var comparador = Restrictions.Disjunction(); comparador.Add(Restrictions.InsensitiveLike(Projections.Property <Usuario>(x => x.Username), filter.Descritivo, MatchMode.Start)); comparador.Add(Restrictions.InsensitiveLike(Projections.Property <Usuario>(x => x.Nome), filter.Descritivo, MatchMode.Start)); comparador.Add(Restrictions.InsensitiveLike(Projections.Property <Usuario>(x => x.Descricao), filter.Descritivo, MatchMode.Start)); query.Where(comparador); query.OrderBy(x => x.Username).Asc(); var pagedObject = new PagedObject <Usuario>(); pagedObject.Paginate(query, 30, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <UsuarioQueryModelSearch> >(pagedObject.ResultQuery.List()))); } }
public object PesquisarPublicacoes(PesquisarPublicacoesQueryFilter filter) { if (string.IsNullOrEmpty(filter.Descritivo)) { // Pesquisar sem filtro retorna lista vazia return(new object()); } else { var query = _session.QueryOver <Publicacao>() .Where(x => x.Ativo) .And(x => x.PublicacaoRespondida == null) .And(x => x.PublicacaoRecompartilhada == null); var comparador = Restrictions.Disjunction(); comparador.Add(Restrictions.InsensitiveLike(Projections.Property <Publicacao>(x => x.Conteudo), filter.Descritivo, MatchMode.Anywhere)); query.Where(comparador); query.OrderBy(x => x.Data).Desc(); var pagedObject = new PagedObject <Publicacao>(); pagedObject.Paginate(query, 30, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <PublicacaoQueryModelSearch> >(pagedObject.ResultQuery.List()))); } }
public object ListarNoticiasMaisDiscordadasDaSemana(ListarNoticiasParaOpinarQueryFilter filter) { DateTime seteDiasAtras = DateTime.Now.AddDays(-7); ListarNoticiasMaisConcordadasDaSemanaQueryModel noticiaQueryModel = null; Noticia noticiaAlias = null; Opiniao opiniaoAlias = null; var query = _session.QueryOver <Opiniao>(() => opiniaoAlias) .JoinAlias(() => opiniaoAlias.Noticia, () => noticiaAlias) .Where(x => x.Data >= seteDiasAtras) .And(x => x.Tipo == TipoOpiniao.Discordo) .SelectList(l => l .Select(x => noticiaAlias.Id).WithAlias(() => noticiaQueryModel.Id) .Select(x => noticiaAlias.Titulo).WithAlias(() => noticiaQueryModel.Titulo) .Select(x => noticiaAlias.Url).WithAlias(() => noticiaQueryModel.Url) .Select(x => noticiaAlias.UrlImagem).WithAlias(() => noticiaQueryModel.UrlImagem) .Select(x => noticiaAlias.Data).WithAlias(() => noticiaQueryModel.Data) .SelectCount(x => x.Id).WithAlias(() => noticiaQueryModel.Quantidade) .SelectGroup(x => noticiaAlias.Id)) .OrderByAlias(() => noticiaQueryModel.Quantidade).Desc .TransformUsing(Transformers.AliasToBean <ListarNoticiasMaisConcordadasDaSemanaQueryModel>()); var pagedObject = new PagedObject <Opiniao>(); pagedObject.Paginate(query, 10, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <ListarNoticiasMaisConcordadasDaSemanaQueryModel> >(pagedObject.ResultQuery.List <ListarNoticiasMaisConcordadasDaSemanaQueryModel>()))); }
public async Task <IActionResult> GetTransfers(string section = "all", int page = 1) { User user = userService.FindUserByName(HttpContext.User.Identity.Name); EmployeeInfo employee = await employeeService.GetEmployeeInfoByUserId(user.Id); IQueryable <ConfirmTransferViewModel> transfers; if (section == "not_confirmed") { transfers = transferService.GetNotConfirmedTransferViewModelsByCompanyId(user); } else { transfers = transferService.GetAllTransferViewModelsByCompanyId(user); } PagedObject <ConfirmTransferViewModel> pagedObject = await pagingService.DoPage <ConfirmTransferViewModel>(transfers, page); if (employee != null) { foreach (var confirmTransferViewModel in pagedObject.Objects) { confirmTransferViewModel.IsUserHaveRightOfConfirm = transferService.GetEmployeeRightOfConfirm(employee, confirmTransferViewModel.Transfer.AccountSender); } } else { UserInfo userInfo = await userService.FindUserInfoByUserId(user.Id); foreach (var confirmTransferViewModel in pagedObject.Objects) { if (confirmTransferViewModel.Transfer.AccountSender != null) { if (confirmTransferViewModel.Transfer.AccountSender.UserInfoId == userInfo.Id) { confirmTransferViewModel.IsUserHaveRightOfConfirm = true; } else { confirmTransferViewModel.IsUserHaveRightOfConfirm = false; } } confirmTransferViewModel.IsUserHaveRightOfConfirm = false; } } PagingViewModel <ConfirmTransferViewModel> model = new PagingViewModel <ConfirmTransferViewModel> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; ViewBag.Section = section; return(View(model)); }
public async Task <IActionResult> Index(int page = 1) { IQueryable <UserInfo> users = userService.GetUserList().OrderBy(n => n.User.UserName); PagedObject <UserInfo> pagedObject = await pagingService.DoPage <UserInfo>(users, page); PagingViewModel <UserInfo> UsersPagingViewModel = new PagingViewModel <UserInfo> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; return(View(UsersPagingViewModel)); }
public async Task <IActionResult> PaymentCodeList(int page = 1) { IQueryable <PaymentСode> paymentCodies = paymentCodeService.GetPaymentСodeList().OrderBy(c => c.Code); PagedObject <PaymentСode> pagedObject = await pagingService.DoPage <PaymentСode>(paymentCodies, page); PagingViewModel <PaymentСode> PaymentCodiesPagingViewModel = new PagingViewModel <PaymentСode> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; return(View(PaymentCodiesPagingViewModel)); }
public async Task <IActionResult> Index(int page = 1) { IQueryable <Company> companies = companyService.GetCompanies().OrderBy(c => c.NameCompany); PagedObject <Company> pagedObject = await pagingService.DoPage <Company>(companies, page); PagingViewModel <Company> CompaniesPagingViewModel = new PagingViewModel <Company> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; return(View(CompaniesPagingViewModel)); }
public async Task <IActionResult> Index(int page = 1) { IQueryable <Limit> limits = limitService.GetLimitList().OrderBy(l => l.LimitName); PagedObject <Limit> pagedObject = await pagingService.DoPage <Limit>(limits, page); PagingViewModel <Limit> LimitsPagingViewModel = new PagingViewModel <Limit> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; return(View(LimitsPagingViewModel)); }
public async Task <IActionResult> Index(int page = 1) { IQueryable <Bank> banks = bankService.GetBankList().OrderBy(b => b.BIK); PagedObject <Bank> pagedObject = await pagingService.DoPage <Bank>(banks, page); PagingViewModel <Bank> BanksPagingViewModel = new PagingViewModel <Bank> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; return(View(BanksPagingViewModel)); }
public object UsuarioPublicacoes(UsuarioPublicacoesQueryFilter filter) { var query = _session.QueryOver <Publicacao>() .Where(x => x.Ativo) .And(x => x.Usuario.Id == filter.Usuario.Id) .OrderBy(x => x.Data).Desc; var pagedObject = new PagedObject <Publicacao>(); pagedObject.Paginate(query, 30, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <TimeLineQueryModel> >(pagedObject.ResultQuery.List()))); }
public ActionResult <PagedObject <Group> > QueryGroup([FromQuery] GroupQueryRequest request) { var dto = _mapper.Map <GroupQueryRequest, GroupQueryDto>(request); var entities = _groupService.QueryGroup(dto); var result = new PagedObject <Group> { Page = dto.Page, PageSize = dto.PageSize, Total = dto.TotalCount, Items = _mapper.Map <IList <Domain.Entities.Group>, List <Group> >(entities), }; return(result); }
public ActionResult <PagedObject <Project> > QueryProject([FromQuery] ProjectQueryRequest request) { var dto = _mapper.Map <ProjectQueryRequest, ProjectQueryDto>(request); var entities = _projectService.QueryProject(dto); var result = new PagedObject <Project> { Page = dto.Page, PageSize = dto.PageSize, Total = dto.TotalCount, Items = _mapper.Map <IList <Domain.Entities.Project>, List <Project> >(entities), }; return(result); }
public ActionResult <PagedObject <WorkType> > QueryWorkType([FromQuery] WorkTypeQueryRequest request) { var dto = _mapper.Map <WorkTypeQueryRequest, WorkTypeQueryDto>(request); var entities = _workTypeService.QueryWorkType(dto); var result = new PagedObject <WorkType> { Page = dto.Page, PageSize = dto.PageSize, Total = dto.TotalCount, Items = _mapper.Map <IList <Domain.Entities.WorkType>, List <WorkType> >(entities), }; return(result); }
public async Task <ActionResult> Index(int id, int page = 1) { IQueryable <EmployeeInfo> employees = employeeService.GetEmployeesByCompanyId(id).OrderBy(c => c.FirstName); PagedObject <EmployeeInfo> pagedObject = await pagingService.DoPage <EmployeeInfo>(employees, page); PagingViewModel <EmployeeInfo> EmployeePagingViewModel = new PagingViewModel <EmployeeInfo> { PageViewModel = new PageViewModel(pagedObject.Count, page, pagedObject.PageSize), Objects = pagedObject.Objects }; ViewBag.CompanyId = id; return(View(EmployeePagingViewModel)); }
public object ListarNoticiasParaOpinar(ListarNoticiasParaOpinarQueryFilter filter, int usuarioId) { // Trazer todas as opiniões do usuário var subQuery = _session.QueryOver <Opiniao>() .Where(x => x.Usuario.Id == usuarioId) .Select(x => x.Noticia.Id) .List <int>(); // Recuperar as notícias que não são as notícias da consulta acima var query = _session.QueryOver <Noticia>() .WhereRestrictionOn(x => x.Id).Not.IsInG(subQuery) .OrderBy(x => x.Data).Desc; var pagedObject = new PagedObject <Noticia>(); pagedObject.Paginate(query, 10, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <NoticiaQueryModel> >(pagedObject.ResultQuery.List()))); }
public object TimeLineUsuario(TimeLineUsuarioQueryFilter filter, int usuarioId) { var usuariosSeguindo = _session.QueryOver <SeguidorUsuario>() .Where(x => x.UsuarioSeguidor.Id == usuarioId) .Select(x => x.UsuarioSeguido.Id).List <int>(); usuariosSeguindo.Add(usuarioId); var query = _session.QueryOver <Publicacao>() .Where(x => x.Ativo) .AndRestrictionOn(x => x.Usuario.Id).IsInG(usuariosSeguindo) .OrderBy(x => x.Data).Desc; var pagedObject = new PagedObject <Publicacao>(); pagedObject.Paginate(query, 30, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <TimeLineQueryModel> >(pagedObject.ResultQuery.List()))); }
public ActionResult <PagedObject <GroupPerson> > QueryPerson( [FromRoute] [Required(ErrorMessage = "DataAnnotationRequired")] [Guid(ErrorMessage = "DataAnnotationGuid")] string groupId, [FromQuery] GroupPersonQueryRequest request) { var dto = _mapper.Map <GroupPersonQueryRequest, GroupPersonQueryDto>(request); dto.GroupId = Guid.Parse(groupId); var entities = _groupService.QueryPerson(dto); var result = new PagedObject <GroupPerson> { Page = dto.Page, PageSize = dto.PageSize, Total = dto.TotalCount, Items = _mapper.Map <IList <Domain.Entities.GroupPerson>, List <GroupPerson> >(entities), }; return(result); }
public object ListarUsuariosMaisParecidosComUsuarioLogado(ListarUsuariosMaisParecidosComUsuarioLogadoQueryFilter filter, int usuarioLogadoId) { DateTime seteDiasAtras = DateTime.Now.AddDays(-7); ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel usuarioQueryModel = null; Usuario usuarioAlias = null; Arquivo fotoAlias = null; Opiniao opiniaoAlias = null; var noticias = _session.QueryOver <Opiniao>() .Where(x => x.Usuario.Id == usuarioLogadoId) .And(x => x.Tipo == TipoOpiniao.Concordo) .Select(x => x.Noticia.Id).List <int>(); var query = _session.QueryOver <Opiniao>(() => opiniaoAlias) .JoinAlias(() => opiniaoAlias.Usuario, () => usuarioAlias) .Left.JoinAlias(() => usuarioAlias.Foto, () => fotoAlias) .Where(x => x.Tipo == TipoOpiniao.Concordo) .And(x => usuarioAlias.Id != usuarioLogadoId) .AndRestrictionOn(x => x.Noticia.Id).IsInG(noticias) .SelectList(l => l .Select(x => usuarioAlias.Id).WithAlias(() => usuarioQueryModel.Id) .Select(x => usuarioAlias.Username).WithAlias(() => usuarioQueryModel.Username) .Select(x => usuarioAlias.Nome).WithAlias(() => usuarioQueryModel.Nome) .Select(x => usuarioAlias.Email).WithAlias(() => usuarioQueryModel.Email) .Select(x => fotoAlias.Nome).WithAlias(() => usuarioQueryModel.FotoNome) .SelectCount(x => x.Id).WithAlias(() => usuarioQueryModel.Quantidade) .SelectGroup(x => usuarioAlias.Id)) .OrderByAlias(() => usuarioQueryModel.Quantidade).Desc .TransformUsing(Transformers.AliasToBean <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel>()); var pagedObject = new PagedObject <Opiniao>(); pagedObject.Paginate(query, 10, filter.Pagina); return(pagedObject.PageResult(Mapper.Map <IList <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel> >(pagedObject.ResultQuery.List <ListarUsuariosMaisParecidosComUsuarioLogadoQueryModel>()))); }
public async Task <List <SpotibroModels.PlaylistSummary> > GetUsersPlaylistsAsync(PartyGoer user, int limit = 10, int offset = 0) { try { var parameters = new ApiParameters { Parameters = new Dictionary <string, string> { { "limit", limit.ToString() }, { "offset", offset.ToString() } } }; var response = await _spotifyHttpClient.SendHttpRequestAsync(user, _apiEndpoints[ApiEndpointType.GetUserPlaylists], parameters, null); response.EnsureSuccessStatusCode(); PagedObject <UsersPlaylist> spotifyPlaylists = await response.Content.ReadFromJsonAsync <PagedObject <UsersPlaylist> >(); List <SpotibroModels.PlaylistSummary> playlistSummaries = new List <SpotibroModels.PlaylistSummary>(); foreach (var playlist in spotifyPlaylists.Items) { playlistSummaries.Add(new SpotibroModels.PlaylistSummary { Name = playlist.Name, PlaylistCoverArtUrl = playlist.Images.FirstOrDefault().Url, Id = playlist.Id }); } return(playlistSummaries); } catch (Exception ex) { await _logService.LogExceptionAsync(ex, "Error occurred in GetUsersPlaylistsAsync"); return(null); } }
/// <summary> /// Enables processing of HTTP Web requests by a custom HttpHandler that implements the <see cref="T:System.Web.IHttpHandler"/> interface. /// </summary> /// <param name="context">An <see cref="T:System.Web.HttpContext"/> object that provides references to the intrinsic server objects (for example, Request, Response, Session, and Server) used to service HTTP requests.</param> public void ProcessRequest(HttpContext context) { /*********************** * 1.通过模板编号获取模板 * 2.模板解析器解析输出 * 2.1 设置模板解析依赖资源 TempletDriving * 2.2 解析内容并输出网页 * ***************************/ TempletDriving tptRes = new TempletDriving(context); #region 页面渲染处理 context.Response.Write(tptRes.GetDefinition("$TempletID$")); PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(Convert.ToInt32(tptRes.GetDefinition("$TempletID$"))) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { #region 根据模板内的列表动态显示当前页内容 if (pageTpt.IsMixedSyntax == false) { DisplayContent(context, HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); return; } else { string realContent = "", myPageHtml = ""; TempletParse tpp = new TempletParse(); MultiResDependency res = new MultiResDependency(tptRes); tpp.Caller = this; tpp.SetResourceDependency(res); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); //OleDbHelper.AppendToFile("~/debug.log", tpp.ParsedResult); if (this.PagedObject == null) { myPageHtml = tpp.ParsedResult; //+处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { myPageHtml = myPageHtml.Replace(pagerKey, ""); } } DisplayContent(context, HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml)); } else { string dynTpt = tpp.ParsedResult; string currentPageMatch = ""; PagedObject.SetResourceDependency(res); string currentPage = tptRes.GetDefinition("$CurrentPage$").ToString(); if (currentPage != null && Util.IsMatch(@"^(\d+)$", currentPage, 1, 1, PagedObject.GetPageCount(), out currentPageMatch)) { PagedObject.CurrentPageIndex = int.Parse(currentPage); } else { PagedObject.CurrentPageIndex = 1; } #region 显示分页内容 realContent = PagedObject.GetCurrentPageContent(); //处理当前页内容 myPageHtml = dynTpt.Replace(PagedContentAlia, realContent); //处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { PagerTag Pager = PagerDic[pagerKey]; Pager.TotalRecordCount = PagedObject.GetTotalRecordCount(); Pager.CurrentPage = PagedObject.CurrentPageIndex; Pager.StartIndex = PagedObject.StartIndex; Pager.EndIndex = PagedObject.EndIndex; Pager.PageSize = PagedObject.PageSize; string formatDef = "$PagerFormat$"; if (tptRes.IsDefined(formatDef)) { Pager.DefaultPageFormat = tptRes.GetDefinition(formatDef).ToString(); } myPageHtml = myPageHtml.Replace(pagerKey, Pager.ToString()); } } #endregion DisplayContent(context, HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml)); } tpp.Dispose(); } #endregion } else { ShowMessage(context, "页面模板实体还原失败,请检查配置是否正确!"); } #endregion }
public List <SpotibroModels.Track> Convert(PagedObject <SpotifyModels.Track> tracks) { return(tracks.Items.Select(p => Convert(p)).ToList()); }
/// <summary> /// 生成网站栏目/频道静态文件 /// </summary> /// <param name="aWebChannel">指定了ChannelID的实体</param> public void Generate(AccessWebChannel aWebChannel, ChannelGeneratorOptions options) { if (aWebChannel.IsFilled == false) { aWebChannel = (new AccessWebChannel()).GetInstanceById(aWebChannel.ChannelID) as AccessWebChannel; } if (aWebChannel != null && aWebChannel.IsExist == true && aWebChannel.IsFilled == true) { if (aWebChannel.StaticFileGenDir.IndexOf("/") == -1) { ShowMessage("生成文件目录设置有错误,系统终止!"); return; } TempletSetting tptConfig = aWebChannel.TempletConfig; if (tptConfig == null) { ShowMessage("该频道没有配置模板,不能生成相关文件!"); } else { string strGenFilePath, strFileName, strFileExt, strGenResult = ""; if (aWebChannel.StaticFileGenDir.IndexOf("{#$ChannelID$#}") != -1) { aWebChannel.StaticFileGenDir = aWebChannel.StaticFileGenDir.Replace("{#$ChannelID$#}", aWebChannel.ChannelID.ToString()); } strGenFilePath = Util.ParseAppPath(aWebChannel.StaticFileGenDir); //ShowMessage(strGenFilePath); if (!strGenFilePath.EndsWith("\\")) { strGenFilePath += "\\"; } //最终页面内容 string strGenFileContent = ""; string trackPath = ""; this.UTCDateBegin = DateTime.Now.ToUniversalTime(); if (options != null && options.GenerateSinglePage == false) { ShowMessage("* 已禁止单页综合内容页生成!"); } else { #region 单页综合生成 if (tptConfig.GenerateSinglePage == true) { strFileName = tptConfig.MixedSingleTemplet.FileNameConfig.FileNameTag.GetTagValue().ToString(); strFileExt = tptConfig.MixedSingleTemplet.FileNameConfig.FileExtentionName; PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(tptConfig.MixedSingleTemplet.TempletID) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { if (pageTpt.IsMixedSyntax == false) { if (!pageTpt.SiteBaseDir.EndsWith("/")) { pageTpt.SiteBaseDir += "/"; } strGenResult = OleDbHelper.SetTextFileContent(strGenFilePath + strFileName + strFileExt, "utf-8", HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); if (strGenResult == "0") { FireGeneratorFileFinished(strGenFilePath + strFileName + strFileExt); } } else { TempletParse tpp = new TempletParse(); tpp.Caller = this; tpp.SetResourceDependency(aWebChannel); tpp.TagTrack = new System.Collections.Generic.Dictionary <string, string>(); tpp.TagTrack.Add("T" + pageTpt.TempletID.ToString(), pageTpt.ModifiedTime.ToString("yyyyMMddHHmmss")); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); strGenFileContent = HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, tpp.ParsedResult); //插入Track代码 trackPath = GetSiteRelativeUrl(strGenFilePath + strFileName + strFileExt); GetTrackHtmlInSertCode(tpp.TagTrack, trackPath, "</body>", ref strGenFileContent); strGenResult = OleDbHelper.SetTextFileContent(trackPath, "utf-8", strGenFileContent); if (strGenResult == "0") { FireGeneratorFileFinished(trackPath); } } if (strGenResult == "0") { TrackUnit.RemoveUpdateRecord(0, trackPath); ShowMessage(string.Format("单页内容生成成功!<a href=\"{0}\" target=\"_blank\">{0}</a>", GetSiteRelativeUrl(strGenFilePath + strFileName + strFileExt))); } } else { ShowMessage("页面模板实体还原失败,请检查配置是否正确!"); } } #endregion } if (options != null && options.GenerateListPage == false) { ShowMessage("* 已禁止列表页生成!"); } else { #region 列表页面生成 if (tptConfig.GenerateListPage == true) { strFileExt = tptConfig.ListPageTemplet.FileNameConfig.FileExtentionName; tptConfig.ListPageTemplet.FileNameConfig.FileNameTag.SetResourceDependency(aWebChannel); strFileName = tptConfig.ListPageTemplet.FileNameConfig.FileNameTag.GetTagValue().ToString(); PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(tptConfig.ListPageTemplet.TempletID) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { strGenResult = ""; #region 根据模板内的列表动态生成多个页 if (pageTpt.IsMixedSyntax == false) { if (!pageTpt.SiteBaseDir.EndsWith("/")) { pageTpt.SiteBaseDir += "/"; } strGenResult = OleDbHelper.SetTextFileContent(strGenFilePath + strFileName + strFileExt, "utf-8", HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); if (strGenResult == "0") { FireGeneratorFileFinished(strGenFilePath + strFileName + strFileExt); ShowMessage(string.Format("文件生成成功!<a href=\"{0}\" target=\"_blank\">{0}</a>", GetSiteRelativeUrl(strGenFilePath + strFileName + strFileExt))); } } else { string realContent = "", myPageHtml = ""; TempletParse tpp = new TempletParse(); //获取要分页变化的模块内容(含Pager) //替换分页变化的内容 + 生成多页 tpp.Caller = this; tpp.SetResourceDependency(aWebChannel); tpp.TagTrack = new System.Collections.Generic.Dictionary <string, string>(); tpp.TagTrack.Add("T" + pageTpt.TempletID.ToString(), pageTpt.ModifiedTime.ToString("yyyyMMddHHmmss")); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); if (this.PagedObject == null) { myPageHtml = tpp.ParsedResult; //处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { myPageHtml = myPageHtml.Replace(pagerKey, ""); } } strGenFileContent = HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml); //插入Track代码 trackPath = GetSiteRelativeUrl(strGenFilePath + TagBase.TrimTagDefine(strFileName, '_', '-') + strFileExt); GetTrackHtmlInSertCode(tpp.TagTrack, trackPath, "</body>", ref strGenFileContent); strGenResult = OleDbHelper.SetTextFileContent(trackPath, "utf-8", strGenFileContent); if (strGenResult == "0") { FireGeneratorFileFinished(trackPath); } TrackUnit.RemoveUpdateRecord(0, trackPath); } else { string dynTpt = tpp.ParsedResult; PagedObject.SetResourceDependency(aWebChannel); while (PagedObject.CurrentPageIndex <= PagedObject.GetPageCount()) { #region 处理分页内容 realContent = PagedObject.GetCurrentPageContent(); //处理当前页内容 myPageHtml = dynTpt.Replace(PagedContentAlia, realContent); //处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { PagerTag Pager = PagerDic[pagerKey]; Pager.TotalRecordCount = PagedObject.GetTotalRecordCount(); Pager.CurrentPage = PagedObject.CurrentPageIndex; Pager.StartIndex = PagedObject.StartIndex; Pager.EndIndex = PagedObject.EndIndex; Pager.PageSize = PagedObject.PageSize; Pager.DefaultPageFormat = aWebChannel.StaticFileGenDir + strFileName.Replace("{#$CIDX$#}", "{0}") + strFileExt; //Util.Debug(false, Pager.ToString()); myPageHtml = myPageHtml.Replace(pagerKey, Pager.ToString()); //Util.Debug(false, this.PagerDic[pagerKey].OuterDefineText); } } int currentPage = PagedObject.CurrentPageIndex; string currentFileName = strFileName.Replace("{#$CIDX$#}", currentPage.ToString()); strGenFileContent = HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml); //插入Track代码 trackPath = GetSiteRelativeUrl(strGenFilePath + currentFileName + strFileExt); GetTrackHtmlInSertCode(tpp.TagTrack, trackPath, "</body>", ref strGenFileContent); strGenResult = OleDbHelper.SetTextFileContent(trackPath, "utf-8", strGenFileContent); //清除更新请求 TrackUnit.RemoveUpdateRecord(0, trackPath); if (strGenResult == "0") { FireGeneratorFileFinished(trackPath); ShowMessage(string.Format("列表页文件生成成功!<a href=\"{0}\" target=\"_blank\">{0}</a>", trackPath)); } if (currentPage == 1) { trackPath = strGenFilePath + currentFileName.Trim('1', '-', '_') + strFileExt; OleDbHelper.SetTextFileContent(trackPath, "utf-8", strGenFileContent); FireGeneratorFileFinished(trackPath); TrackUnit.RemoveUpdateRecord(0, trackPath); } PagedObject.MoveNextPage(); #endregion } } tpp.Dispose(); } #endregion if (strGenResult == "0") { ShowMessage("列表页内容生成成功完成。"); } } else { ShowMessage("页面模板实体还原失败,请检查配置是否正确!"); } } #endregion } if (options != null && options.GenerateDetailPage == false) { ShowMessage("* 已禁止详细内容页生成!"); } else { #region 详细页面生成 if (tptConfig.GenerateDetailPage == true) { strFileExt = tptConfig.DetailPageTemplet.FileNameConfig.FileExtentionName; PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(tptConfig.DetailPageTemplet.TempletID) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { if (pageTpt.IsMixedSyntax == false) { strFileName = tptConfig.DetailPageTemplet.FileNameConfig.FileNameTag.GetTagValue().ToString(); if (!pageTpt.SiteBaseDir.EndsWith("/")) { pageTpt.SiteBaseDir += "/"; } strGenResult = OleDbHelper.SetTextFileContent(strGenFilePath + strFileName + strFileExt, "utf-8", HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); if (strGenResult == "0") { FireGeneratorFileFinished(strGenFilePath + strFileName + strFileExt); } } else { TempletParse tpp = new TempletParse(); OleDbHelper hp = FanmaquerOleDbModule.GetOleDbInstance(FanmaquarConfig.ConnectionKey); DataTable dTab = hp.GetDataTable(string.Format("select * from Tbl_Articles where Pubed=True and Archived=false and TypeID={0} order by Sort asc,NewsID desc", aWebChannel.ChannelID)); if (dTab != null && dTab.Rows.Count > 0) { for (int i = 0; i < dTab.Rows.Count; i++) { AccessWebNews news = AccessWebNews.LoadFromDataRow(dTab.Rows[i]); tptConfig.DetailPageTemplet.FileNameConfig.FileNameTag.SetResourceDependency(news); strFileName = tptConfig.DetailPageTemplet.FileNameConfig.FileNameTag.GetTagValue().ToString(); MultiResDependency newsRes = new MultiResDependency(aWebChannel, news); tpp.SetResourceDependency(newsRes); tpp.TagTrack = new System.Collections.Generic.Dictionary <string, string>(); tpp.TagTrack.Add("T" + pageTpt.TempletID.ToString(), pageTpt.ModifiedTime.ToString("yyyyMMddHHmmss")); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); string newsfileWithFullPath = strGenFilePath + strFileName + strFileExt; if (news.VirtualPath.Length > 5) { newsfileWithFullPath = Util.ParseAppPath(news.VirtualPath); } else { news.VirtualPath = aWebChannel.StaticFileGenDir + strFileName + strFileExt; news.RefreshVirtualPath(); } strGenFileContent = HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, tpp.ParsedResult); //插入Track代码 trackPath = GetSiteRelativeUrl(newsfileWithFullPath); GetTrackHtmlInSertCode(tpp.TagTrack, trackPath, "</body>", ref strGenFileContent); strGenResult = OleDbHelper.SetTextFileContent(newsfileWithFullPath, "utf-8", strGenFileContent); if (strGenResult == "0") { TrackUnit.RemoveUpdateRecord(0, trackPath); FireGeneratorFileFinished(trackPath); ShowMessage(string.Format("内容页文件生成成功!<a href=\"{0}\" target=\"_blank\">{0}</a>", trackPath)); } } } tpp.Dispose(); } if (strGenResult == "0") { ShowMessage("详细页面内容生成成功完成。"); } } else { ShowMessage("页面模板实体还原失败,请检查配置是否正确!"); } } #endregion } } ShowMessage("已完成所有处理,如没有任何消息显示,这可能是该栏目没有内容或配置错误!"); ShowMessage("$end$"); } }
public void ProcessRequest(HttpContext context) { HttpRequest Request = context.Request; if (Util.IsNumerical(Request.QueryString["ChannelID"])) { AccessWebChannel aWebChannel = new AccessWebChannel(Int32.Parse(Request.QueryString["ChannelID"])); if (aWebChannel.IsFilled == false) { aWebChannel = (new AccessWebChannel()).GetInstanceById(aWebChannel.ChannelID) as AccessWebChannel; } if (aWebChannel != null && aWebChannel.IsExist == true && aWebChannel.IsFilled == true) { TempletSetting tptConfig = aWebChannel.TempletConfig; if (tptConfig == null) { ShowMessage("该频道没有配置模板,不能动态显示相关内容!"); return; } if (Request.QueryString["Action"] == "list") { if (tptConfig.GenerateListPage == true) { #region 列表页面生成 PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(tptConfig.ListPageTemplet.TempletID) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { #region 根据模板内的列表动态显示当前页内容 if (pageTpt.IsMixedSyntax == false) { DisplayContent(HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); return; } else { string realContent = "", myPageHtml = ""; TempletParse tpp = new TempletParse(); tpp.Caller = this; tpp.SetResourceDependency(aWebChannel); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); if (this.PagedObject == null) { myPageHtml = tpp.ParsedResult; //处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { myPageHtml = myPageHtml.Replace(pagerKey, ""); } } DisplayContent(HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml)); } else { string dynTpt = tpp.ParsedResult; string currentPageMatch = ""; PagedObject.SetResourceDependency(aWebChannel); if (Request.QueryString["Page"] != null && Util.IsMatch(@"^(\d+)$", Request.QueryString["Page"], 1, 1, PagedObject.GetPageCount(), out currentPageMatch)) { PagedObject.CurrentPageIndex = int.Parse(Request.QueryString["Page"]); } else { PagedObject.CurrentPageIndex = 1; } #region 显示分页内容 realContent = PagedObject.GetCurrentPageContent(); //处理当前页内容 myPageHtml = dynTpt.Replace(PagedContentAlia, realContent); //处理分页导航内容 if (this.PagerDic.Count > 0) { foreach (string pagerKey in PagerDic.Keys) { PagerTag Pager = PagerDic[pagerKey]; Pager.TotalRecordCount = PagedObject.GetTotalRecordCount(); Pager.CurrentPage = PagedObject.CurrentPageIndex; Pager.StartIndex = PagedObject.StartIndex; Pager.EndIndex = PagedObject.EndIndex; Pager.PageSize = PagedObject.PageSize; Pager.DefaultPageFormat = Request.ServerVariables["SCRIPT_NAME"] + "?ChannelID=" + aWebChannel.ChannelID.ToString() + "&action=list&Page={0}"; myPageHtml = myPageHtml.Replace(pagerKey, Pager.ToString()); } } DisplayContent(HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, myPageHtml)); #endregion } tpp.Dispose(); } #endregion } else { ShowMessage("页面模板实体还原失败,请检查配置是否正确!"); } #endregion } else { ShowMessage("没有可以直接查看的分页内容!"); } } else { if (tptConfig.GenerateSinglePage == true) { #region 单页综合生成 PageTemplet pageTpt = (new PageTemplet()).GetInstanceById(tptConfig.MixedSingleTemplet.TempletID) as PageTemplet; if (pageTpt != null && pageTpt.IsExist == true && pageTpt.IsFilled == true) { if (pageTpt.IsMixedSyntax == false) { DisplayContent(HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, pageTpt.TempletRawContent)); } else { TempletParse tpp = new TempletParse(); tpp.Caller = this; tpp.SetResourceDependency(aWebChannel); tpp.SetTaggedObjectCollection(pageTpt.TempletRawContent); DisplayContent(HtmlTextGenerator.GetRightHtmlText(pageTpt.SiteBaseDir, tpp.ParsedResult)); } } else { ShowMessage("页面模板实体还原失败,请检查配置是否正确!"); } #endregion } else { ShowMessage("没有可以直接查看的单页综合内容!"); } } } else { ShowMessage("频道资料无效!"); } } else { //根据ID找到频道、 应用频道模板、分析模板内容输出 if (Util.IsNumerical(Request.QueryString["ID"])) { ViewNews(Int32.Parse(Request.QueryString["ID"])); } else { ShowMessage("请指定要查看的动态内容!"); } } }