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(); }
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")); } }
public async Task <bool> CheckIfCorrect(KnowledgesModel model) { if (model.KnowledgeId > 0 || String.IsNullOrEmpty(model.KnowledgeName)) { return(false); } return(true); }
/// <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); } }
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); }
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); }
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); }
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()); }
/// <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)); }
/// <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)); }
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")); } }
/// <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)); }
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(); * });*/ }
/// <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); }
/// <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()) })); }
/// <summary> /// 更新一条数据. /// </summary> public void Update(KnowledgesModel model) { DBProvider.dbMapper.Update("Knowledges.Update", model); }
/// <summary> /// 增加一条数据. /// </summary> public void Add(KnowledgesModel model) { DBProvider.dbMapper.Insert("Knowledges.Insert", model); }