//TODO: Uncomment //private void ResolveEditorPath(ResolveUrlEventArgs e) //{ // e.NewUrl = _serverView ? e.OldUrl : // "file:///" + Path.GetFullPath(HtmlEditor.EditorPath) + e.OldUrl.Substring(HtmlEditor.Folder.Length); //} private void ResolveImagePath(ResolveUrlEventArgs e) { var query = new Uri(e.NewUrl).Query; if (string.IsNullOrEmpty(query)) { return; } var parts = query.Split(new char[1] { '=' }); if (parts.Length < 2) { return; } if (query.StartsWith("?ID=")) { Guid id; if (Guid.TryParse(parts[1], out id)) { ResolveArticleFile(e, id); } } else if (query.StartsWith("?UserFileID=")) { int id; if (int.TryParse(parts[1], out id)) { ResolveUserFile(e, id); } } }
/// <summary> /// Raises the <see cref="E:ResolveUrl"/> event. /// </summary> /// <param name="e">The <see cref="System.ResolveEventArgs"/> instance containing the event data.</param> protected virtual void OnResolveUrl(ResolveUrlEventArgs e) { if (ResolveUrl != null) { ResolveUrl(this, e); } }
private void ResolveArticleFile(ResolveUrlEventArgs e, Guid id) { var file = KbContext.CurrentKb.ManagerFileInclude.GetByID(id); if (file != null) { e.NewUrl = "file:///" + Path.Combine(_articleFilesPath, file.FileName); } }
private void ResolveUserFile(ResolveUrlEventArgs e, int id) { var file = KbContext.CurrentKb.ManagerUserFile.GetByID(id); if (file != null) { e.NewUrl = "file:///" + Path.Combine(_userFilesPath, file.FileName); } }
/// <summary> /// Raises the <see cref="E:ResolveUrl"/> event. /// </summary> /// <param name="e">The <see cref="System.ResolveEventArgs"/> instance containing the event data.</param> protected override void OnResolveUrl(ResolveUrlEventArgs e) { base.OnResolveUrl(e); if (_uploadedFiles.ContainsKey(e.NewUrl)) { e.NewUrl = _uploadedFiles[e.NewUrl]; return; } if (!FileDownloadRequired(e.TagInfo)) { return; } _uploadedFiles.Add(e.NewUrl, DownloadDependencyFile(e.NewUrl)); e.NewUrl = _uploadedFiles[e.NewUrl]; }
/// <summary> /// Processes the tag. /// </summary> /// <param name="tag">The tag.</param> protected virtual void ProcessTag(TagInfo tag) { if (!tag.HasFileReference) { return; } var args = new ResolveUrlEventArgs { TagInfo = tag, OldUrl = tag.FileRerefenceAttribute.FileReferenceUrl }; args.NewUrl = ResolveUrlInternal(args.OldUrl); OnResolveUrl(args); tag.FileRerefenceAttribute.FileReferenceUrl = args.NewUrl; }
/// <summary> /// Raises the <see cref="E:ResolveUrl"/> event. /// </summary> /// <param name="e">The <see cref="System.ResolveEventArgs"/> instance containing the event data.</param> protected override void OnResolveUrl(ResolveUrlEventArgs e) { if (e.OldUrl.StartsWith("/KnowledgeBase/Image.ashx")) { ResolveImagePath(e); return; } //TODO: Uncomment //if (e.OldUrl.StartsWith(HtmlEditor.Folder + "\\")) //{ // ResolveEditorPath(e); // return; //} if (e.OldUrl.StartsWith(AppCore.Settings.ContentFolder + "\\")) { e.NewUrl = _serverView ? e.OldUrl : string.Format("file:///{0}{1}", AppCore.Settings.ContentPath, e.OldUrl.Substring(AppCore.Settings.ContentFolder.Length)); return; } }