Beispiel #1
0
        public SprintTasksM AddMany(Guid project_id, Guid sprint_id, TaskSprintCreateM model)
        {
            try
            {
                foreach (var side in model.Sides)
                {
                    if (!("Server".Equals(side.Side) || "Client".Equals(side.Side) || "Database".Equals(side.Side)))
                    {
                        throw BadRequest("Side value must be 'Server', 'Client' or 'Database'!");
                    }
                    if (side.Tasks.Count == 0)
                    {
                        throw BadRequest("No task is assigned!");
                    }
                    foreach (var task in side.Tasks)
                    {
                        if (!_permission.Any(p => p.ProjectId.Equals(project_id) && p.UserId.Equals(task.AssignedUserId)))
                        {
                            throw NotFound(task.AssignedUserId, "assigned user id");
                        }
                    }
                }

                foreach (var side in model.Sides)
                {
                    foreach (var task in side.Tasks)
                    {
                        _task.Add(new Data.Models.Task
                        {
                            Detail   = task.Detail,
                            IsDelete = false,
                            Name     = task.Name,
                            SprintId = sprint_id,
                            Status   = "Incomplete",
                            UserId   = task.AssignedUserId,
                            Side     = side.Side
                        });
                    }
                }
                SaveChanges();

                return(GetAll(sprint_id));
            }
            catch (Exception e)
            {
                throw e is RequestException ? e : _errorHandler.WriteLog("An error occurred while add tasks!",
                                                                         e, DateTime.Now, "Server", "Service_Task_AddMany");
            }
        }
 public IActionResult Create([FromRoute] Guid project_id, [FromBody] TaskSprintCreateM model)
 {
     try
     {
         JwtClaimM jwt_claim = _jwtAuth.GetClaims(Request);
         _permission.EnsureProjectManager(jwt_claim.UserId, project_id);
         Guid sprint_id;
         if (model.SprintId == null)
         {
             sprint_id = _sprint.Add(project_id, model.StartDate, model.EndDate, model.Approvals);
         }
         else
         {
             sprint_id = model.SprintId.Value;
         }
         return(Created("", _task.AddMany(project_id, sprint_id, model)));
     }
     catch (Exception e)
     {
         return(GetError(e));
     }
 }