public void AddSubTask(SubTaskModel request)
        {
            var toDoTask = _toDoRepository.GetAll()
                           .FirstOrDefault(x => x.Id == request.ToDoTaskId);

            if (toDoTask == null)
            {
                throw new ToDoSubTaskExceptions("No such task.");
            }
            if (string.IsNullOrWhiteSpace(request.SubTaskName))
            {
                throw new ToDoSubTaskExceptions("SubTask name is required.");
            }
            if (string.IsNullOrWhiteSpace(request.Description))
            {
                throw new ToDoSubTaskExceptions("Description is required.");
            }

            var subTask = new ToDoSubTask
            {
                SubTaskName = request.SubTaskName,
                Description = request.Description
            };

            _subTaskRepository.Create(subTask);
        }
        public async Task <List <PrivateTaskModel> > GetWebPrivateData(int Month, int Year)
        {
            List <PrivateTaskModel> list = new List <PrivateTaskModel>();

            using (var ctx = new DbEntities())
            {
                var webData = await ctx.Tasks.Where(x => x.MonthId == Month && x.Year == Year && x.Type == 2 && x.IsActive == true).Include(x => x.SubTasks.Select(y => y.JiraTickets)).ToListAsync();

                if (webData != null)
                {
                    foreach (var item in webData)
                    {
                        PrivateTaskModel obj = new PrivateTaskModel();
                        obj.StatusId = item.StatusId;
                        var masttskstat = await ctx.TaskStatus.Where(x => x.Id == obj.StatusId).FirstOrDefaultAsync();

                        if (masttskstat != null)
                        {
                            obj.PrivateType = masttskstat.Description;
                            obj.Icon        = masttskstat.Icon;
                        }
                        if (item.SubTasks.Count > 0)
                        {
                            List <SubTaskModel> list1 = new List <SubTaskModel>();
                            foreach (var item1 in item.SubTasks)
                            {
                                SubTaskModel obj1 = new SubTaskModel();
                                obj1.Id          = item1.Id;
                                obj1.Description = item1.Description;
                                if (item1.JiraTickets.Count > 0)
                                {
                                    List <JiraTicketModel> list2 = new List <JiraTicketModel>();
                                    foreach (var item2 in item1.JiraTickets)
                                    {
                                        JiraTicketModel obj2 = new JiraTicketModel();
                                        obj2.JiraTicketId = item2.JiraTicketId;
                                        list2.Add(obj2);
                                    }
                                    obj1.JiraTickets = list2;
                                }
                                list1.Add(obj1);
                            }
                            obj.SubTasks = list1;
                        }
                        obj.Description = item.Description;
                        list.Add(obj);
                    }
                }
                return(list);
            }
        }
