Beispiel #1
0
        private static async Task Get(HttpResponse res, int index)
        {
            var show = await Slides.LoadAsync();

            if (Interlocked.Exchange(ref _started, 1) == 0)
            {
                await StartOnline(show);
            }
            if (show.TryGetSlide(index, out var slide))
            {
                var backgroundImage = slide.Metadata.GetStringOrDefault("backgroundImage", show.Metadata.GetStringOrEmpty("backgroundImage"));
                var html            = Web.template_html.Utf8ToString()
                                      .Replace("{{title}}", slide.Metadata.GetStringOrDefault("title", show.Metadata.GetStringOrEmpty("title")))
                                      .Replace("{{layout}}", slide.Metadata.GetStringOrDefault("layout", show.Metadata.GetStringOrDefault("layout", "blank")))
                                      .Replace("{{inlineStyle}}", BackgroundStyle.Generate(backgroundImage))
                                      .Replace("{{content}}", slide.Html)
                                      .Replace("{{previousIndex}}", (index - 1).ToString(CultureInfo.InvariantCulture))
                                      .Replace("{{nextIndex}}", (index + 1).ToString(CultureInfo.InvariantCulture))
                                      .Replace("{{deckhub}}", _options.Api);

                res.ContentType = "text/html";
                res.StatusCode  = 200;
                await res.WriteAsync(html);

                return;
            }

            res.StatusCode = 404;
        }