private string GetFileUrl(ViewDocumentParameters request)
 {
     return GetFileUrl(request.Path, false, false, request.FileDisplayName);
 }
 private string GetPdfDownloadUrl(ViewDocumentParameters request)
 {
     return GetFileUrl(request.Path, true, false, request.FileDisplayName,
         request.IgnoreDocumentAbsence,
         request.UseHtmlBasedEngine);
 }
        public ActionResult ViewDocument(ViewDocumentParameters request)
        {
            string fileName = Path.GetFileName(request.Path);

            ViewDocumentResponse result = new ViewDocumentResponse
            {
                pageCss = new string[] { },
                lic = true,
                pdfDownloadUrl = GetPdfDownloadUrl(request),
                url = GetFileUrl(request),
                path = request.Path,
                name = fileName
            };

            DocumentInfoContainer docInfo = annotator.GetDocumentInfo(request.Path);
            result.documentDescription = new FileDataJsonSerializer(docInfo.Pages).Serialize(true);
            result.docType = docInfo.DocumentType.ToLower();
            result.fileType = docInfo.FileType.ToLower();

            string applicationHost = Request.Url.Scheme + "://" + Request.Url.Authority + Request.ApplicationPath.TrimEnd('/');

            var preloadCount = request.PreloadPagesCount;
            int pageCount = preloadCount ?? 1;
            int[] pageNumbers = new int[docInfo.Pages.Count];
            for (int i = 0; i < pageNumbers.Length; i++)
            {
                pageNumbers[i] = i;

            }

            GetImageUrlsParameters imageUrlParameters = new GetImageUrlsParameters()
            {
                Path = request.Path,
                FirstPage = 0,
                PageCount = pageNumbers.Length,
                UsePdf = docInfo.Extension.ToLower().Equals("pdf"),
                Width = docInfo.Pages[0].Width,
                SupportPageRotation = false,
                UseHtmlBasedEngine = false
            };

            result.imageUrls = GetImageUrls(applicationHost, pageNumbers, imageUrlParameters);

            //result.imageUrls = urls.ToArray();

            JavaScriptSerializer serializer = new JavaScriptSerializer { MaxJsonLength = int.MaxValue };

            string serializedData = serializer.Serialize(result);

            // invoke event
            new DocumentOpenSubscriber().HandleEvent(request.Path);

            return Content(serializedData, "application/json");
        }