Exemplo n.º 1
0
        public static ConverterData StartCreationFileAsync(Invoice data)
        {
            using (var docxStream = GetStreamDocx(data))
            {
                var documentService = new DocumentService(StudioKeySettings.GetKey(), StudioKeySettings.GetSKey(), TenantStatisticsProvider.GetUsersCount());
                var revisionId = DocumentService.GenerateRevisionId(Guid.NewGuid().ToString());

                var crmStorageUrl = WebConfigurationManager.AppSettings["crm.invoice.url.storage"];
                if (string.IsNullOrEmpty(crmStorageUrl))
                {
                    crmStorageUrl = FilesLinkUtility.DocServiceStorageUrl;
                }

                var crmConverterUrl = WebConfigurationManager.AppSettings["crm.invoice.url.converter"];
                if (string.IsNullOrEmpty(crmConverterUrl))
                {
                    crmConverterUrl = FilesLinkUtility.DocServiceConverterUrl;
                }

                var externalUri = documentService.GetExternalUri(crmStorageUrl, docxStream, "text/plain", revisionId);

                string urlToFile;
                documentService.GetConvertedUri(crmConverterUrl, externalUri, FormatDocx, FormatPdf, revisionId, true, out urlToFile);

                return new ConverterData
                    {
                        ConverterUrl = crmConverterUrl,
                        StorageUrl = externalUri,
                        RevisionId = revisionId,
                        InvoiceId = data.ID,
                        UrlToFile = urlToFile
                    };
            }
        }
Exemplo n.º 2
0
 public void GetTrial()
 {
     if (CoreContext.Configuration.Standalone && string.IsNullOrEmpty(StudioKeySettings.GetSKey()))
     {
         TenantExtra.TrialRequest();
     }
 }
Exemplo n.º 3
0
        public static string GetExternalUri(Stream fileStream, string contentType, string documentRevisionId)
        {
            int timeout;

            Int32.TryParse(WebConfigurationManager.AppSettings["files.docservice.timeout"], out timeout);

            var docServiceConnector = new Web.Core.Files.DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount());

            if (timeout > 0)
            {
                docServiceConnector.Timeout = timeout;
            }
            try
            {
                return(docServiceConnector.GetExternalUri(
                           FilesLinkUtility.DocServiceStorageUrl,
                           fileStream,
                           contentType,
                           documentRevisionId));
            }
            catch (Exception ex)
            {
                throw CustomizeError(ex);
            }
        }
Exemplo n.º 4
0
        private static string GetUrlToFile(Stream docxStream)
        {
            var documentService = new DocumentService(StudioKeySettings.GetKey(), StudioKeySettings.GetSKey(), TenantStatisticsProvider.GetUsersCount());
            var revisionId = DocumentService.GenerateRevisionId(Guid.NewGuid().ToString());

            var crmStorageUrl = WebConfigurationManager.AppSettings["crm.invoice.url.storage"];
            if (string.IsNullOrEmpty(crmStorageUrl))
            {
                crmStorageUrl = FilesLinkUtility.DocServiceStorageUrl;
            }

            var crmConverterUrl = WebConfigurationManager.AppSettings["crm.invoice.url.converter"];
            if (string.IsNullOrEmpty(crmConverterUrl))
            {
                crmConverterUrl = FilesLinkUtility.DocServiceConverterUrl;
            }

            var externalUri = documentService.GetExternalUri(crmStorageUrl, docxStream, "text/plain", revisionId);
            log4net.LogManager.GetLogger("ASC.CRM").DebugFormat("PdfCreator. GetUrlToFile. externalUri = {0}", externalUri);

            string urlToFile;
            documentService.GetConvertedUri(crmConverterUrl, externalUri, FormatDocx, FormatPdf, revisionId, false, out urlToFile);

            log4net.LogManager.GetLogger("ASC.CRM").DebugFormat("PdfCreator. GetUrlToFile. urlToFile = {0}", urlToFile);
            return urlToFile;
        }
