コード例 #1
0
        public async Task AddAsync(KnowledgesModel model)
        {
            var knowledge = KnowledgeToKnowledgeModel.ToKnowledge(model);

            List <Question> qr = new List <Question>();
            List <Answer>   ar;

            foreach (var i in knowledge.Questions)
            {
                ar = new List <Answer>();
                foreach (var j in i.Answers)
                {
                    ar.Add(new Answer {
                        AnswerString = j.AnswerString, CorrectAnswer = j.CorrectAnswer
                    });
                }

                qr.Add(new Question {
                    QuestionString = i.QuestionString, Answers = ar
                });
            }

            await UnitOfWork.KnowledgeRepository.AddAsync(new Knowledge { KnowledgeName = knowledge.KnowledgeName, Questions = qr });

            await UnitOfWork.SaveAsync();
        }
コード例 #2
0
        public async Task <ActionResult> Update(KnowledgesModel knowledgeModel)
        {
            try
            {
                if (knowledgeModel == null)
                {
                    return(BadRequest("Owner object is null"));
                }

                if (!ModelState.IsValid)
                {
                    return(BadRequest("Wrong input"));
                }
                var isValid = await KnowledgeService.IsValidForUpdate(knowledgeModel);

                if (!isValid)
                {
                    return(BadRequest("Wrong input"));
                }

                await KnowledgeService.UpdateAsync(knowledgeModel);

                return(NoContent());
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Internal server error"));
            }
        }
コード例 #3
0
        public async Task <bool> CheckIfCorrect(KnowledgesModel model)
        {
            if (model.KnowledgeId > 0 || String.IsNullOrEmpty(model.KnowledgeName))
            {
                return(false);
            }

            return(true);
        }
コード例 #4
0
 /// <summary>
 ///保存知识库
 /// </summary>
 /// <param name="model"></param>
 /// <param name="Files"></param>
 public void Save(KnowledgesModel model, HttpFileCollectionBase Files)
 {
     if (Files.Count > 0 && Files[0].ContentLength > 0)
     {
         int fileServerType = Convert.ToInt32(WebUtils.GetSettingsValue("WebFileType") == null ? "1" : WebUtils.GetSettingsValue("WebFileType"));
         HttpPostedFileBase file = Files[0];
         string             targetPath = WebUtils.GetSettingsValue("KnowledgesPDFFilePath");
         string             SwfFilePath = WebUtils.GetSettingsValue("KnowledgesSwfFilePath");
         string             targetFileName = StrUtils.GetUniqueFileName(null);
         string             targetFile = string.Format(@"{0}/{1}{2}", targetPath, targetFileName, Path.GetExtension(Files[0].FileName));
         string             targetSwfPath, pdfFilestr, srcSwfFile, tempFileName;
         AttachmentModel    attModel   = null;
         Stream             fileStream = null;
         try
         {
             attModel     = UtilsHelper.FileUpload(WebUtils.GetSettingsValue("WebFileServer"), Files[0], targetFile, (UtilConstants.ServerType)fileServerType);
             fileStream   = UtilsHelper.FileDownload(WebUtils.GetSettingsValue("WebFileServer"), attModel.FileVirtualPath, (UtilConstants.ServerType)fileServerType);
             tempFileName = Guid.NewGuid().ToString();
             pdfFilestr   = CommonUtils.GetPhysicsPath(string.Format("{0}/{1}.pdf", "/tempFile", tempFileName));
             ToolsLib.FileService.NormalFile.SaveInfoToFile(fileStream, pdfFilestr);
             srcSwfFile    = UtilsHelper.PdfToSwf(pdfFilestr, tempFileName + ".swf");
             targetSwfPath = string.Format("{0}/{1}.swf", Path.GetDirectoryName(attModel.FileVirtualPath).Replace("Pdf", "Swf"), Path.GetFileNameWithoutExtension(attModel.FileVirtualPath));
             if (fileServerType == 1)
             {
                 fileStream = new FileStream(srcSwfFile, FileMode.Open);
                 ToolsLib.FileService.NormalFile.SaveInfoToFile(fileStream, targetSwfPath);
             }
             else
             {
                 UtilsHelper.FileUpload(WebUtils.GetSettingsValue("WebFileServer"), srcSwfFile, targetSwfPath, (UtilConstants.ServerType)fileServerType);
             }
             File.Delete(pdfFilestr);
             File.Delete(srcSwfFile);
         }
         catch (Exception e)
         { }
         attModel.FileType = (int)Instrument.Common.Constants.AttachmentBusinessType.本地知识库.GetHashCode();
         attModel.UserId   = LoginHelper.LoginUser.UserId;
         attModel.UserName = LoginHelper.LoginUser.UserName;
         if (model.FileId != 0)//重新上传删除原来文件
         {
             Global.Business.ServiceProvider.AttachmentService.DeleteById(model.FileId);
         }
         Global.Business.ServiceProvider.AttachmentService.Save(attModel);
         model.FileId = attModel.FileId;//新文件位置
     }
     if (model.KnowledgeId == 0)
     {
         model.Creator = LoginHelper.LoginUser.UserName;
         DBProvider.KnowledgesDao.Add(model);
     }
     else
     {
         DBProvider.KnowledgesDao.Update(model);
     }
 }
