public async Task <LabGroup> Create(LabGroupCreate groupIn) { var group = LabGroup.FromCreate(groupIn); await _labGroups.InsertOneAsync(group); return(group); }
public async Task <ActionResult <LabGroup> > Create([FromHeader] string authToken, LabGroupCreate create) { if (!await _authenticationService.CheckAccess(authToken, "groupMgr")) { return(Unauthorized()); } List <string> members = new List <string>(); foreach (string techId in create.Members) { User temp = await _userService.GetByTechId(techId); members.Add(temp.Id); } LabCourse course = await _labCourseService.Get(create.LabCourseId); LabGroupCreate editCreate = create; editCreate.Members = members; editCreate.Budget = course.InitialBudget; editCreate.BudgetBalance = course.InitialBudget; editCreate.GroupNumber = (course.LabGroups == null) ? 1 : course.LabGroups.Count + 1; editCreate.Transactions = new List <Transaction>(); editCreate.Transactions.Add(new Transaction(null, "Add", "Initial Budget", course.InitialBudget, DateTime.UtcNow)); LabGroup created = await _labGroupService.Create(editCreate); await _labCourseService.AddGroup(course, created.Id); await _logService.Create(new Log( null, AuthenticationHelpers.GetUserIdFromToken(authToken), DateTime.UtcNow, "Group created.", "labGroups", created.Id, JsonSerializer.Serialize(created) )); foreach (string id in created.Members) { User temp = await _userService.Get(id); temp.Permissions.Add("61db5dde3fb8d66a6bbdde3b"); temp.Permissions.Add("61db59a03fb8d66a6bbdde34"); temp.Permissions.Add("61db5a813fb8d66a6bbdde36"); await _tokenService.InvalidateUserTokens(temp.Id); _userService.Update(temp.Id, temp); } return(Ok(created)); }