/// <summary>
        /// 编辑投稿
        /// </summary>
        /// <param name="ArticleID"></param>
        /// <returns></returns>
        public ActionResult MarkDownEditor(string ArticleID)
        {
            Article article = Article.GetArticleBySn(ArticleID);

            if (Session[ConstHelper.Session_USERID] == null)
            {
                return(Redirect("/Home/Index"));
            }
            if (Session[ConstHelper.Session_USERID].ToString() != article.OwnerId)
            {
                return(Redirect("/Home/Index"));
            }
            ViewBag.IsPrivate  = article.IsPrivate;
            ViewBag.FreeVolumn = UploadFile.GetFreeVolumnByAccountId(article.OwnerId);
            ViewData.Model     = ArticleContent.GetMarkDown(ArticleID, RevisionType.Draft);
            ViewBag.Title      = "编辑-" + article.Title;
            return(View());
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/json";
            string json = string.Empty;

            if (context.Session[ConstHelper.Session_USERID] == null)
            {
                var SessionTimeout = new
                {
                    success = ConstHelper.Fail,
                    message = "[保存失败]系统超时,请重新登陆",
                };
                json = JsonConvert.SerializeObject(SessionTimeout);
                context.Response.Write(json);
                return;
            }
            string  strArticleID = context.Request.Unvalidated.Form["ArticleID"];
            string  strMarkDown  = context.Request.Unvalidated.Form["Content"];
            Article article      = Article.GetArticleBySn(strArticleID);

            if (!article.OwnerId.Equals(context.Session[ConstHelper.Session_USERID].ToString()))
            {
                var NotTheOwner = new
                {
                    success = ConstHelper.Fail,
                    message = "[保存失败]你所编辑的文章的所有者和您的登陆用户不匹配",
                };
                json = JsonConvert.SerializeObject(NotTheOwner);
                context.Response.Write(json);
                return;
            }
            ArticleContent.SaveMarkDownVersion(strArticleID, strMarkDown, article.Sn, RevisionType.Draft);
            context.Response.ContentType = "text/json";
            string strfree = UploadFile.GetFreeVolumnByAccountId(context.Session[ConstHelper.Session_USERID].ToString());
            var    result  = new
            {
                success = ConstHelper.Success,
                message = "[保存成功]上次保存成功时间:" + System.DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") + ",剩余图片空间:" + strfree,
            };

            json = JsonConvert.SerializeObject(result);
            context.Response.Write(json);
        }
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/json";
            string ownerId   = context.Request["OwnerId"];
            string ArticleId = context.Request["ArticleId"];
            var    httpfile  = context.Request.Files[0];

            if (UploadFile.IsAboveLimit(httpfile.ContentLength, ownerId))
            {
                var AboveLimit = new
                {
                    success = ConstHelper.Fail,
                    message = "上传失败,上传资源超过最大值限制!!"
                };
                context.Response.Write(JsonConvert.SerializeObject(AboveLimit));
                return;
            }

            UploadFile upload = new UploadFile();

            upload.Size = httpfile.ContentLength;

            Image orgImage = Image.FromStream(httpfile.InputStream);

            //保存原图到七牛
            httpfile.InputStream.Position = 0;
            string strImage     = ConfigurationManager.AppSettings["Image"];
            var    Savefilename = string.Empty;

            switch (strImage)
            {
            case "QiNue":
                Savefilename = QiniuStorage.upload(httpfile, ownerId);
                break;

            case "Mongo":
                Savefilename = MongoStorage.InsertFile(httpfile, ownerId, "Image");
                break;

            case "FileSystem":
                Savefilename = FileSystemStorage.PutFile(httpfile, ownerId, "Image");
                break;
            }

            string ThumbnailUrl = "/FileSystem/Thumbnail?filename=" + Savefilename;
            string Thumbnail    = ConfigurationManager.AppSettings["Thumbnail"];

            if (httpfile.FileName.ToLower().EndsWith(".gif"))
            {
                //直接保存
                switch (Thumbnail)
                {
                case "Mongo":
                    MongoStorage.InsertFile(httpfile, ownerId, "Thumbnail");
                    break;

                case "FileSystem":
                    Savefilename = FileSystemStorage.PutFile(httpfile, ownerId, "Thumbnail");
                    break;
                }
                upload.SmallFileSize = upload.Size;
            }
            else
            {
                //这里是拉伸图片,将图片改为BMP(PDF和画面折衷后的决定)
                var BitmapImage = ImageHelper.ResizeImage(System.Math.Min(800, orgImage.Width), orgImage.Height, ImageHelper.ResizeMode.W, orgImage);
                //string Smallfilename = MongoStorage.InsertFile(httpfile, ownerId, "Bussiness");
                //返回的名字以DefaultOwnerId开始
                var SmallStream = StreamConvert.BytesToStream(StreamConvert.BitmapToBytes(BitmapImage, ImageFormat.Gif));
                //保存有时间差,所以使用上一步保存时候的文件名称
                //同时Stream关闭后无法获得长度,长度必须先写
                upload.SmallFileSize = (int)SmallStream.Length;
                switch (Thumbnail)
                {
                case "Mongo":
                    MongoStorage.InsertStreamWithFixFileName(SmallStream, Savefilename, "Thumbnail");
                    break;

                case "FileSystem":
                    FileSystemStorage.InsertStreamWithFixFileName(SmallStream, Savefilename, "Thumbnail");
                    break;
                }
            }


            upload.Name      = Savefilename;
            upload.ArticleID = ArticleId;
            UploadFile.InsertUploadFile(upload, ownerId);
            string strfree = UploadFile.GetFreeVolumnByAccountId(ownerId);
            var    result  = new
            {
                success = ConstHelper.Success,
                message = "上传成功,剩余图片空间:" + strfree,
                url     = ThumbnailUrl
            };
            string json = JsonConvert.SerializeObject(result);

            context.Response.Write(json);
        }