Example #1
0
        // GET: Groups/Create
        public IActionResult Create(int studentId, int unitId)
        {
            var studentIdsInGroup = _context.GroupMemberships.Where(g => g.UnitId == unitId).Select(m => m.StudentId).ToList();
            var studentAvailableTimeComparisionsViewModel = new StudentAvailableTimeComparisionsViewModel();

            studentAvailableTimeComparisionsViewModel.UnitId    = unitId;
            studentAvailableTimeComparisionsViewModel.StudentId = studentId;
            studentAvailableTimeComparisionsViewModel.StudentAvailabilityMatchLists = StudentAvailability.GetAvailableTimeComparisions(studentId, unitId, _context).Where(s => !studentIdsInGroup.Contains(s.StudentId)).ToList();
            return(View(studentAvailableTimeComparisionsViewModel));
        }
Example #2
0
        public async Task <IActionResult> Create(StudentAvailableTimeComparisionsViewModel studentAvailableTimeComparisionsViewModel)
        {
            if (ModelState.IsValid)
            {
                Group group = new Group();
                int   id    = studentAvailableTimeComparisionsViewModel.StudentId;
                group.IsOpen    = true;
                group.MaxNumber = 5;
                group.MinNumber = 3;
                //group.UnitId = ViewBag.GroupId;
                group.OwnerId = studentAvailableTimeComparisionsViewModel.StudentId;
                group.UnitId  = studentAvailableTimeComparisionsViewModel.UnitId;
                group.Name    = studentAvailableTimeComparisionsViewModel.GroupName;
                _context.Add(@group);
                await _context.SaveChangesAsync();

                int groupId = group.GroupId;

                GroupMembership groupOwnerMembership = new GroupMembership();
                groupOwnerMembership.GroupId   = groupId;
                groupOwnerMembership.StudentId = studentAvailableTimeComparisionsViewModel.StudentId;
                groupOwnerMembership.UnitId    = group.UnitId;
                groupOwnerMembership.StatusId  = (int)Status.Accepted;
                _context.Add(groupOwnerMembership);
                await _context.SaveChangesAsync();

                foreach (var studentAvailabilityMatchViewModel in studentAvailableTimeComparisionsViewModel.StudentAvailabilityMatchLists)
                {
                    if (studentAvailabilityMatchViewModel.IsSelected)
                    {
                        GroupMembership groupMembership = new GroupMembership();
                        groupMembership.GroupId   = groupId;
                        groupMembership.StudentId = studentAvailabilityMatchViewModel.StudentId;
                        groupMembership.UnitId    = group.UnitId;
                        groupMembership.StatusId  = (int)Status.Invited;
                        _context.Add(groupMembership);
                        await _context.SaveChangesAsync();
                    }
                }

                return(RedirectToAction("Details", "UniversityUsers", new { id }));
            }
            return(View(studentAvailableTimeComparisionsViewModel));
        }