public JsonResult DoneTaskRun(int idtaskrun, string valuetext, string valuefile, HttpPostedFileBase fileupload, string comment, bool isEdit) { string IdUser = User.Identity.GetUserId(); HttpStatusCode status = HttpStatusCode.OK; string message; object response; TaskProcessRun taskrun = taskService.findTaskRun(idtaskrun); if (taskrun == null) { status = HttpStatusCode.NotFound; message = "TaskRun Not Found"; response = new { message = message, status = status }; SetFlash(FlashType.error, message); return(Json(response, JsonRequestBehavior.AllowGet)); } List <RoleRun> listrole = roleService.findlistrolerunbyidroleprocess(taskrun.IdRole); Participate user = participateService.findMemberInGroup(IdUser, taskrun.StepRun.ProcessRun.Process.IdGroup); bool haveRole = false; foreach (RoleRun role in listrole) { if (IdUser == role.IdUser) { haveRole = true; break; } } if (user.IsManager == true || haveRole) { taskService.submitTask(IdUser, valuetext, valuefile, idtaskrun, true); int groupid = taskrun.StepRun.ProcessRun.Process.IdGroup; string taskRunPath = string.Format("Upload/{0}/run/{1}/{2}/{3}", groupid, taskrun.StepRun.ProcessRun.Id, taskrun.StepRun.Id, taskrun.Id); if (!isEdit) { fileService.removeDirectory(taskRunPath); fileService.createDirectory(taskRunPath); fileService.saveFile(groupid, fileupload, taskRunPath, Direction.TaskRun); } if (comment.Trim() != "") { Comment cm = new Comment(); cm.IdUser = IdUser; cm.IdDirection = taskrun.Id; cm.Direction = Direction.TaskRun.ToString(); cm.Content = comment; cm.isAction = true; cm.Create_At = DateTime.Now; cm.Update_At = DateTime.Now; db.Comments.Add(cm); db.SaveChanges(); } } message = "Submit Task Successfully"; response = new { message = message, status = status }; SetFlash(FlashType.success, message); return(Json(response, JsonRequestBehavior.AllowGet)); }
public JsonResult SubmitOpenTask(int idtask, string comment) { HttpStatusCode status = HttpStatusCode.OK; string message; object response; string IdUser = User.Identity.GetUserId(); TaskProcessRun taskrun = taskService.findTaskRun(idtask); taskService.submitopentask(taskrun.Id); if (comment.Trim() != "") { Comment cm = new Comment(); cm.IdUser = IdUser; cm.IdDirection = taskrun.Id; cm.Direction = Direction.TaskRun.ToString(); cm.Content = comment; cm.isAction = true; cm.Create_At = DateTime.Now; cm.Update_At = DateTime.Now; db.Comments.Add(cm); db.SaveChanges(); } message = "Open Task Sucessfully"; response = new { message = message, status = status }; SetFlash(FlashType.success, message); return(Json(response, JsonRequestBehavior.AllowGet)); }
public void submitopentask(int idtaskrun) { Status status = db.Status.Where(y => y.Name == "Open").FirstOrDefault(); TaskProcessRun taskrun = findTaskRun(idtaskrun); taskrun.Status = status.Id; taskrun.Updated_At = DateTime.Now; db.SaveChanges(); }
public void submitclosetask(int idtaskrun, string iduserby) { Status status = db.Status.Where(y => y.Name == "Finish").FirstOrDefault(); TaskProcessRun taskrun = findTaskRun(idtaskrun); taskrun.Status = status.Id; taskrun.ApproveBy = iduserby; taskrun.Approve_At = DateTime.Now; taskrun.Updated_At = DateTime.Now; db.SaveChanges(); }
public void submitTaskForm(string iduserby, int idtaskrun, string formrender, bool isDone = false) { TaskProcessRun taskform = findTaskRun(idtaskrun); taskform.ValueFormJson = formrender; if (isDone) { Status status = db.Status.Where(y => y.Name == "Done").FirstOrDefault(); taskform.Status = status.Id; taskform.DoneBy = iduserby; taskform.Done_At = DateTime.Now; } taskform.Updated_At = DateTime.Now; db.SaveChanges(); }
public JsonResult SaveTaskRun(int idtaskrun, string valuetext, string valuefile, HttpPostedFileBase fileupload, bool isEdit) { //TODO: Chưa phân quyền string IdUser = User.Identity.GetUserId(); HttpStatusCode status = HttpStatusCode.OK; string message; object response; TaskProcessRun taskrun = taskService.findTaskRun(idtaskrun); if (taskrun == null) { status = HttpStatusCode.NotFound; message = "TaskRun Not Found"; response = new { message = message, status = status }; SetFlash(FlashType.error, message); return(Json(response, JsonRequestBehavior.AllowGet)); } List <RoleRun> listrole = roleService.findlistrolerunbyidroleprocess(taskrun.IdRole); Participate user = participateService.findMemberInGroup(IdUser, taskrun.StepRun.ProcessRun.Process.IdGroup); bool haveRole = false; foreach (RoleRun role in listrole) { if (IdUser == role.IdUser) { haveRole = true; break; } } if (user.IsManager == true || haveRole) { taskService.submitTask(IdUser, valuetext, valuefile, idtaskrun); int groupid = taskrun.StepRun.ProcessRun.Process.IdGroup; string taskRunPath = string.Format("Upload/{0}/run/{1}/{2}/{3}", groupid, taskrun.StepRun.ProcessRun.Id, taskrun.StepRun.Id, taskrun.Id); if (!isEdit) { fileService.emptyDirectory(taskRunPath); } fileService.createDirectory(taskRunPath); fileService.saveFile(groupid, fileupload, taskRunPath, Direction.TaskRun); } message = "Save Task Successfully"; response = new { message = message, status = status }; SetFlash(FlashType.success, "Save Task Successfully"); return(Json(response, JsonRequestBehavior.AllowGet)); }
public void submitTask(string userid, string valuetext, string valuefile, int idtaskrun, bool isDone = false) { TaskProcessRun taskrun = findTaskRun(idtaskrun); JObject inputConfig = new JObject(); if (taskrun.ValueInputText != null) { inputConfig = JObject.Parse(taskrun.ValueInputText); } JObject fileConfig = new JObject(); if (taskrun.ValueInputFile != null) { fileConfig = JObject.Parse(taskrun.ValueInputFile); } //TODO: Gộp 2 cột file với text lại thành một if (inputConfig["value"] == null) { inputConfig.Add("value", valuetext); } else { inputConfig["value"] = valuetext; } if (fileConfig["value"] == null) { fileConfig.Add("value", valuefile); } else { fileConfig["value"] = valuefile; } taskrun.ValueInputText = inputConfig.ToString(Newtonsoft.Json.Formatting.None); taskrun.ValueInputFile = fileConfig.ToString(Newtonsoft.Json.Formatting.None); if (isDone) { Status status = db.Status.Where(y => y.Name == "Done").FirstOrDefault(); taskrun.Status = status.Id; taskrun.DoneBy = userid; taskrun.Done_At = DateTime.Now; } taskrun.Updated_At = DateTime.Now; db.SaveChanges(); }
public void addlistruntask(List <TaskProcess> listtask, StepRun runstep) { Status status = db.Status.Where(y => y.Name == "Open").FirstOrDefault(); foreach (TaskProcess task in listtask) { TaskProcessRun runtask = new TaskProcessRun(); runtask.IdStep = runstep.Id; runtask.IdRole = task.IdRole; runtask.Name = task.Name; runtask.Description = task.Description; runtask.Status = status.Id; runtask.ValueInputText = task.ValueInputText; runtask.ValueInputFile = task.ValueInputFile; runtask.ValueFormJson = task.ValueFormJson; runtask.Color = task.Color; runtask.Position = task.Position; runtask.CloneForm = task.Id; runtask.Created_At = DateTime.Now; runtask.Updated_At = DateTime.Now; db.TaskProcessRuns.Add(runtask); db.SaveChanges(); } }
public JsonResult DoneTaskForm(int idtaskrun, string formrender, string comment, string info) { HttpStatusCode status = HttpStatusCode.OK; string message; object response; try { string IdUser = User.Identity.GetUserId(); TaskProcessRun taskrun = taskService.findTaskRun(idtaskrun); if (taskrun == null) { throw new ServerSideException("TaskRun Not Found"); } List <RoleRun> listrole = roleService.findlistrolerunbyidroleprocess(taskrun.IdRole); Participate useringroup = participateService.findMemberInGroup(IdUser, taskrun.StepRun.ProcessRun.Process.IdGroup); if (useringroup == null) { throw new ServerSideException("User not in group"); } bool haveRole = false; foreach (RoleRun role in listrole) { if (IdUser == role.IdUser) { haveRole = true; break; } } if (useringroup.IsManager == true || haveRole) { HttpFileCollectionBase files = Request.Files; //TODO: Chưa check form rule //Upload File int groupid = taskrun.StepRun.ProcessRun.Process.IdGroup; //parse string to jArray JArray jInfo = JArray.Parse(info); JArray jFormRender = JArray.Parse(formrender); int position = 0; int positionFile = 0; foreach (JToken input in jFormRender) { if ((string)input["type"] == "uploadFile") { JToken currentFileInfor = jInfo[position]; string taskFormRunPath = string.Format("Upload/{0}/run/{1}/{2}/{3}/{4}", groupid, taskrun.StepRun.ProcessRun.Id, taskrun.StepRun.Id, taskrun.Id, input["name"]); if ((bool)currentFileInfor["isEdit"] == false) { fileService.removeDirectory(taskFormRunPath); if ((bool)currentFileInfor["isEmpty"]) { input["path"] = ""; input["filename"] = ""; input["download"] = ""; } else { HttpPostedFileBase file = files[positionFile]; fileService.createDirectory(taskFormRunPath); FileManager f = fileService.saveFile(groupid, file, taskFormRunPath, Direction.TaskFormRun); input["path"] = taskFormRunPath; input["filename"] = file.FileName; input["download"] = f.Id; positionFile++; } position++; } } } string newFormString = jFormRender.ToString(); taskService.submitTaskForm(IdUser, idtaskrun, newFormString, true); //comment if (comment.Trim() != "") { Comment cm = new Comment(); cm.IdUser = IdUser; cm.IdDirection = taskrun.Id; cm.Direction = Direction.TaskRun.ToString(); cm.Content = comment; cm.isAction = true; cm.Create_At = DateTime.Now; cm.Update_At = DateTime.Now; db.Comments.Add(cm); db.SaveChanges(); } } else { throw new ServerSideException("It is not your task"); } message = "Done Task Successfully"; response = new { message = message, status = status }; SetFlash(FlashType.success, message); return(Json(response, JsonRequestBehavior.AllowGet)); } catch (Exception e) { status = HttpStatusCode.InternalServerError; message = e.GetType().Name == "ServerSideException" ? e.Message : "Something not right"; response = new { message = message, detail = e.Message, status = status }; return(Json(response, JsonRequestBehavior.AllowGet)); } }
public TaskProcessRun findTaskRun(int idTask) { TaskProcessRun task = db.TaskProcessRuns.Find(idTask); return(task); }