public JsonResult DeleteUploaderFile(string path, int id, int taskId) { try { //insert page remove attachment if (id == 0) { System.IO.File.Delete(path); return(Json(new { message = "Xóa tập tin thành công!", success = true }, JsonRequestBehavior.AllowGet)); } if (repository.DeleteAttachment(id)) { var oldObj = repository.Attachments.Where(x => x.AttachmentID == id).FirstOrDefault(); var diff = CompareObjExtensions.DetailedCompare(oldObj, null, AccountHelper.GetCurrentUser(User.Identity.Name).UID, taskId, false); if (repository.SaveHistory(diff)) { System.IO.File.Delete(path); return(Json(new { message = "Xóa tập tin thành công!", success = true }, JsonRequestBehavior.AllowGet)); } } return(Json(new { message = "Có lỗi khi xóa tập tin!", success = false }, JsonRequestBehavior.AllowGet)); } catch { return(Json(new { message = "Có lỗi khi xóa tập tin!", success = false }, JsonRequestBehavior.AllowGet)); } }
public ActionResult InsertTask2(Worktask worktask) { // NOT ModelState.IsValid if (!ModelState.IsValid) { TempData["message"] = string.Format(GetModelErrorMessages(ModelState)); return(Json(new { taskId = 0, success = false, message = TempData["message"] }, JsonRequestBehavior.AllowGet)); } // ModelState.IsValid int currentUID = AccountHelper.GetCurrentUser(User.Identity.Name).UID; ElasticIndexService eService = new ElasticIndexService(); // Assign Current user AS Owner, Assignee, Reporter if (worktask.Owner == 0) { worktask.Owner = currentUID; } if (worktask.Assignee == 0) { worktask.Assignee = currentUID; } if (worktask.Reporter == 0) { worktask.Reporter = currentUID; } if (worktask.TaskType == 0) { worktask.TaskType = int.Parse(CategoryService.GetInstance().GetCategoryList(Contain.CatType.Category).ElementAt(1).Value); } if (worktask.Priority == 0) { worktask.Priority = int.Parse(CategoryService.GetInstance().GetCategoryList(Contain.CatType.Priority).ElementAt(1).Value); } string[] selectedtaskcodes = Request.Params.GetValues("RelatedTaskValue[]"); int relatedtaskmetatype = catRepository.Categories.Where(c => c.CatType == (int)Contain.CatType.MetaType && c.CategoryName.Equals("metastring")).FirstOrDefault().CatValue; var isNew = false; // Set relate task if (worktask.WorktaskID == 0) { isNew = true; worktask.BoardID = this.GetLastViewedBoardId(User.Identity.Name); // create workflow instance Board board = this.boardRepository.Get(worktask.BoardID); Workflow wf = board.Workflow; State firstState = wf.States.Where(s => s.Type == (int)Contain.StateType.Init).FirstOrDefault(); WorkflowInstance wfi = new WorkflowInstance() { WorkflowID = wf.ID, CurrentStateID = (firstState != null ? firstState.ID : 0) }; worktask.WorkflowInstance = wfi; worktask.Status = firstState.ID; } worktask.TaskMetas = new List <WorkTaskMetas>(); if (selectedtaskcodes != null && selectedtaskcodes.Length > 0) { foreach (string code in selectedtaskcodes) { worktask.TaskMetas.Add(new WorkTaskMetas() { MetaKey = "RelatedTask", MetaValue = code, MetaType = relatedtaskmetatype }); } } else { if (!isNew) { var oldObject = repository.Worktasks.Where(x => x.WorktaskID == worktask.WorktaskID).FirstOrDefault(); oldObject = repository.Detail(oldObject.WorktaskID); worktask.TaskMetas = oldObject.TaskMetas; } } //Save data if (!repository.SaveWorktask(worktask)) { TempData["message"] = string.Format("Lưu không thành công"); return(Json(new { taskId = 0, success = false, message = TempData["message"] }, JsonRequestBehavior.AllowGet)); } var diff = new List <TaskHistory>(); //save history worktask when create new if (isNew) { // Save data path for the new task string dataPathRoot = HostingEnvironment.MapPath(WebConfigurationManager.AppSettings["DataDirectoryRoot"]); string taskDataPath = Path.Combine(dataPathRoot, worktask.WorktaskID.ToString()); worktask.DataPath = taskDataPath; Directory.CreateDirectory(taskDataPath); diff = CompareObjExtensions.DetailedCompare(null, worktask, currentUID, worktask.WorktaskID, isNew); } repository.SaveHistory(diff); //Save attach files foreach (var item in worktask.Attachment) { var text = String.Empty; if (System.IO.File.Exists(item.StoredPath)) { text = new TextExtractor().Extract(item.StoredPath).Text; } item.Metadata = text.Replace("\r", string.Empty).Replace("\n", string.Empty); } if (repository.SaveAttachmentFile(worktask)) // << Cái này không save được thì có rolback không? { //save history diff = CompareObjExtensions.DetailedCompare(null, worktask.Attachment, currentUID, worktask.WorktaskID, isNew); if (!repository.SaveHistory(diff)) { TempData["message"] = string.Format("Lưu không thành công"); return(Json(new { taskId = 0, success = false, message = TempData["message"] }, JsonRequestBehavior.AllowGet)); } } // Save Index in Elastic eService.CreateSingleIndex(repository.Detail(worktask.WorktaskID)); TempData["message"] = string.Format("Thông tin công việc {0} lưu thành công!", worktask.Identify); return(Json(new { taskId = worktask.WorktaskID, success = true, redirectUrl = Url.Action("Detail", new { taskcode = worktask.Identify }) }, JsonRequestBehavior.AllowGet)); }
public ActionResult InsertTask(Worktask worktask) { int currentUID = AccountHelper.GetCurrentUser(User.Identity.Name).UID; ElasticIndexService eService = new ElasticIndexService(); Worktask oldObject = null; if (ModelState.IsValid) { var isNew = false; // Assign Current user AS Owner, Assignee, Reporter if (worktask.Owner == 0) { worktask.Owner = currentUID; } if (worktask.Assignee == 0) { worktask.Assignee = currentUID; } if (worktask.Reporter == null || worktask.Reporter == 0) { worktask.Reporter = currentUID; } if (worktask.TaskType == 0) { worktask.TaskType = int.Parse(CategoryService.GetInstance().GetCategoryList(Contain.CatType.Category).ElementAt(1).Value); } if (worktask.Priority == 0) { worktask.Priority = int.Parse(CategoryService.GetInstance().GetCategoryList(Contain.CatType.Priority).ElementAt(1).Value); } if (worktask.WorktaskID == 0) { isNew = true; worktask.BoardID = this.GetLastViewedBoardId(User.Identity.Name); worktask.TaskMetas = new List <WorkTaskMetas>(); worktask = WorktaskService.GetInstance().loadMetaInfoFromRequest(worktask, Request); worktask.loadMetaInfo(repository, accRepository); // create workflow instance Board board = this.boardRepository.Get(worktask.BoardID); Workflow wf = board.Workflow; State firstState = wf.States.Where(s => s.Type == (int)Contain.StateType.Init).FirstOrDefault(); WorkflowInstance wfi = new WorkflowInstance() { WorkflowID = wf.ID, CurrentStateID = (firstState != null ? firstState.ID : 0) }; worktask.WorkflowInstance = wfi; worktask.Status = firstState.ID; } else { worktask = WorktaskService.GetInstance().loadMetaInfoFromRequest(worktask, Request); worktask.loadMetaInfo(repository, accRepository); oldObject = repository.Worktasks.Where(x => x.WorktaskID == worktask.WorktaskID).FirstOrDefault(); oldObject = repository.Detail(oldObject.WorktaskID); oldObject.loadMetaInfo(repository, accRepository); } var diff = new List <TaskHistory>(); if (repository.SaveWorktask(worktask)) { //save history worktask when create new string action = "Cập nhật"; if (isNew) { // Save data path for the new task string dataPathRoot = HostingEnvironment.MapPath(WebConfigurationManager.AppSettings["DataDirectoryRoot"]); string taskDataPath = Path.Combine(dataPathRoot, worktask.WorktaskID.ToString()); worktask.DataPath = taskDataPath; Directory.CreateDirectory(taskDataPath); action = "Tạo mới"; } List <DiffInfo> diffInfos = worktask.Compare(oldObject); diff = CompareObjExtensions.GenerateDiff(action, diffInfos, currentUID, worktask.WorktaskID); repository.SaveHistory(diff); foreach (var item in worktask.Attachment) { var text = String.Empty; if (System.IO.File.Exists(item.StoredPath)) { text = new TextExtractor().Extract(item.StoredPath).Text; } item.Metadata = text.Replace("\r", string.Empty).Replace("\n", string.Empty); } if (repository.SaveAttachmentFile(worktask)) { //save history diff = CompareObjExtensions.DetailedCompare(null, worktask.Attachment, currentUID, worktask.WorktaskID, isNew); if (repository.SaveHistory(diff)) { // Save Index in Elastic eService.CreateSingleIndex(repository.Detail(worktask.WorktaskID)); TempData["message"] = string.Format("Thông tin công việc {0} lưu thành công!", worktask.Identify); return(Json(new { taskId = worktask.WorktaskID, attachment = worktask.Attachment.Select(x => new { AttachmentID = x.AttachmentID, Name = x.Name }), success = true, redirectUrl = Url.Action("Detail", new { taskcode = worktask.Identify }) }, JsonRequestBehavior.AllowGet)); } } // Save Index in Elastic eService.CreateSingleIndex(repository.Detail(worktask.WorktaskID)); TempData["message"] = string.Format("Thông tin công việc {0} lưu thành công!", worktask.Identify); return(Json(new { taskId = worktask.WorktaskID, success = true, redirectUrl = Url.Action("Detail", new { taskcode = worktask.Identify }) }, JsonRequestBehavior.AllowGet)); } TempData["message"] = string.Format("Lưu không thành công"); return(Json(new { taskId = 0, success = false, message = TempData["message"] }, JsonRequestBehavior.AllowGet)); } else { TempData["message"] = string.Format(GetModelErrorMessages(ModelState)); return(Json(new { taskId = 0, success = false, message = TempData["message"] }, JsonRequestBehavior.AllowGet)); } }