Exemple #1
0
        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));
        }
Exemple #2
0
        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();
        }
Exemple #6
0
        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();
            }
        }
Exemple #9
0
        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);
        }