Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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");
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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));
        }
Esempio n. 5
0
        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");
        }