public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = "documents")] HttpRequest req, [Table(RhzStorageTools.postsName, Connection = "AzureWebJobsStorage")] CloudTable postsTable, [Table(RhzStorageTools.siteDisplayName, Connection = "AzureWebJobsStorage")] CloudTable siteDisplayTable, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var getPostsQuery = RhzStorageTools.GenerateContentQuery <PostContent>(RhzStorageTools.techPostPk); var interestingLinksQuery = RhzStorageTools.GenerateContentQuery <LinkContent>(RhzStorageTools.interestingLinksPk); var dotnetLinksQuery = RhzStorageTools.GenerateContentQuery <LinkContent>(RhzStorageTools.dotNetLinksPk); var postListSegment = await postsTable.ExecuteQuerySegmentedAsync(getPostsQuery, null).ConfigureAwait(false); var iLinkSegment = await siteDisplayTable.ExecuteQuerySegmentedAsync(interestingLinksQuery, null).ConfigureAwait(false); var dLinkSegment = await siteDisplayTable.ExecuteQuerySegmentedAsync(dotnetLinksQuery, null).ConfigureAwait(false); var lists = postListSegment.Where(pl => pl.Published).Select(pc => new PostContentDto { Caption = pc.Caption, Preview = pc.Preview, BlobName = pc.BlobName, Published = pc.Published, PublishedOn = pc.PublishedOn, UpdatedOn = pc.UpdatedOn }); var hvm = new BasicContentViewModel { RequestPath = req?.Path.Value }; hvm.Lists.Add(RhzStorageTools.interestingLinksPk, iLinkSegment.Where(lc => lc.Published).Select(lc => new LinkContentDto { Caption = lc.Caption, Target = lc.Target, Url = lc.Url })); hvm.Lists.Add(RhzStorageTools.dotNetLinksPk, dLinkSegment.Where(lc => lc.Published).Select(lc => new LinkContentDto { Caption = lc.Caption, Target = lc.Target, Url = lc.Url })); hvm.Documents = lists; return(new OkObjectResult(hvm)); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = "about")] HttpRequest req, [Table(RhzStorageTools.siteDisplayName, Connection = "AzureWebJobsStorage")] CloudTable siteDisplayTable, IBinder binder, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); var interestingLinksQuery = RhzStorageTools.GenerateContentQuery <LinkContent>(RhzStorageTools.interestingLinksPk); var dotnetLinksQuery = RhzStorageTools.GenerateContentQuery <LinkContent>(RhzStorageTools.dotNetLinksPk); var mailStatusQuery = RhzStorageTools.GenerateContentQuery <LinkContent>(RhzStorageTools.mailStatusPk); var getAboutOp = TableOperation.Retrieve <DisplayContent>(RhzStorageTools.aboutPk, RhzStorageTools.aboutRk); var iLinkSegment = await siteDisplayTable.ExecuteQuerySegmentedAsync(interestingLinksQuery, null).ConfigureAwait(false); var dLinkSegment = await siteDisplayTable.ExecuteQuerySegmentedAsync(dotnetLinksQuery, null).ConfigureAwait(false); var mailstatusSegment = await siteDisplayTable.ExecuteQuerySegmentedAsync(mailStatusQuery, null).ConfigureAwait(false); var aboutData = await siteDisplayTable.ExecuteAsync(getAboutOp).ConfigureAwait(false); if (aboutData.Result == null) { return(new NotFoundResult()); } var aboutDisplay = (DisplayContent)aboutData.Result; var hvm = new BasicContentViewModel { RequestPath = req?.Path.Value }; var aboutText = string.Empty; if (aboutDisplay != null && aboutDisplay.Published) { aboutText = await RhzStorageTools.ReadTextFromBlob(binder, RhzStorageTools.siteCopyName, aboutDisplay.BlobName, "AzureWebJobsStorage").ConfigureAwait(false); } else { aboutText = aboutDisplay.HtmlContent ?? string.Empty; } hvm.Lists.Add(RhzStorageTools.interestingLinksPk, iLinkSegment.Where(lc => lc.Published).Select(lc => new LinkContentDto { Caption = lc.Caption, Target = lc.Target, Url = lc.Url })); hvm.Lists.Add(RhzStorageTools.dotNetLinksPk, dLinkSegment.Where(lc => lc.Published).Select(lc => new LinkContentDto { Caption = lc.Caption, Target = lc.Target, Url = lc.Url })); hvm.Lists.Add(RhzStorageTools.mailStatusPk, mailstatusSegment.Where(lc => lc.Published).Select(lc => new LinkContentDto { Caption = lc.Caption, Target = lc.Target, Url = lc.Url })); hvm.Content.Add(RhzStorageTools.aboutPk, aboutText); return((aboutDisplay != null) ? (ActionResult) new OkObjectResult(hvm) : new NotFoundResult()); }