Exemple #3
0
        public SubTaskModel GetSubTask(int subTaskId)
        {
            SubTaskModel searchedSubTask = (from subTask in _ternContext.SubTasks
                                            where subTask.SubTaskId == subTaskId
                                            select new SubTaskModel
            {
                SubTaskId = subTask.SubTaskId,
                SubTaskName = subTask.SubTaskName,
                Status = new StatusModel
                {
                    StatusId = subTask.Status.StatusId,
                    StatusType = subTask.Status.StatusType
                },
                TaskId = subTask.TaskId
            }).FirstOrDefault();

            return(searchedSubTask);
        }
 public ActionResult Post([FromBody] SubTaskModel request)
 {
     try
     {
         _subTaskService.AddSubTask(request);
         return(Ok("Success"));
     }
     catch (ToDoSubTaskExceptions ex)
     {
         Debug.WriteLine($"TODO:{ex.Message}");
         return(BadRequest(ex.Message));
     }
     catch (Exception ex)
     {
         Debug.WriteLine($"TODO:{ex.Message}");
         return(BadRequest(ex.Message));
     }
 }
        public async Task <IActionResult> AddOrUpdate([FromBody] SubTaskModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetFirstError()));
            }

            var SubTask = await _subTaskService.AddOrUpdate(Mapper.Map <SubTask>(model));

            if (model.PublishNow)
            {
                await PublishSubTask(new PublishSubTaskModel
                {
                    CompanyId  = SubTask.CompanyId,
                    TaskHeadId = SubTask.TaskHeadId,
                    SubTaskId  = SubTask.Id
                });
            }

            model.Order = SubTask.Order;
            model.Id    = SubTask.Id;
            return(Ok(model));
        }
        // GET: Report
        public ActionResult Report()
        {
            if ((Session["userID"]) == null)
            {
                return(RedirectToAction("Index", "Login"));
            }
            string              Handle, DevName, TesterName, QAName = "";
            SubTaskModel        model          = new SubTaskModel();
            List <SubTaskModel> subTasksReport = new List <SubTaskModel>();
            List <SubTaskModel> Team           = new List <SubTaskModel>();
            int projectID = Convert.ToInt32(Session["ProjectID"]);
            var project   = db.Projects.Where(m => m.ProjectID == projectID).FirstOrDefault();

            model.ProjectDetail = project.Description;
            var t = db.Tasks.Where(m => m.ProjectID == projectID).ToList();

            foreach (var c in t)
            {
                double Total = 0;
                var    s     = db.SubTasks.Where(m => m.TaskID == c.TaskID).ToList();
                foreach (var d in s)
                {
                    Total = Total + d.SubPercent;
                    var u      = db.Users.Where(m => m.User_ID == d.Handle).FirstOrDefault();
                    var y      = db.Users.Where(m => m.User_ID == d.SubDevID).FirstOrDefault();
                    var tester = db.Users.Where(m => m.User_ID == c.TestID).FirstOrDefault();
                    var QA     = db.Users.Where(m => m.User_ID == c.QAID).FirstOrDefault();
                    if (u != null)
                    {
                        Handle = u.User_Name;
                    }
                    else
                    {
                        Handle = "ไม่ผู้รับผิดชอบ";
                    }
                    if (y != null)
                    {
                        DevName = y.User_Name;
                    }
                    else
                    {
                        DevName = "ไม่มีผู้รับผิดชอบ";
                    }
                    if (tester != null)
                    {
                        TesterName = tester.User_Name;
                    }
                    else
                    {
                        TesterName = "ไม่มีผู้รับผิดชอบ";
                    }
                    if (QA != null)
                    {
                        QAName = QA.User_Name;
                    }
                    else
                    {
                        QAName = "ไม่มีผู้รับผิดชอบ";
                    }
                    subTasksReport.Add(new SubTaskModel
                    {
                        TaskID            = c.TaskID,
                        TaskName          = c.TaskName,
                        percent_task      = c.TotalPercent,
                        SubID             = d.SubID,
                        SubName           = d.SubName,
                        Handle            = Handle,
                        SubStatus         = d.SubStatus,
                        SubPercent        = d.SubPercent,
                        SubDescriptionDev = d.SubDescriptionDev,
                        SubDevID          = DevName,
                        TesterName        = TesterName,
                        QAName            = QAName,
                        SubDevSend        = d.SubDevSend,
                        CreateDate        = d.CreateDate,
                        UpdateDate        = d.UpdateDate,
                        CreateBy          = d.CreateBy,
                    });
                }
                Total          = Total / s.Count;
                c.TotalPercent = Total;
                db.SaveChanges();
            }
            string P_Name = null, D_Name = null, T_Name = null, Q_Name = null;
            var    p = db.ProjectMembers.Where(m => m.ProjectID == projectID).OrderBy(m => m.Role).ToList();

            foreach (var item in p)
            {
                if (item.Role == 1)
                {
                    var N = db.Users.Where(m => m.User_ID == item.UserID).FirstOrDefault();
                    P_Name = N.User_Name;
                }
                else if (item.Role == 2)
                {
                    var N = db.Users.Where(m => m.User_ID == item.UserID).FirstOrDefault();
                    D_Name = N.User_Name;
                }
                else if (item.Role == 3)
                {
                    var N = db.Users.Where(m => m.User_ID == item.UserID).FirstOrDefault();
                    T_Name = N.User_Name;
                }
                else if (item.Role == 4)
                {
                    var N = db.Users.Where(m => m.User_ID == item.UserID).FirstOrDefault();
                    Q_Name = N.User_Name;
                }
                Team.Add(new SubTaskModel {
                    PM     = P_Name,
                    Dev    = D_Name,
                    Tester = T_Name,
                    QA     = Q_Name,
                    Role   = item.Role
                });
            }
            ViewBag.DataList2 = Team;
            ViewBag.DataList  = subTasksReport;
            return(View(model));
        }