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)); } }