コード例 #5
0
        public Knowledge ToKnowledge(KnowledgesModel result)
        {
            Knowledge krm = new Knowledge();

            krm.KnowledgeId   = result.KnowledgeId;
            krm.KnowledgeName = result.KnowledgeName;
            krm.Questions     = Mapper.Map <IEnumerable <QuestionsModel>, List <Question> >(result.Questions);
            //krm.AllTestId = result.AllTestId;
            return(krm);
        }
コード例 #6
0
        public async Task <bool> IsValidForUpdate(KnowledgesModel knowledge)
        {
            var result = await QuestionService.IsValidForUpdate(knowledge.Questions.ToList());

            if (!ContainsIdAsync(knowledge.KnowledgeId) || String.IsNullOrEmpty(knowledge.KnowledgeName) || !result)
            {
                return(false);
            }

            return(true);
        }
コード例 #7
0
        public KnowledgesModel ToKnowledgeModel(Knowledge result)
        {
            KnowledgesModel knowledgesModel = new KnowledgesModel();

            knowledgesModel.KnowledgeId   = result.KnowledgeId;
            knowledgesModel.KnowledgeName = result.KnowledgeName;
            var res = result.Questions.Where(j => j.KnowledgeId == result.KnowledgeId).Select(j => j);

            knowledgesModel.Questions = questionToQuestionModel.ToQuestionModel(res).ToList();

            return(knowledgesModel);
        }
コード例 #8
0
        public IEnumerable <KnowledgesModel> ToKnowledgeModel(IEnumerable <Knowledge> result)
        {
            List <KnowledgesModel> knowledgesModels = new List <KnowledgesModel>();

            foreach (var i in result)
            {
                KnowledgesModel knowledgesModel = new KnowledgesModel();
                knowledgesModel.KnowledgeId   = i.KnowledgeId;
                knowledgesModel.KnowledgeName = i.KnowledgeName;
                var res = i.Questions.Where(j => j.KnowledgeId == i.KnowledgeId).Select(j => j);
                knowledgesModel.Questions = questionToQuestionModel.ToQuestionModel(res).ToList();

                knowledgesModels.Add(knowledgesModel);
            }
            return(knowledgesModels.ToArray());
        }
コード例 #9
0
        /// <summary>
        /// 知识库明细
        /// </summary>
        /// <param name="knowledgeId"></param>
        /// <returns></returns>
        public ActionResult Details(string knowledgeId)
        {
            KnowledgesModel model = ServiceProvider.KnowledgesService.GetKnowledgeDetailInfo(UtilsHelper.Decrypt2Int(knowledgeId));
            //内容类型
            IList <Global.Common.Models.ParamModel> paramList = Global.Business.ServiceProvider.ParamService.GetAll();

            Global.Common.Models.ParamModel kType = paramList.SingleOrDefault(m => m.ParamCode.Equals(UtilConstants.SysParamType.KnowledgeType));
            ViewBag.KType = kType.itemsList.FirstOrDefault(s => s.ParamItemValue == String.Format("{0}", model.KType)).ParamItemName;

            //业务附件
            StringBuilder sb = new StringBuilder();

            sb.Append("[");
            if (model.swfFileByte != null && model.swfFileByte.Length > 0)
            {
                string swfFilePath = "/tempFile/" + Guid.NewGuid().ToString() + ".swf";
                ToolsLib.FileService.NormalFile.SaveInfoToFile(model.swfFileByte, swfFilePath);
                ViewBag.FilePath = swfFilePath;
            }
            else
            {
                ViewBag.FilePath = "";
            }
            int i = 1;

            if (model.businessAttachList != null)
            {
                foreach (Hashtable item in model.businessAttachList)
                {
                    sb.Append("[");
                    sb.AppendFormat("\"{0}\"", i++);
                    sb.AppendFormat(",\"<a href='#' onclick='fnDownLoad(this);' data-id='{0}'>{1}</a>\"", UtilsHelper.Encrypt(String.Format("{0}", item["FileId"])), item["FileName"]);
                    sb.Append("],");
                }
                if (model.businessAttachList.Count > 0)
                {
                    sb.Remove(sb.Length - 1, 1);
                }
            }
            sb.Append("]");
            ViewBag.Data = sb.ToString();
            return(View(model));
        }
