Beispiel #1
0
            //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);
                    }
                }
            }
Beispiel #2
0
 /// <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);
     }
 }
Beispiel #3
0
            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);
                }
            }
Beispiel #4
0
            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);
                }
            }
Beispiel #5
0
        /// <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];
        }
Beispiel #6
0
        /// <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;
        }
Beispiel #7
0
 /// <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;
     }
 }