Exemplo n.º 5
0
        public static string CommandRequest(string method,
                                            string documentRevisionId,
                                            string callbackUrl,
                                            string userId,
                                            string status)
        {
            int timeout;

            Int32.TryParse(WebConfigurationManager.AppSettings["files.docservice.timeout"], out timeout);

            var docServiceConnector = new Web.Core.Files.DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount());

            if (timeout > 0)
            {
                docServiceConnector.Timeout = timeout;
            }
            try
            {
                return(docServiceConnector.CommandRequest(
                           FilesLinkUtility.DocServiceCommandUrl,
                           method,
                           documentRevisionId,
                           callbackUrl,
                           userId,
                           status));
            }
            catch (Exception e)
            {
                throw CustomizeError(e);
            }
        }
Exemplo n.º 6
0
        public static int GetConvertedUri(string documentUri,
                                          string fromExtension,
                                          string toExtension,
                                          string documentRevisionId,
                                          bool isAsync,
                                          out string convertedDocumentUri)
        {
            var docServiceConnector = new DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount())
            {
                ConvertTimeout = ConvertTimeout
            };

            try
            {
                return(docServiceConnector.GetConvertedUri(
                           DocumentConverterUrl,
                           documentUri,
                           fromExtension,
                           toExtension,
                           documentRevisionId,
                           isAsync,
                           out convertedDocumentUri));
            }
            catch (Exception e)
            {
                throw CustomizeError(e.Message);
            }
        }
Exemplo n.º 7
0
        private static string GetUrlToFile(Stream docxStream)
        {
            var documentService = new DocumentService(StudioKeySettings.GetKey(), StudioKeySettings.GetSKey(), TenantStatisticsProvider.GetUsersCount());
            var revisionId      = DocumentService.GenerateRevisionId(Guid.NewGuid().ToString());

            var externalUri = documentService.GetExternalUri(FilesLinkUtility.DocServiceStorageUrl, docxStream, "text/plain", revisionId);

            log4net.LogManager.GetLogger("ASC.CRM").DebugFormat("PdfCreator. GetUrlToFile. externalUri = {0}", externalUri);

            string urlToFile;

            documentService.GetConvertedUri(FilesLinkUtility.DocServiceConverterUrl, externalUri, FormatDocx, FormatPdf, revisionId, false, out urlToFile);

            log4net.LogManager.GetLogger("ASC.CRM").DebugFormat("PdfCreator. GetUrlToFile. urlToFile = {0}", urlToFile);
            return(urlToFile);
        }
        private static Web.Core.Files.DocumentService GetDocumentService()
        {
            int timeout;

            Int32.TryParse(WebConfigurationManager.AppSettings["files.docservice.timeout"], out timeout);

            var documentService = new Web.Core.Files.DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount());

            if (timeout > 0)
            {
                documentService.Timeout = timeout;
            }
            return(documentService);
        }
Exemplo n.º 9
0
        private static void TrackFile(HttpContext context)
        {
            var vkey   = context.Request["vkey"];
            var fileId = Common.Utils.Signature.Read <string>(vkey, StudioKeySettings.GetSKey());

            if (fileId == null)
            {
                Global.Logger.ErrorFormat("DocService track vkey error");
                throw new HttpException((int)HttpStatusCode.Forbidden, FilesCommonResource.ErrorMassage_SecurityException);
            }

            var isNew = (context.Request["new"] ?? "") == "true";

            Global.Logger.Debug("DocService track fileid: " + fileId);
            string body;

            try
            {
                using (var receiveStream = context.Request.InputStream)
                    using (var readStream = new StreamReader(receiveStream))
                    {
                        body = readStream.ReadToEnd();
                    }
            }
            catch (Exception e)
            {
                Global.Logger.Error("DocService track error read body", e);
                throw new HttpException((int)HttpStatusCode.BadRequest, e.Message);
            }

            string error;

            try
            {
                Global.Logger.Debug("DocService track body: " + body);
                error = DocumentServiceTracker.ProcessData(fileId, isNew, body);
            }
            catch (Exception e)
            {
                Global.Logger.Error("DocService track:", e);
                throw new HttpException((int)HttpStatusCode.BadRequest, e.Message);
            }

            context.Response.Write(string.Format("{{\"error\":{0}}}", (error ?? "0")));
        }