コード例 #10
0
        /// <summary>
        /// 详细页面
        /// </summary>
        /// <param name="knowledgeId"></param>
        /// <returns></returns>
        public ActionResult Details(int knowledgeId)
        {
            KnowledgesModel             model     = new KnowledgesModel();
            string                      StrResult = WSProvider.EbusinessProvider.GetKnowledgeDetailInfo(knowledgeId, Global.Business.ServiceProvider.ParamService.GetaccessToken(Instrument.Common.Constants.SysParamType.CompanyInfo));
            Dictionary <string, object> dic       = ToolsLib.Utility.CommonUtils.JsonDeserialize(StrResult, typeof(Dictionary <string, object>)) as Dictionary <string, object>;
            StringBuilder               sb        = new StringBuilder();

            sb.Append("[");
            if (dic["Msg"].ToString() == "OK")
            {
                model = ToolsLib.Utility.CommonUtils.JsonDeserialize(dic["Data"].ToString(), typeof(KnowledgesModel)) as KnowledgesModel;
                if (model.swfFileByte != null && model.swfFileByte.Length > 0)
                {
                    string swfFilePath = "/tempFile/" + Guid.NewGuid().ToString() + ".swf";
                    ToolsLib.FileService.NormalFile.SaveInfoToFile(model.swfFileByte, swfFilePath);
                    ViewBag.FilePath = swfFilePath;
                }
                else
                {
                    ViewBag.FilePath = "";
                }
                int i = 1;
                if (model.businessAttachList != null)
                {
                    foreach (Hashtable item in model.businessAttachList)
                    {
                        sb.Append("[");
                        sb.AppendFormat("\"{0}\"", i++);
                        //sb.AppendFormat(",\"<a href='#' onclick='fnDownFile(this);return false;' filePath='{1}{2}' target='_blank'>{0}</a>\"", item["FileName"], item["FileAccessPrefix"], item["FileVirtualPath"]);
                        sb.AppendFormat(",\"<a href='{1}{2}' target='_blank'>{0}</a>\"", item["FileName"], item["FileAccessPrefix"], item["FileVirtualPath"]);
                        sb.Append("],");
                    }
                    if (model.businessAttachList.Count > 0)
                    {
                        sb.Remove(sb.Length - 1, 1);
                    }
                }
            }
            sb.Append("]");
            ViewBag.Data = sb.ToString();
            return(View(model));
        }
コード例 #11
0
        public async Task <ActionResult> Add([FromBody] KnowledgesModel knowledgeModel)
        {
            try
            {
                if (knowledgeModel == null)
                {
                    return(BadRequest("Model object is null"));
                }
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Wrong input"));
                }
                await KnowledgeService.AddAsync(knowledgeModel);

                return(CreatedAtRoute(new { name = knowledgeModel.KnowledgeName }, knowledgeModel));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, "Internal server error"));
            }
        }
コード例 #12
0
        /// <summary>
        /// 编辑
        /// </summary>
        /// <param name="knowledgeId"></param>
        /// <returns></returns>
        public ActionResult Edit(string knowledgeId)
        {
            KnowledgesModel model = new KnowledgesModel();

            if (knowledgeId != "0")
            {
                model = ServiceProvider.KnowledgesService.GetById(UtilsHelper.Decrypt2Int(knowledgeId));
            }
            //内容类型
            IList <Global.Common.Models.ParamModel> paramList = Global.Business.ServiceProvider.ParamService.GetAll();

            Global.Common.Models.ParamModel kType = paramList.SingleOrDefault(m => m.ParamCode.Equals(UtilConstants.SysParamType.KnowledgeType));
            ViewBag.KType = new SelectList(kType.itemsList, "ParamItemValue", "ParamItemName");

            if (model.FileId != 0)
            {
                AttachmentModel attach = Global.Business.ServiceProvider.AttachmentService.GetById(model.FileId);
                ViewBag.FileName = attach.FileName;
            }

            return(View(model));
        }
