private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";" + "ASC.Files.Constants.DocsAPIundefined = \"{1}\";", PathProvider.GetFileServicePath, FilesCommonResource.DocsAPIundefined); if (!CoreContext.Configuration.Personal) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_MAIL_ACCOUNTS = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath("~/addons/mail/#accounts")); } var docServiceParams = new DocumentServiceParams { DocKeyForTrack = _docKeyForTrack, EditByUrl = _editByUrl, LinkToEdit = _linkToEdit, OpenHistory = RequestVersion != -1 && RequestView && !RequestHistoryClose && _configuration.Document.Info.File.Forcesave == ForcesaveType.None && !_configuration.Document.Info.File.Encrypted, OpeninigDate = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), ShareLinkParam = string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey, ServerErrorMessage = ErrorMessage, TabId = _tabId.ToString(), ThirdPartyApp = _thirdPartyApp, CanGetUsers = SecurityContext.IsAuthenticated && !CoreContext.Configuration.Personal, PageTitlePostfix = GetPageTitlePostfix() }; if (_configuration != null) { docServiceParams.FileId = _configuration.Document.Info.File.ID.ToString(); docServiceParams.FileProviderKey = _configuration.Document.Info.File.ProviderKey; docServiceParams.FileVersion = _configuration.Document.Info.File.Version; if (!string.IsNullOrEmpty(FileUtility.SignatureSecret)) { _configuration.EditorConfig.CallbackUrl = DocumentServiceTracker.GetCallbackUrl(_configuration.Document.Info.File.ID.ToString()); } _configuration.Token = DocumentServiceHelper.GetSignature(_configuration); } if (Request.DesktopApp() && SecurityContext.IsAuthenticated) { var user = CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID); docServiceParams.DisplayName = DisplayUserSettings.GetFullUserName(user); docServiceParams.Email = user.Email; } inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(docServiceParams)); inlineScript.AppendFormat("\nASC.Files.Editor.configurationParams = {0};", Services.DocumentService.Configuration.Serialize(_configuration)); InlineScripts.Scripts.Add(new Tuple <string, bool>(inlineScript.ToString(), false)); }
private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.Append("\n<script language=\"javascript\" type=\"text/javascript\" src=\"" + CommonLinkUtility.DocServiceApiUrl + "\"></script>"); inlineScript.Append("\n<script language=\"javascript\" type=\"text/javascript\">"); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";" + "ASC.Files.Constants.URL_HANDLER_SAVE = \"{1}\";" + "ASC.Files.Constants.URL_FILES_START = \"{2}\";" + "ASC.Files.Constants.REQUEST_TRACK_DELAY = {3};", PathProvider.GetFileServicePath, CommonLinkUtility.FileHandlerPath + UrlConstant.ParamsSave, CommonLinkUtility.FilesBaseAbsolutePath, FileLocker.EditTimeout.TotalMilliseconds); if (SecurityContext.IsAuthenticated && !CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor() || ItsTry) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_HANDLER_CREATE = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.FileHandlerPath)); } inlineScript.AppendFormat("\nASC.Files.Editor.fileSaveAsNew = \"{0}\";" + "ASC.Files.Editor.docKeyForTrack = \"{1}\";" + "ASC.Files.Editor.shareLinkParam = \"{2}\";" + "ASC.Files.Editor.serverErrorMessage = \"{3}\";" + "ASC.Files.Editor.editByUrl = ({4} == true);" + "ASC.Files.Editor.mustAuth = ({5} == true);" + "ASC.Files.Editor.lockVersion = ({6} == true);" + "ASC.Files.Editor.tabId = \"{7}\";", _fileNew ? "&" + UrlConstant.New + "=true" : "", _docKeyForTrack, string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + CommonLinkUtility.DocShareKey + "=" + RequestShareLinkKey, _errorMessage.HtmlEncode(), _editByUrl.ToString().ToLower(), (!SecurityContext.IsAuthenticated && ItsTry).ToString().ToLower(), _lockVersion.ToString().ToLower(), _tabId); if (_fileNew) { inlineScript.AppendFormat("\nASC.Files.Editor.options = {{ \"isEmpty\" : ({0} == true) }};", _fileNew.ToString().ToLower()); } else if (!string.IsNullOrEmpty(Request["options"])) { inlineScript.AppendFormat("\nASC.Files.Editor.options = {0};", Request["options"]); } inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(_docParams)); inlineScript.Append("</script>"); ScriptsPlaceHolder.Controls.Add(new Literal { Text = inlineScript.ToString() }); }
private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";" + "ASC.Files.Constants.URL_FILES_START = \"{1}\";", PathProvider.GetFileServicePath, FilesLinkUtility.FilesBaseAbsolutePath); if (SecurityContext.IsAuthenticated && !CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor()) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_HANDLER_CREATE = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath)); } inlineScript.AppendFormat("\nASC.Files.Editor.docKeyForTrack = \"{0}\";" + "ASC.Files.Editor.shareLinkParam = \"{1}\";" + "ASC.Files.Editor.serverErrorMessage = \"{2}\";" + "ASC.Files.Editor.editByUrl = ({3} == true);" + "ASC.Files.Editor.mustAuth = ({4} == true);" + "ASC.Files.Editor.fixedVersion = ({5} == true);" + "ASC.Files.Editor.tabId = \"{6}\";" + "ASC.Files.Editor.FileWebEditorExternalUrlString = \"{7}\";" + "ASC.Files.Editor.thirdPartyApp = ({8} == true);" + "ASC.Files.Editor.openinigDate = \"{9}\";" + "ASC.Files.Editor.newScheme = ({10} == true);", _docKeyForTrack, string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey, _errorMessage.HtmlEncode(), _editByUrl.ToString().ToLower(), (!SecurityContext.IsAuthenticated && ItsTry).ToString().ToLower(), _fixedVersion.ToString().ToLower(), _tabId, FilesLinkUtility.FileWebEditorExternalUrlString, ThirdPartyApp.ToString().ToLower(), DateTime.UtcNow, _newScheme.ToString().ToLower()); inlineScript.Append(BuildOptions()); inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(_docParams)); InlineScripts.Scripts.Add(new Tuple <string, bool>(inlineScript.ToString(), false)); AddCustomScript = ItsTry && CoreContext.Configuration.Personal && SetupInfo.CustomScripts.Length != 0; }
private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";", PathProvider.GetFileServicePath); if (!CoreContext.Configuration.Personal) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_MAIL_ACCOUNTS = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath("~/addons/mail/#accounts")); } var docServiceParams = new DocumentServiceParams { DocKeyForTrack = _docKeyForTrack, EditByUrl = _editByUrl, LinkToEdit = _linkToEdit, OpeninigDate = DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), ShareLinkParam = string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey, ServerErrorMessage = ErrorMessage, TabId = _tabId.ToString(), ThirdPartyApp = _thirdPartyApp, }; if (_configuration != null) { docServiceParams.FileId = _configuration.Document.Info.File.ID.ToString(); docServiceParams.FileProviderKey = _configuration.Document.Info.File.ProviderKey; docServiceParams.FileVersion = _configuration.Document.Info.File.Version; _configuration.Token = DocumentServiceHelper.GetSignature(_configuration); if (!string.IsNullOrEmpty(_configuration.Token)) { _configuration.EditorConfig.CallbackUrl = DocumentServiceTracker.GetCallbackUrl(_configuration.Document.Info.File.ID.ToString()); } } inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(docServiceParams)); inlineScript.AppendFormat("\nASC.Files.Editor.configurationParams = {0};", Services.DocumentService.Configuration.Serialize(_configuration)); InlineScripts.Scripts.Add(new Tuple <string, bool>(inlineScript.ToString(), false)); }
private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";" + "ASC.Files.Constants.URL_FILES_START = \"{1}\";", PathProvider.GetFileServicePath, FilesLinkUtility.FilesBaseAbsolutePath); if (SecurityContext.IsAuthenticated && !CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor()) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_HANDLER_CREATE = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath)); } inlineScript.AppendFormat("\nASC.Files.Editor.docKeyForTrack = \"{0}\";" + "ASC.Files.Editor.shareLinkParam = \"{1}\";" + "ASC.Files.Editor.serverErrorMessage = \"{2}\";" + "ASC.Files.Editor.editByUrl = ({3} == true);" + "ASC.Files.Editor.fixedVersion = ({4} == true);" + "ASC.Files.Editor.tabId = \"{5}\";" + "ASC.Files.Editor.FileWebEditorExternalUrlString = \"{6}\";" + "ASC.Files.Editor.thirdPartyApp = ({7} == true);" + "ASC.Files.Editor.openinigDate = \"{8}\";" + "ASC.Files.Editor.brandingLogoUrl = \"{9}\";" + "ASC.Files.Editor.brandingCustomerLogo = \"{10}\";", _docKeyForTrack, string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey, (_errorMessage ?? "").Replace("\"", "\\\""), _editByUrl.ToString().ToLower(), _fixedVersion.ToString().ToLower(), _tabId, FilesLinkUtility.FileWebEditorExternalUrlString, _thirdPartyApp.ToString().ToLower(), DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), CommonLinkUtility.GetFullAbsolutePath("~/TenantLogo.ashx?logotype=" + (int)CoBrandingLogoTypeEnum.DocsEditor), CommonLinkUtility.GetFullAbsolutePath("~/TenantLogo.ashx?logotype=" + (int)CoBrandingLogoTypeEnum.Dark)); inlineScript.Append(BuildOptions()); inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(_docParams)); InlineScripts.Scripts.Add(new Tuple <string, bool>(inlineScript.ToString(), false)); }
public static string Serialize(DocumentServiceParams docServiceParams) { return(System.Text.Json.JsonSerializer.Serialize(docServiceParams)); }
private void PageLoad() { var editPossible = !RequestEmbedded && !IsMobile; var isExtenral = false; File file; var fileUri = string.Empty; if (!ItsTry) { try { if (string.IsNullOrEmpty(RequestFileUrl)) { _fileNew = (Request["new"] ?? "") == "true"; var app = ThirdPartySelector.GetAppByFileId(RequestFileId); if (app == null) { var ver = string.IsNullOrEmpty(Request[FilesLinkUtility.Version]) ? -1 : Convert.ToInt32(Request[FilesLinkUtility.Version]); file = DocumentServiceHelper.GetParams(RequestFileId, ver, RequestShareLinkKey, _fileNew, editPossible, !RequestView, out _docParams); _fileNew = _fileNew && file.Version == 1 && file.ConvertedType != null && file.CreateOn == file.ModifiedOn; } else { isExtenral = true; bool editable; ThirdPartyApp = true; file = app.GetFile(RequestFileId, out editable); file = DocumentServiceHelper.GetParams(file, true, true, true, editable, editable, editable, out _docParams); _docParams.FileUri = app.GetFileStreamUrl(file); _docParams.FolderUrl = string.Empty; } } else { isExtenral = true; fileUri = RequestFileUrl; var fileTitle = Request[FilesLinkUtility.FileTitle]; if (string.IsNullOrEmpty(fileTitle)) { fileTitle = Path.GetFileName(HttpUtility.UrlDecode(fileUri)) ?? ""; } if (CoreContext.Configuration.Standalone) { try { var webRequest = WebRequest.Create(RequestFileUrl); using (var response = webRequest.GetResponse()) using (var responseStream = new ResponseStream(response)) { var externalFileKey = DocumentServiceConnector.GenerateRevisionId(RequestFileUrl); fileUri = DocumentServiceConnector.GetExternalUri(responseStream, MimeMapping.GetMimeMapping(fileTitle), externalFileKey); } } catch (Exception error) { Global.Logger.Error("Cannot receive external url for \"" + RequestFileUrl + "\"", error); } } file = new File { ID = RequestFileUrl, Title = Global.ReplaceInvalidCharsAndTruncate(fileTitle) }; file = DocumentServiceHelper.GetParams(file, true, true, true, false, false, false, out _docParams); _docParams.CanEdit = editPossible && !CoreContext.Configuration.Standalone; _editByUrl = true; _docParams.FileUri = fileUri; } } catch (Exception ex) { _errorMessage = ex.Message; return; } } else { FileType tryType; try { tryType = (FileType)Enum.Parse(typeof(FileType), Request[FilesLinkUtility.TryParam]); } catch { tryType = FileType.Document; } var path = "demo"; if (!IsMobile) { path = FileConstant.NewDocPath + CultureInfo.CurrentUICulture.TwoLetterISOLanguageName + "/"; if (!Global.GetStoreTemplate().IsDirectory(path)) { path = FileConstant.NewDocPath + "default/"; } path += "new"; } path += FileUtility.InternalExtension[tryType]; var store = Global.GetStoreTemplate(); fileUri = store.GetUri("", path).ToString(); var fileTitle = "Demo" + FileUtility.InternalExtension[tryType]; file = new File { ID = Guid.NewGuid(), Title = Global.ReplaceInvalidCharsAndTruncate(fileTitle) }; file = DocumentServiceHelper.GetParams(file, true, true, true, editPossible, editPossible, true, out _docParams); _docParams.FileUri = CommonLinkUtility.GetFullAbsolutePath(fileUri); _editByUrl = true; _docParams.Lang = CultureInfo.CurrentUICulture.Name; } if (_docParams.ModeWrite && FileConverter.MustConvert(file)) { try { file = FileConverter.ExecDuplicate(file, RequestShareLinkKey); } catch (Exception e) { _docParams = null; _errorMessage = e.Message; return; } var comment = "#message/" + HttpUtility.UrlEncode(FilesCommonResource.CopyForEdit); Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(file.ID) + comment); return; } Title = HeaderStringHelper.GetPageTitle(file.Title); _newScheme = FileUtility.ExtsNewService.Contains(FileUtility.GetFileExtension(file.Title)); if (_newScheme) { DocServiceApiUrl = FilesLinkUtility.DocServiceApiUrlNew; } if (string.IsNullOrEmpty(_docParams.FolderUrl)) { _docParams.FolderUrl = Request[FilesLinkUtility.FolderUrl] ?? ""; } if (MobileDetector.IsRequestMatchesMobile(true)) { _docParams.FolderUrl = string.Empty; } if (RequestEmbedded) { _docParams.Type = DocumentServiceParams.EditorType.Embedded; var shareLinkParam = "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey; _docParams.ViewerUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FilesBaseAbsolutePath + FilesLinkUtility.EditorPage + "?" + FilesLinkUtility.Action + "=view" + shareLinkParam); _docParams.DownloadUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath + "?" + FilesLinkUtility.Action + "=download" + shareLinkParam); _docParams.EmbeddedUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FilesBaseAbsolutePath + FilesLinkUtility.EditorPage + "?" + FilesLinkUtility.Action + "=embedded" + shareLinkParam); } else { _docParams.Type = IsMobile ? DocumentServiceParams.EditorType.Mobile : DocumentServiceParams.EditorType.Desktop; if (FileSharing.CanSetAccess(file)) { _docParams.SharingSettingsUrl = CommonLinkUtility.GetFullAbsolutePath(Share.Location + "?" + FilesLinkUtility.FileId + "=" + file.ID); } } if (!isExtenral) { _docKeyForTrack = DocumentServiceHelper.GetDocKey(file.ID, -1, DateTime.MinValue); if (!ItsTry) { FileMarker.RemoveMarkAsNew(file); } } if (_docParams.ModeWrite) { _tabId = FileTracker.Add(file.ID, _fileNew); _fixedVersion = FileTracker.FixedVersion(file.ID); if (ItsTry) { AppendAuthControl(); } } else { _docParams.LinkToEdit = _editByUrl ? CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebEditorExternalUrl(fileUri, file.Title)) : FileConverter.MustConvert(_docParams.File) || _newScheme ? CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebEditorUrl(file.ID)) : string.Empty; } if (CoreContext.Configuration.Personal && IsMobile) { _docParams.CanEdit = false; } }
private void InitScript() { var inlineScript = new StringBuilder(); inlineScript.AppendFormat("\nASC.Files.Constants.URL_WCFSERVICE = \"{0}\";", PathProvider.GetFileServicePath); if (!CoreContext.Configuration.Personal) { inlineScript.AppendFormat("\nASC.Files.Constants.URL_MAIL_ACCOUNTS = \"{0}\";", CommonLinkUtility.GetFullAbsolutePath("~/addons/mail/#accounts")); } if (SecurityContext.IsAuthenticated && !CoreContext.UserManager.GetUsers(SecurityContext.CurrentAccount.ID).IsVisitor()) { inlineScript.AppendFormat("ASC.Files.Constants.URL_HANDLER_CREATE = \"{0}\";" + "ASC.Files.Constants.TitleNewFileText = \"{1}\";" + "ASC.Files.Constants.TitleNewFileSpreadsheet = \"{2}\";" + "ASC.Files.Constants.TitleNewFilePresentation = \"{3}\";", CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath), FilesJSResource.TitleNewFileText, FilesJSResource.TitleNewFileSpreadsheet, FilesJSResource.TitleNewFilePresentation); } var isRetina = TenantLogoManager.IsRetina(Request); inlineScript.AppendFormat("\nASC.Files.Editor.brandingLogoUrl = \"{0}\";" + "ASC.Files.Editor.brandingLogoEmbeddedUrl = \"{1}\";" + "ASC.Files.Editor.brandingCustomerLogo = \"{2}\";" + "ASC.Files.Editor.brandingCustomer = \"{3}\";" + "ASC.Files.Editor.brandingSite = \"{4}\";", CommonLinkUtility.GetFullAbsolutePath(TenantLogoHelper.GetLogo(WhiteLabelLogoTypeEnum.DocsEditor, !isRetina)), CommonLinkUtility.GetFullAbsolutePath(TenantLogoHelper.GetLogo(WhiteLabelLogoTypeEnum.Dark, !isRetina)), CommonLinkUtility.GetFullAbsolutePath(TenantLogoHelper.GetLogo(WhiteLabelLogoTypeEnum.Dark, !isRetina)), (SettingsManager.Instance.LoadSettings <TenantWhiteLabelSettings>(TenantProvider.CurrentTenantID).LogoText ?? "").Replace("\\", "\\\\").Replace("\"", "\\\"").Replace("/", "\\/"), CompanyWhiteLabelSettings.Instance.Site); inlineScript.AppendFormat("\nASC.Files.Editor.docKeyForTrack = \"{0}\";" + "ASC.Files.Editor.shareLinkParam = \"{1}\";" + "ASC.Files.Editor.serverErrorMessage = \"{2}\";" + "ASC.Files.Editor.editByUrl = ({3} == true);" + "ASC.Files.Editor.fixedVersion = ({4} == true);" + "ASC.Files.Editor.tabId = \"{5}\";" + "ASC.Files.Editor.thirdPartyApp = ({6} == true);" + "ASC.Files.Editor.openinigDate = \"{7}\";", _docKeyForTrack, string.IsNullOrEmpty(RequestShareLinkKey) ? string.Empty : "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey, (_errorMessage ?? "").Replace("\n", "\\n").Replace("\r", "").Replace("\"", "\\\""), _editByUrl.ToString().ToLower(), _fixedVersion.ToString().ToLower(), _tabId, _thirdPartyApp.ToString().ToLower(), DateTime.UtcNow.ToString(CultureInfo.InvariantCulture)); if (!CoreContext.Configuration.Standalone) { inlineScript.AppendFormat("\nASC.Files.Editor.showAbout = true;" + "ASC.Files.Editor.feedbackUrl = \"{0}\";", AdditionalWhiteLabelSettings.Instance.FeedbackAndSupportEnabled ? CommonLinkUtility.GetRegionalUrl( AdditionalWhiteLabelSettings.Instance.FeedbackAndSupportUrl, CultureInfo.CurrentCulture.TwoLetterISOLanguageName) : string.Empty); } else if (_docParams != null) { inlineScript.AppendFormat("\nASC.Files.Editor.licenseUrl = \"{0}\";" + "ASC.Files.Editor.customerId = \"{1}\";", PathProvider.GetLicenseUrl(_docParams.File), LicenseReader.CustomerId); } inlineScript.Append(BuildOptions()); inlineScript.AppendFormat("\nASC.Files.Editor.docServiceParams = {0};", DocumentServiceParams.Serialize(_docParams)); InlineScripts.Scripts.Add(new Tuple <string, bool>(inlineScript.ToString(), false)); }
private void PageLoad() { var editPossible = !RequestEmbedded; var isExtenral = false; File file; var fileUri = string.Empty; try { if (string.IsNullOrEmpty(RequestFileUrl)) { _fileNew = (Request["new"] ?? "") == "true"; var app = ThirdPartySelector.GetAppByFileId(RequestFileId); if (app == null) { var ver = string.IsNullOrEmpty(Request[FilesLinkUtility.Version]) ? -1 : Convert.ToInt32(Request[FilesLinkUtility.Version]); file = DocumentServiceHelper.GetParams(RequestFileId, ver, RequestShareLinkKey, _fileNew, editPossible, !RequestView, out _docParams); _fileNew = _fileNew && file.Version == 1 && file.CreateOn == file.ModifiedOn; } else { isExtenral = true; bool editable; _thirdPartyApp = true; file = app.GetFile(RequestFileId, out editable); file = DocumentServiceHelper.GetParams(file, true, true, true, editable, editable, editable, editable, out _docParams); _docParams.FileUri = app.GetFileStreamUrl(file); _docParams.FolderUrl = string.Empty; } } else { isExtenral = true; fileUri = RequestFileUrl; var fileTitle = Request[FilesLinkUtility.FileTitle]; if (string.IsNullOrEmpty(fileTitle)) { fileTitle = Path.GetFileName(HttpUtility.UrlDecode(fileUri)) ?? ""; } if (CoreContext.Configuration.Standalone) { try { var webRequest = (HttpWebRequest)WebRequest.Create(RequestFileUrl); // hack. http://ubuntuforums.org/showthread.php?t=1841740 if (WorkContext.IsMono) { ServicePointManager.ServerCertificateValidationCallback += (s, ce, ca, p) => true; } using (var response = webRequest.GetResponse()) using (var responseStream = new ResponseStream(response)) { var externalFileKey = DocumentServiceConnector.GenerateRevisionId(RequestFileUrl); fileUri = DocumentServiceConnector.GetExternalUri(responseStream, MimeMapping.GetMimeMapping(fileTitle), externalFileKey); } } catch (Exception error) { Global.Logger.Error("Cannot receive external url for \"" + RequestFileUrl + "\"", error); } } file = new File { ID = RequestFileUrl, Title = Global.ReplaceInvalidCharsAndTruncate(fileTitle) }; file = DocumentServiceHelper.GetParams(file, true, true, true, false, false, false, false, out _docParams); _docParams.CanEdit = editPossible && !CoreContext.Configuration.Standalone; _docParams.CanReview = _docParams.CanEdit; _editByUrl = true; _docParams.FileUri = fileUri; } } catch (Exception ex) { Global.Logger.Error("DocEditor", ex); _errorMessage = ex.Message; return; } if (_docParams.ModeWrite && FileConverter.MustConvert(file)) { try { file = FileConverter.ExecDuplicate(file, RequestShareLinkKey); } catch (Exception ex) { _docParams = null; Global.Logger.Error("DocEditor", ex); _errorMessage = ex.Message; return; } var comment = "#message/" + HttpUtility.UrlEncode(FilesCommonResource.CopyForEdit); Response.Redirect(FilesLinkUtility.GetFileWebEditorUrl(file.ID) + comment); return; } Title = file.Title; if (string.IsNullOrEmpty(_docParams.FolderUrl)) { _docParams.FolderUrl = Request[FilesLinkUtility.FolderUrl] ?? ""; } if (MobileDetector.IsRequestMatchesMobile(true)) { _docParams.FolderUrl = string.Empty; } if (RequestEmbedded) { _docParams.Type = DocumentServiceParams.EditorType.Embedded; var shareLinkParam = "&" + FilesLinkUtility.DocShareKey + "=" + RequestShareLinkKey; _docParams.ViewerUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FilesBaseAbsolutePath + FilesLinkUtility.EditorPage + "?" + FilesLinkUtility.Action + "=view" + shareLinkParam); _docParams.DownloadUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FileHandlerPath + "?" + FilesLinkUtility.Action + "=download" + shareLinkParam); _docParams.EmbeddedUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.FilesBaseAbsolutePath + FilesLinkUtility.EditorPage + "?" + FilesLinkUtility.Action + "=embedded" + shareLinkParam); } else { _docParams.Type = IsMobile ? DocumentServiceParams.EditorType.Mobile : DocumentServiceParams.EditorType.Desktop; if (FileSharing.CanSetAccess(file)) { _docParams.SharingSettingsUrl = CommonLinkUtility.GetFullAbsolutePath(Share.Location + "?" + FilesLinkUtility.FileId + "=" + file.ID); } } if (!isExtenral) { _docKeyForTrack = DocumentServiceHelper.GetDocKey(file.ID, -1, DateTime.MinValue); FileMarker.RemoveMarkAsNew(file); } if (_docParams.ModeWrite) { _tabId = FileTracker.Add(file.ID, _fileNew); _fixedVersion = FileTracker.FixedVersion(file.ID); if (SecurityContext.IsAuthenticated) { _docParams.FileChoiceUrl = CommonLinkUtility.GetFullAbsolutePath(FileChoice.Location) + "?" + FileChoice.ParamFilterExt + "=xlsx&" + FileChoice.MailMergeParam + "=true"; _docParams.MergeFolderUrl = CommonLinkUtility.GetFullAbsolutePath(MailMerge.GetUrl); } } else { if (!RequestView && FileTracker.IsEditingAlone(file.ID)) { var editingBy = FileTracker.GetEditingBy(file.ID).FirstOrDefault(); _errorMessage = string.Format(FilesCommonResource.ErrorMassage_EditingMobile, Global.GetUserName(editingBy)); } _docParams.LinkToEdit = _editByUrl ? CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebEditorExternalUrl(fileUri, file.Title)) : CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebEditorUrl(file.ID)); if (FileConverter.MustConvert(_docParams.File)) { _editByUrl = true; } } }
private void PageLoad() { var editPossible = !RequestEmbedded && !IsMobile; var isExtenral = false; File file; var fileUri = string.Empty; if (!ItsTry) { try { if (string.IsNullOrEmpty(RequestFileUrl)) { _fileNew = !string.IsNullOrEmpty(Request[UrlConstant.New]) && Request[UrlConstant.New] == "true"; var ver = string.IsNullOrEmpty(Request[CommonLinkUtility.Version]) ? -1 : Convert.ToInt32(Request[CommonLinkUtility.Version]); file = DocumentServiceHelper.GetParams(RequestFileId, ver, RequestShareLinkKey, _fileNew, editPossible, !RequestView, out _docParams); _fileNew = file.Version == 1 && file.ConvertedType != null && _fileNew && file.CreateOn == file.ModifiedOn; } else { isExtenral = true; fileUri = RequestFileUrl; var fileTitle = Request[CommonLinkUtility.FileTitle]; if (string.IsNullOrEmpty(fileTitle)) { fileTitle = Path.GetFileName(HttpUtility.UrlDecode(fileUri)) ?? ""; } if (CoreContext.Configuration.Standalone) { try { var webRequest = WebRequest.Create(RequestFileUrl); using (var response = webRequest.GetResponse()) using (var responseStream = new ResponseStream(response)) { fileUri = DocumentServiceConnector.GetExternalUri(responseStream, MimeMapping.GetMimeMapping(fileTitle), "new"); } } catch (Exception error) { Global.Logger.Error("Cannot receive external url for \"" + RequestFileUrl + "\"", error); } } file = new File { ID = fileUri.GetHashCode(), Title = Global.ReplaceInvalidCharsAndTruncate(fileTitle) }; file = DocumentServiceHelper.GetParams(file, true, true, true, false, false, false, out _docParams); _docParams.CanEdit = editPossible && !CoreContext.Configuration.Standalone; _editByUrl = true; _docParams.FileUri = fileUri; } } catch (Exception ex) { _errorMessage = ex.Message; return; } } else { FileType tryType; try { tryType = (FileType)Enum.Parse(typeof(FileType), Request[CommonLinkUtility.TryParam]); } catch { tryType = FileType.Document; } var fileTitle = "Demo"; fileTitle += FileUtility.InternalExtension[tryType]; var relativeUri = string.Format(CommonLinkUtility.FileHandlerPath + UrlConstant.ParamsDemo, tryType); fileUri = new Uri(Request.Url, relativeUri).ToString(); file = new File { ID = Guid.NewGuid(), Title = Global.ReplaceInvalidCharsAndTruncate(fileTitle) }; file = DocumentServiceHelper.GetParams(file, true, true, true, editPossible, editPossible, true, out _docParams); _docParams.FileUri = fileUri; _editByUrl = true; } if (_docParams.ModeWrite && FileConverter.MustConvert(file)) { try { file = FileConverter.ExecDuplicate(file, RequestShareLinkKey); } catch (Exception e) { _docParams = null; _errorMessage = e.Message; return; } var comment = "#message/" + HttpUtility.UrlEncode(FilesCommonResource.CopyForEdit); Response.Redirect(CommonLinkUtility.GetFileWebEditorUrl(file.ID) + comment); return; } Title = HeaderStringHelper.GetPageTitle(file.Title); if (string.IsNullOrEmpty(_docParams.FolderUrl)) { _docParams.FolderUrl = Request[CommonLinkUtility.FolderUrl] ?? ""; } if (MobileDetector.IsRequestMatchesMobile(Context.Request.UserAgent, true)) { _docParams.FolderUrl = string.Empty; } if (RequestEmbedded) { _docParams.Type = DocumentServiceParams.EditorType.Embedded; var shareLinkParam = "&" + CommonLinkUtility.DocShareKey + "=" + RequestShareLinkKey; _docParams.ViewerUrl = CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.FilesBaseAbsolutePath + CommonLinkUtility.EditorPage + "?" + CommonLinkUtility.Action + "=view" + shareLinkParam); _docParams.DownloadUrl = CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.FileHandlerPath + "?" + CommonLinkUtility.Action + "=download" + shareLinkParam); _docParams.EmbeddedUrl = CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.FilesBaseAbsolutePath + CommonLinkUtility.EditorPage + "?" + CommonLinkUtility.Action + "=embedded" + shareLinkParam); } else { _docParams.Type = IsMobile ? DocumentServiceParams.EditorType.Mobile : DocumentServiceParams.EditorType.Desktop; if (FileSharing.CanSetAccess(file)) { _docParams.SharingSettingsUrl = CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.FilesBaseAbsolutePath + "share.aspx" + "?" + CommonLinkUtility.FileId + "=" + file.ID + "&" + CommonLinkUtility.FileTitle + "=" + HttpUtility.UrlEncode(file.Title)); } } if (!isExtenral) { _docKeyForTrack = DocumentServiceHelper.GetDocKey(file.ID, -1, DateTime.MinValue); if (!ItsTry) { FileMarker.RemoveMarkAsNew(file); } } if (_docParams.ModeWrite) { _tabId = FileLocker.Add(file.ID, _fileNew); _lockVersion = FileLocker.LockVersion(file.ID); if (ItsTry) { AppendAuthControl(); } } else { _docParams.LinkToEdit = _editByUrl ? CommonLinkUtility.GetFullAbsolutePath(string.Format(CommonLinkUtility.FileWebEditorExternalUrlString, HttpUtility.UrlEncode(fileUri), file.Title)) : FileConverter.MustConvert(_docParams.File) ? CommonLinkUtility.GetFullAbsolutePath(CommonLinkUtility.GetFileWebEditorUrl(file.ID)) : string.Empty; } if (CoreContext.Configuration.YourDocsDemo && IsMobile) { _docParams.CanEdit = false; } }