public async Task <IActionResult> GetAssignmentMessages(int userId, int assignmentId) { if (userId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } // convoluted way of getting groupId var user = await _repo.GetUser(userId); var u = user.UserGroups; var groupId = 0; foreach (var ug in u) { groupId = ug.GroupId; break; } var messagesForAssignment = await _repo.GetAssignmentMessages(assignmentId, groupId); var messagesToReturn = _mapper.Map <IEnumerable <AssignmentMessageToReturnDto> >(messagesForAssignment); return(Ok(messagesToReturn)); }
public async Task <IActionResult> CreateGroup(/*int userId, */ [FromBody] GroupForCreationDto groupForCreationDto) { List <User> volunteers = new List <User>(); foreach (var volIds in groupForCreationDto.VolunteerIds) { var volunteer = await _repo.GetUser(volIds); volunteers.Add(volunteer); } List <User> students = new List <User>(); foreach (var studIds in groupForCreationDto.StudentIds) { var student = await _repo.GetUser(studIds); students.Add(student); } Group newGroup = new Group(); newGroup.StudentLevel = students[0].StudentLevel; _repo.Add(newGroup); foreach (var user in volunteers) { UserGroup userGroup = new UserGroup { // User = user, UserId = user.Id, // Group = newGroup, GroupId = newGroup.Id }; _repo.Add(userGroup); } foreach (var user in students) { UserGroup userGroup = new UserGroup { // User = user, UserId = user.Id, // Group = newGroup, GroupId = newGroup.Id }; _repo.Add(userGroup); } if (await _repo.SaveAll()) { return(Ok(newGroup)); } throw new Exception("Creating the assignment failed on save"); }
public async Task <IActionResult> CreateAssignment(int creatorId, [FromBody] AssignmentForCreationDto assignmentForCreationDto) { var assignmentCreator = await _repo.GetUser(creatorId); if (assignmentCreator.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) { return(Unauthorized()); } assignmentForCreationDto.CreatedBy = assignmentCreator; var assignment = _mapper.Map <Assignment>(assignmentForCreationDto); if (assignment.Assigned) { assignment.DateAssigned = DateTime.Now; } var students = _repo.GetStudents(assignmentForCreationDto.StudentLevel); _repo.Add(assignment); foreach (var student in students.Result) { var userAssignment = new UserAssignment() { UserId = student.Id, AssignmentId = assignment.Id, Completed = false }; if (!student.UserAssignments.Contains(userAssignment)) { _repo.Add(userAssignment); } } if (await _repo.SaveAll()) { // _repo.SqlCmdHelper("SET IDENTITY_INSERT dbo.UserAssignments OFF"); var assignmentToReturn = _mapper.Map <AssignmentToReturnDto>(assignment); return(CreatedAtRoute("GetAssignment", new { id = assignment.Id }, assignmentToReturn)); } throw new Exception("Creating the assignment failed on save"); }
public async Task <IActionResult> GetUsers([FromQuery] UserParams userParams) { var currentUserId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value); var usersFromRepo = await _repo.GetUser(currentUserId); userParams.UserId = currentUserId; var users = await _repo.GetUsers(userParams); var usersToReturn = _mapper.Map <IEnumerable <UserForListDto> >(users); Response.AddPagination(users.CurrentPage, users.PageSize, users.TotalCount, users.TotalPages); return(Ok(usersToReturn)); }
public async Task <IActionResult> CreateEvent(int creatorId, [FromBody] EventForCreationDto eventForCreationDto) { var eventCreator = await _repo.GetUser(creatorId); // if (eventCreator.Id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value)) // return Unauthorized(); var evnt = _mapper.Map <Event>(eventForCreationDto); evnt.CreatedBy = eventCreator; _repo.Add(evnt); if (await _repo.SaveAll()) { var eventToReturn = _mapper.Map <EventToReturnDto>(evnt); return(CreatedAtRoute("GetEvent", new { id = evnt.Id }, eventToReturn)); } throw new Exception("Creating the assignment failed on save"); }