Exemplo n.º 10
0
        public static ASC.Files.Core.File GetConvertedFile(ConverterData data)
        {
            if (string.IsNullOrEmpty(data.ConverterUrl) || string.IsNullOrEmpty(data.StorageUrl) || string.IsNullOrEmpty(data.RevisionId))
            {
                return null;
            }
            
            var documentService = new DocumentService(StudioKeySettings.GetKey(), StudioKeySettings.GetSKey(), TenantStatisticsProvider.GetUsersCount());
            
            string urlToFile;
            documentService.GetConvertedUri(data.ConverterUrl, data.StorageUrl, FormatDocx, FormatPdf, data.RevisionId, true, out urlToFile);

            if (string.IsNullOrEmpty(urlToFile))
            {
                return null;
            }

            var invoice = Global.DaoFactory.GetInvoiceDao().GetByID(data.InvoiceId);

            return SaveFile(invoice, urlToFile);
        }
Exemplo n.º 11
0
        public static ConverterData StartCreationFileAsync(Invoice data)
        {
            using (var docxStream = GetStreamDocx(data))
            {
                var documentService = new DocumentService(StudioKeySettings.GetKey(), StudioKeySettings.GetSKey(), TenantStatisticsProvider.GetUsersCount());
                var revisionId      = DocumentService.GenerateRevisionId(Guid.NewGuid().ToString());

                var externalUri = documentService.GetExternalUri(FilesLinkUtility.DocServiceStorageUrl, docxStream, "text/plain", revisionId);

                string urlToFile;
                documentService.GetConvertedUri(FilesLinkUtility.DocServiceConverterUrl, externalUri, FormatDocx, FormatPdf, revisionId, true, out urlToFile);

                return(new ConverterData
                {
                    ConverterUrl = FilesLinkUtility.DocServiceConverterUrl,
                    StorageUrl = externalUri,
                    RevisionId = revisionId,
                    InvoiceId = data.ID,
                    UrlToFile = urlToFile
                });
            }
        }
        public static string GenerateValidateKey(string documentRevisionId)
        {
            var docServiceConnector = new Web.Core.Files.DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount());

            string userIp = null;

            try
            {
                if (HttpContext.Current != null)
                {
                    userIp = HttpContext.Current.Request.UserHostAddress;
                }
            }
            catch
            {
                userIp = string.Empty;
            }

            return(docServiceConnector.GenerateValidateKey(GenerateRevisionId(documentRevisionId), userIp));
        }
Exemplo n.º 13
0
        public static string GetExternalUri(Stream fileStream, string contentType, string documentRevisionId)
        {
            var docServiceConnector = new DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount())
            {
                ConvertTimeout = ConvertTimeout
            };

            try
            {
                return(docServiceConnector.GetExternalUri(
                           DocumentStorageUrl,
                           fileStream,
                           contentType,
                           documentRevisionId));
            }
            catch (Exception e)
            {
                throw CustomizeError(e.Message);
            }
        }
Exemplo n.º 14
0
        public static int GetConvertedUri(string documentUri,
                                          string fromExtension,
                                          string toExtension,
                                          string documentRevisionId,
                                          bool isAsync,
                                          out string convertedDocumentUri)
        {
            int timeout;

            Int32.TryParse(WebConfigurationManager.AppSettings["files.docservice.timeout"], out timeout);

            var docServiceConnector = new Web.Core.Files.DocumentService(
                StudioKeySettings.GetKey(),
                StudioKeySettings.GetSKey(),
                TenantStatisticsProvider.GetUsersCount());

            if (timeout > 0)
            {
                docServiceConnector.Timeout = timeout;
            }
            try
            {
                return(docServiceConnector.GetConvertedUri(
                           FilesLinkUtility.DocServiceConverterUrl,
                           documentUri,
                           fromExtension,
                           toExtension,
                           documentRevisionId,
                           isAsync,
                           out convertedDocumentUri));
            }
            catch (Exception ex)
            {
                throw CustomizeError(ex);
            }
        }
        public static bool StartTrack(string fileId, string docKeyForTrack, bool isNew)
        {
            var callbackUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath
                                                                    + "?" + FilesLinkUtility.Action + "=track"
                                                                    + "&vkey=" + HttpUtility.UrlEncode(Signature.Create(fileId, StudioKeySettings.GetSKey()))
                                                                    + "&new=" + isNew.ToString().ToLower());

            callbackUrl = DocumentServiceConnector.ReplaceCommunityAdress(callbackUrl);
            return(DocumentServiceConnector.Command(CommandMethod.Info, docKeyForTrack, fileId, callbackUrl));
        }