Exemplo n.º 1
0
        public ActionResult ConfirmFile(string FileType, string ArticleKey, string CacheFileNames)
        {
            List <string> noErrorImg             = new List <string>();
            int           status                 = 1;
            string        msg                    = "";
            string        article_cachefile_root = Path.Combine(OctOcean.Utils.OctOceanGlobal.Config.FileRoot_Cache_Image, ArticleKey);

            //判断目标路径是否存在
            string article_sysfile_root = Path.Combine(OctOcean.Utils.OctOceanGlobal.Config.FileRoot_Web_Image, ArticleKey);

            if (!Directory.Exists(article_sysfile_root))
            {
                Directory.CreateDirectory(article_sysfile_root);
            }
            ;


            string[] farr = CacheFileNames.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries);
            OctOcean.DataService.Pri_ArticleImage_Dal imgdal = new DataService.Pri_ArticleImage_Dal();

            foreach (string fn in farr)
            {
                try
                {
                    string fullname = Path.Combine(article_cachefile_root, fn);
                    if (System.IO.File.Exists(fullname))
                    {
                        System.IO.File.Copy(fullname, Path.Combine(article_sysfile_root, fn), true);
                        //插入到图片表里面
                        imgdal.InsertPri_ArticleImage(new Entity.Pri_ArticleImage_Entity()
                        {
                            ArticleKey = ArticleKey,
                            Height     = 0,
                            Width      = 0,
                            ImgName    = fn,
                            ImgKey     = Path.GetFileNameWithoutExtension(fn),
                            Src        = $"{OctOceanGlobal.Config.UrlRoot_Web_Image}/{ArticleKey}/{fn}",
                            UpdateTime = DateTime.Now
                        });

                        noErrorImg.Add(fn);
                    }
                }
                catch (Exception ex)
                {
                    status = 4;
                    msg   += $"文件复制错误,文件名:{fn},异常信息:{ex.Message};\n";
                }
            }


            return(Json(new { status = status, msg = msg }));
        }
        //public IActionResult Index()
        //{
        //    string con = _iconfiguration.GetConnectionString("defaultConnStr");
        //    return View();
        //}



        /// <summary>
        /// 定时自动保存文章到Draft和Temp中去
        /// </summary>
        /// <param name="ArticleKey"></param>
        /// <param name="ArticleTitle"></param>
        /// <param name="ArticleCategory"></param>
        /// <param name="ContentText"></param>
        /// <param name="ArticleTag"></param>
        /// <param name="ArticleDesc"></param>
        /// <param name="AidStyle"></param>
        /// <returns></returns>
        public object Save(string ArticleKey, string ArticleTitle, string ArticleCategory, string ContentText, string ArticleTag, string ArticleDesc, string AidStyle)
        {
            int    _status   = 0;
            string _msg      = string.Empty;
            int    savecount = 0;

            //只用判断标题、样式、和内容
            if (ContentText != null)
            {
                var _cont = ContentText.Replace("<p>", "").Replace("<br>", "").Replace("</p>", "").Replace("</br>", ""); //去掉自带的样式
                if (string.IsNullOrWhiteSpace(_cont))
                {
                    ContentText = "";
                }
            }


            if (string.IsNullOrWhiteSpace(ArticleTitle) && string.IsNullOrWhiteSpace(ContentText) && string.IsNullOrWhiteSpace(ArticleDesc) && string.IsNullOrWhiteSpace(AidStyle))
            {
                _status = 3;
                _msg    = "未提交数据";
            }
            else
            {
                ContentText = new DataService.Pri_ArticleImage_Dal().ReplaceImagesPlaceholder(ContentText, ArticleKey);

                //将数据存入到Temp中去
                OctOcean.DataService.Pri_ArticleDraft_Temp_Dal tempdal = new DataService.Pri_ArticleDraft_Temp_Dal();
                try
                {
                    int oi = tempdal.InsertPri_ArticleDraft_Temp(new Entity.Pri_ArticleDraft_Temp_Entity()
                    {
                        ArticleKey      = ArticleKey,
                        ArticleTag      = ArticleTag ?? "",
                        ArticleDesc     = ArticleDesc ?? "",
                        AidStyle        = AidStyle ?? "",
                        ArticleCategory = ArticleCategory ?? "",
                        ArticleTitle    = ArticleTitle ?? "",
                        ContentText     = ContentText ?? "",
                        UpdateTime      = DateTime.Now
                    });
                    //如果有改动的话,就进行同步修改,注意:仍然要保存旧的删除的状态
                    if (oi > 0)
                    {
                        //查询一下之前旧的状态,是否删除
                        //删除的状态只能在执行删除或者还原的时候进行改变,此处仍然取旧的状态
                        var olddraft = draftdal.GetPri_ArticleDraft(ArticleKey);
                        //只有有旧的记录才更新
                        if (olddraft != null)
                        {
                            //必须在Draft中有这条记录修改才能生效,也就是说,只有点了保存按钮,产生了数据,才能够和temp数据进行关联,这样的话可以减少草稿内容(比如测试、或者打开页面没有做任何事情)的产生。
                            draftdal.UpdatePri_ArticleDraft(new Entity.Pri_ArticleDraft_Entity()
                            {
                                ArticleKey      = ArticleKey,
                                ArticleTag      = ArticleTag ?? "",
                                ArticleDesc     = ArticleDesc ?? "",
                                AidStyle        = AidStyle ?? "",
                                ArticleCategory = ArticleCategory ?? "",
                                ArticleTitle    = ArticleTitle ?? "",
                                ContentText     = ContentText ?? "",
                                DelStatus       = olddraft == null ? (byte)0 : olddraft.DelStatus,
                                UpdateTime      = DateTime.Now
                            });
                        }
                    }

                    //查询历史总次数
                    savecount = tempdal.GetSaveTempCountByArticleKey(ArticleKey);
                    _status   = 1;
                }
                catch (Exception ex)
                {
                    _status = 4;
                    _msg    = ex.Message;
                }
            }
            return(new { status = _status, msg = _msg, ak = ArticleKey, sc = savecount });
        }