Created
June 21, 2018 16:38
-
-
Save mathieu-benoit/caa3c4f69850e3ed9dc8db33cb91d884 to your computer and use it in GitHub Desktop.
LaToileElectronique
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Microsoft.Azure.WebJobs; | |
using Microsoft.Azure.WebJobs.Extensions.Http; | |
using Microsoft.Azure.WebJobs.Host; | |
using Newtonsoft.Json; | |
using System; | |
using System.Collections.Generic; | |
using System.Net; | |
using System.Net.Http; | |
using System.Text; | |
using System.Threading.Tasks; | |
namespace PublishWeeklyProgram | |
{ | |
public static class GenerateBlogArticle | |
{ | |
[FunctionName("GenerateBlogArticle")] | |
public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function, new string[] {"post"}, Route = null)] HttpRequestMessage req, TraceWriter log) | |
{ | |
GenerateBlogArticle.WeeklyProgram weeklyProgram = (GenerateBlogArticle.WeeklyProgram) JsonConvert.DeserializeObject<GenerateBlogArticle.WeeklyProgram>(await req.Content.ReadAsStringAsync()); | |
if (weeklyProgram == null) | |
return HttpRequestMessageExtensions.CreateResponse<string>(req, HttpStatusCode.BadRequest, (M0) "Please provide 'weeklyProgram' parameter."); | |
log.Info(string.Format("Current date: {0}", (object) weeklyProgram.Date), (string) null); | |
DateTime currentDate = DateTime.Parse(weeklyProgram.Date); | |
return HttpRequestMessageExtensions.CreateResponse(req, HttpStatusCode.OK, (M0) new | |
{ | |
url = GenerateBlogArticle.GetBlogArticleUrl(currentDate), | |
title = GenerateBlogArticle.GetBlogArticleTitle(currentDate), | |
content = GenerateBlogArticle.GetBlogArticleContent(weeklyProgram, currentDate) | |
}); | |
} | |
private static string GetBlogArticleUrl(DateTime currentDate) | |
{ | |
return string.Format("http://ckiafm.org/article/playlist-la-toile-electronique-{0}", (object) currentDate.ToString("dd-MM-yyyy")); | |
} | |
private static string GetBlogArticleTitle(DateTime currentDate) | |
{ | |
return string.Format("Playlist La Toile Électronique {0}", (object) currentDate.ToString("dd-MM-yyyy")); | |
} | |
private static string GetBlogArticleContent(GenerateBlogArticle.WeeklyProgram weeklyProgram, DateTime currentDate) | |
{ | |
StringBuilder builder = new StringBuilder(); | |
GenerateBlogArticle.FillBlogArticleHeaderContent(builder, weeklyProgram, currentDate); | |
GenerateBlogArticle.FillBlogArticleBodyContent(builder, weeklyProgram); | |
GenerateBlogArticle.FillBlogArticleFooterContent(builder); | |
return builder.ToString(); | |
} | |
private static void FillBlogArticleHeaderContent(StringBuilder builder, GenerateBlogArticle.WeeklyProgram weeklyProgram, DateTime currentDate) | |
{ | |
builder.Append(string.Format("Voici le podcast de notre émission du {0} de La Toile Électronique disponible en téléchargement <a href=\"{1}\">ici</a>.<br />", (object) currentDate.ToString("dd-MM-yyyy"), (object) weeklyProgram.PodcastLink)); | |
builder.Append(string.Format("Vous pouvez également retrouver cette playlist avec les vidéos clips associées <a href=\"{0}\">ici</a>.<br /><br />", (object) weeklyProgram.YouTubeLink)); | |
} | |
private static void FillBlogArticleBodyContent(StringBuilder builder, GenerateBlogArticle.WeeklyProgram weeklyProgram) | |
{ | |
foreach (GenerateBlogArticle.Piece piece in weeklyProgram.Pieces) | |
builder.Append(string.Format("<li>{0} - {1}</li>", (object) piece.Artist, (object) piece.Title)); | |
} | |
private static void FillBlogArticleFooterContent(StringBuilder builder) | |
{ | |
builder.Append("<br /><br />N'hésitez pas à nous suivre sur <a href=\"https://www.facebook.com/La-Toile-%C3%89lectronique-337325336715228/\">notre page Facebook</a> et sur <a href=\"https://www.youtube.com/channel/UCyqp95n-OdfkYfiKMW4nexg\">notre page YouTube</a>."); | |
} | |
public class WeeklyProgram | |
{ | |
public List<GenerateBlogArticle.Piece> Pieces { get; set; } | |
public string Date { get; set; } | |
public string PodcastLink { get; set; } | |
public string YouTubeLink { get; set; } | |
} | |
public class Piece | |
{ | |
public string Artist { get; set; } | |
public string Title { get; set; } | |
public string YouTube { get; set; } | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment