public static bool BuildPreview(string temporaryDirectory, string sourceFile, string mimetype, int width, int height, out string previewMimetype, out string previewPath, out string error)
        {
            IPreview preview = null;
            bool     success = false;

            previewMimetype = null;
            previewPath     = null;
            error           = null;

            if (mimetype.StartsWith("image/", System.StringComparison.InvariantCulture) ||
                mimetype.StartsWith("video/", System.StringComparison.InvariantCulture) ||
                mimetype.StartsWith("audio/", System.StringComparison.InvariantCulture))
            {
                preview = new ImageVideoPreview(temporaryDirectory);
            }
            else if (mimetype == "application/pdf")
            {
                preview = new PdfPreview(temporaryDirectory);
            }
            else if (mimetype == "text/uri-list")
            {
                preview = new UrlPreview(temporaryDirectory);
            }
            //else if (mimetype == "application/x-laclasse-pad")
            //    preview = new HtmlPreview(temporaryDirectory);

            if (preview != null)
            {
                previewPath = preview.Process(sourceFile, mimetype, width, height, out PreviewFormat format, out error);
                if (previewPath != null)
                {
                    if (format == PreviewFormat.PNG)
                    {
                        previewMimetype = "image/png";
                    }
                    else
                    {
                        previewMimetype = "image/jpeg";
                    }
                    success = true;
                }
                else
                {
                    success = false;
                }
            }
            return(success);
        }
        /// <summary>
        /// Get the URLs from the frontend.
        /// </summary>
        /// <param name="id">
        /// The id.
        /// </param>
        /// <returns>
        /// The <see cref="IEnumerable"/>.
        /// </returns>
        public ActionResult GetUrls(int id)
        {
            var urls = new List <string>();

            if (id > 0)
            {
                urls.Add(this.UmbracoContext.UrlProvider.GetUrl(id));
                urls.AddRange(this.UmbracoContext.UrlProvider.GetOtherUrls(id));
            }

            var urlPreview = new UrlPreview
            {
                IsPreview = this.UmbracoContext.InPreviewMode,
                Urls      = urls
            };

            return(this.Json(urlPreview, JsonRequestBehavior.AllowGet));
        }
Exemple #3
0
        private async Task Preview(string url)
        {
            PreviewResult preview;

            try
            {
                var previewer = new UrlPreview(url);
                preview = await previewer.GetPreviewAsync();
            }
            catch (UriFormatException)
            {
                InvalidUrl();
                return;
            }

            var serialized = JsonConvert.SerializeObject(preview, Formatting.Indented);

            Console.WriteLine(serialized);
        }