コード例 #13
0
        public async Task UpdateAsync(KnowledgesModel model)
        {
            var knowledge = KnowledgeToKnowledgeModel.ToKnowledge(model);
            var questions = Mapper.Map <IEnumerable <QuestionsModel>, List <Question> >(model.Questions.ToList());

            foreach (var i in questions)
            {
                foreach (var j in i.Answers)
                {
                    await Task.Run(() => UnitOfWork.AnswersRepository.Update(j));
                }
                await Task.Run(() => UnitOfWork.QuestionRepository.Update(i));
            }

            UnitOfWork.KnowledgeRepository.Update(knowledge);
            await UnitOfWork.SaveAsync();

            /*
             * return Task.Run(() => {
             *  UnitOfWork.KnowledgeRepository.Update(book);
             *  UnitOfWork.SaveAsync();
             * });*/
        }
コード例 #14
0
        /// <summary>
        ///  根据本地知识库标识获取知识库信息和业务附件表信息、PDF文件地址信息
        /// </summary>
        /// <param name="knowledgeId"></param>
        /// <returns></returns>
        public KnowledgesModel GetKnowledgeDetailInfo(int knowledgeId)
        {
            KnowledgesModel model = ServiceProvider.KnowledgesService.GetById(knowledgeId);
            //组装业务附件表信息
            IList <BusinessAttachmentModel> attachList = ServiceProvider.BusinessAttachmentService.GetByBusinessTypeAndId(Instrument.Common.Constants.AttachmentBusinessType.本地知识库.GetHashCode(), knowledgeId);

            if (attachList.Count > 0)
            {
                model.businessAttachList = new List <Hashtable>();
                foreach (BusinessAttachmentModel item in attachList)
                {
                    Hashtable       ht     = new Hashtable();
                    AttachmentModel attach = Global.Business.ServiceProvider.AttachmentService.GetById(item.FileId);
                    ht["FileId"]   = attach.FileId;
                    ht["FileName"] = attach.FileName;
                    model.businessAttachList.Add(ht);
                }
            }
            //组装flash文件地址信息
            if (model.FileId != 0)
            {
                AttachmentModel attach = Global.Business.ServiceProvider.AttachmentService.GetById(model.FileId);
                model.swfFileByte = new byte[] { };
                if (attach != null)
                {
                    string filepath;
                    filepath = string.Format("{0}/{1}.swf", Path.GetDirectoryName(attach.FileVirtualPath).Replace("Pdf", "Swf"), Path.GetFileNameWithoutExtension(attach.FileVirtualPath));
                    Stream stream = UtilsHelper.FileDownload(attach.FileAccessPrefix, filepath, (UtilConstants.ServerType)attach.FileServerType);
                    int    count  = Convert.ToInt32(stream.Length);
                    Byte[] bytes  = new Byte[count];
                    stream.Read(bytes, 0, count);
                    model.swfFileByte = bytes;
                }
            }
            return(model);
        }
コード例 #15
0
 /// <summary>
 /// 保存
 /// </summary>
 /// <param name="model"></param>
 /// <param name="collection"></param>
 /// <returns></returns>
 public ActionResult Save(KnowledgesModel model, FormCollection collection)
 {
     ServiceProvider.KnowledgesService.Save(model, Request.Files);
     return(Json(new { Msg = "OK", KnowledgeId = model.KnowledgeId, bkId = UtilsHelper.Encrypt(model.KnowledgeId.ToString()) }));
 }
コード例 #16
0
 /// <summary>
 /// 更新一条数据.
 /// </summary>
 public void Update(KnowledgesModel model)
 {
     DBProvider.dbMapper.Update("Knowledges.Update", model);
 }
コード例 #17
0
 /// <summary>
 /// 增加一条数据.
 /// </summary>
 public void Add(KnowledgesModel model)
 {
     DBProvider.dbMapper.Insert("Knowledges.Insert", model);
 }