Exemplo n.º 1
0
        //accept a candidate for an assignments
        //UserAssignment-object property Accepted is set to true
        // Status of this assignment becomes 'Closed'
        //the other candidates - UserAssignment-objects are deleted
        //returns ok
        public async Task <IActionResult> AcceptAssignmentCandidate(int assignmentID, int candidateID)
        {
            //get UserAssignment-object of this assignment and the user
            UserAssignment userAssignment = _context.UserAssignments.Include(ua => ua.Assignment).Include(ua => ua.User).FirstOrDefault(ua => ua.Assignment.AssignmentID == assignmentID && ua.User.UserID == candidateID);

            //set Accepted to true - this user can do the assignment
            userAssignment.Accepted = true;
            _context.Entry(userAssignment).State = EntityState.Modified;

            //assignment-status is set to Closed
            Assignment assignment = _context.Assignments.Include(a => a.Status).FirstOrDefault(a => a.AssignmentID == assignmentID);

            assignment.Status = _context.Status.FirstOrDefault(s => s.CurrentStatus == "Closed");
            _context.Entry(userAssignment).State = EntityState.Modified;

            // delete the userAssignment-object from the other candidates
            List <UserAssignment> userAssignments = _context.UserAssignments.Include(ua => ua.Assignment).Include(ua => ua.User).Where(ua => ua.Assignment.AssignmentID == assignmentID && ua.User.UserID != candidateID).ToList();

            foreach (var u in userAssignments)
            {
                _context.UserAssignments.Remove(u);
            }

            await _context.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 2
0
        public async Task <IActionResult> PutUserAssignment(long id, UserAssignment userAssignment)
        {
            if (id != userAssignment.UserAssignmentID)
            {
                return(BadRequest());
            }

            _context.Entry(userAssignment).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!UserAssignmentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemplo n.º 3
0
        public async Task <UserAssignment> PostUserAssignment(UserAssignment assignment)
        {
            var updated = _store.UserAssignments.Update(assignment);
            var saved   = await _store.SaveChangesAsync();

            return(updated.Entity);
        }
Exemplo n.º 4
0
        public async Task <IActionResult> StudentAcceptsAssignment(long id)
        {
            var  userID = long.Parse(User.Claims.FirstOrDefault(c => c.Type == "UserID").Value);
            User user   = await _context.Users.FindAsync(userID);

            if (user == null)
            {
                return(NotFound());
            }
            UserAssignment ua = new UserAssignment
            {
                AssignmentID = id,
                UserID       = userID,
                Status       = false,
                Progress     = 0
            };
            var uas = _context.UserAssignments;

            if (uas != null)
            {
                foreach (UserAssignment uass in uas)
                {
                    if (uass.AssignmentID == ua.AssignmentID && uass.UserID == ua.UserID)
                    {
                        return(NoContent());                                                                 //User has already accepted this assignment
                    }
                }
            }
            _context.UserAssignments.Add(ua);
            await _context.SaveChangesAsync();

            return(NoContent());
        }
Exemplo n.º 5
0
        public async Task <dynamic> AddUserAssignmentAsync(dynamic model)
        {
            var userAssignment = new UserAssignment {
                CourseId     = model.courseId,
                UserId       = model.userId,
                AssignmentId = model.assignmentId,
                FileContent  = model.fileContent,
                TextContent  = model.textContent
            };

            await _repository.AddAsync(userAssignment);

            var result = new {
                success      = true,
                id           = userAssignment.Id,
                courseId     = userAssignment.CourseId,
                userId       = userAssignment.UserId,
                assignmentId = userAssignment.AssignmentId,
                grade        = "",
                fileContent  = userAssignment.FileContent,
                textContent  = userAssignment.TextContent
            };

            return(null);
        }
Exemplo n.º 6
0
        public async Task <ActionResult <UserAssignment> > PostUserAssignment(UserAssignment userAssignment)
        {
            _context.UserAssignments.Add(userAssignment);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetUserAssignment", new { id = userAssignment.UserAssignmentID }, userAssignment));
        }
        public async Task <IActionResult> AssignUsersToAssignment(AssignUsersToAssignmentViewModel newAssignViewModel, Guid id, Guid AssignmentId)
        {
            ViewBag.AvailableTeamUsers = new SelectList(await _assignmentService.GetListOfAvailableAssignmentUsers(id, AssignmentId), "Id", "MemberName");

            if (ModelState.IsValid)
            {
                Guid guidid = Guid.Parse(newAssignViewModel.AppUserId);

                UserAssignment userAssignment = new UserAssignment
                {
                    AppUser      = await _userManager.FindByIdAsync(newAssignViewModel.AppUserId),
                    AppUserId    = guidid,
                    Assignment   = await _assignmentService.GetAssignmentById(AssignmentId),
                    AssignmentId = AssignmentId
                };
                await _assignmentService.AddUserAssignment(userAssignment);

                List <AppUser> AssignmentMemberList = await _assignmentService.GetAssignmentUserList(AssignmentId);

                if (AssignmentMemberList.Count > 0)
                {
                    await _assignmentService.ChangeStatusToInProgress(AssignmentId);
                }
                return(RedirectToAction("AssignUsersToAssignment", new { AssignmentId }));
            }
            return(RedirectToAction("AssignUsersToAssignment", new { AssignmentId }));
        }
Exemplo n.º 8
0
        public void GetUserAssignmentTest()
        {
            var options = new DbContextOptionsBuilder <AppDBContext>()
                          .UseInMemoryDatabase(databaseName: "UserAssignmentGetDatabase")
                          .Options;

            using (var context = new AppDBContext(options))
            {
                context.UserAssignment.Add(new UserAssignment {
                    Id = "1", Text = "1"
                });
                context.UserAssignment.Add(new UserAssignment {
                    Id = "2", Text = "2"
                });
                context.UserAssignment.Add(new UserAssignment {
                    Id = "3", Text = "3"
                });
                context.UserAssignment.Add(new UserAssignment {
                    Id = "4", Text = "4"
                });
                context.SaveChanges();
            }

            using (var context = new AppDBContext(options))
            {
                UserAssignmentRepository userAssignmentRepository = new UserAssignmentRepository(context);
                UserAssignment           userAssignment           = userAssignmentRepository.Get("1");

                Assert.Equal("1", userAssignment.Text);
            }
        }
Exemplo n.º 9
0
        public AssignmentViewModel getAssignmentGrade(int userId, int assignmentId)
        {
            //Sæki öll gögn í verkefna töfluna
            var assignment = (from assign in _db.Assignment
                              join userAssignment in _db.UserAssignment on assign.assignmentId equals userAssignment.assignmentId
                              where assign.assignmentId == assignmentId && userAssignment.userId == userId
                              select new { assign, userAssignment }).SingleOrDefault();

            UserAssignment userAssign = null;

            if (assignment.assign.gradePublished == 1)
            {
                userAssign = new UserAssignment
                {
                    userAssignmentId = assignment.userAssignment.userAssignmentId,
                    userId           = assignment.userAssignment.userId,
                    userGroupId      = assignment.userAssignment.userGroupId,
                    grade            = assignment.userAssignment.grade,
                    gradeComment     = assignment.userAssignment.gradeComment
                };
            }
            //Bý til nýtt AssingmentViewModel og set listann inn í það
            AssignmentViewModel viewModel = new AssignmentViewModel
            {
                UserAssignment = userAssign
            };

            //Returna viewModelinu með listanum
            return(viewModel);
        }
Exemplo n.º 10
0
        //Remove UserAssignment. InOtherWords Remove User from an Assigment.
        public async Task <int> RemoveUserAssignment(Guid AssignmentId, Assignment assignment, string id, AppUser appUser)
        {
            Guid           userIdGuid     = Guid.Parse(id);
            UserAssignment userAssignment = _context.UserAssignments.Where(x => x.AssignmentId == AssignmentId && x.Assignment == assignment && x.AppUserId == userIdGuid && x.AppUser == appUser).FirstOrDefault();

            _context.UserAssignments.Remove(userAssignment);
            return(await _context.SaveChangesAsync());
        }
Exemplo n.º 11
0
        //a user cancels his 'apply' from this assignment
        //userAssignment is deleted
        //returns Ok
        public async Task <ActionResult <UserAssignment> > CancelAssignment(int assignmentID, int userID)
        {
            UserAssignment userAssignment = _context.UserAssignments.Include(ua => ua.Assignment).FirstOrDefault(ua => ua.Assignment.AssignmentID == assignmentID && ua.User.UserID == userID);

            _context.UserAssignments.Remove(userAssignment);
            await _context.SaveChangesAsync();

            return(Ok());
        }
Exemplo n.º 12
0
        public IActionResult CreateAssignment([FromForm] CreateAssignment model)
        {
            try
            {
                Assignment showPiece = db.Assignment
                                       .OrderByDescending(p => p.IdAssignment)
                                       .FirstOrDefault();

                string emailCurrentUser = User.FindFirst(ClaimTypes.Name).Value;
                Users  tempUser         = _userService.FindUser(emailCurrentUser, db);

                Assignment tempAssg = new Assignment();
                if (showPiece == null)
                {
                    tempAssg.IdAssignment = db.Assignment.Count() + 1;
                }
                else
                {
                    tempAssg.IdAssignment = (showPiece.IdAssignment) + 1;
                }
                tempAssg.Name                = model.NameAsg;
                tempAssg.Description         = model.Description;
                tempAssg.PercentOfFinalGrade = model.Percentage;
                tempAssg.Deadline            = Convert.ToDateTime(model.Deadline);
                tempAssg.IdSubject           = model.SubjectName;
                tempAssg.Length              = model.LengthDur;
                tempAssg.Difficulty          = model.DifficultyLevel;
                tempAssg.Done                = false;
                db.Assignment.Add(tempAssg);
                db.SaveChanges();


                UserAssignment showPieceTemp = db.UserAssignment
                                               .OrderByDescending(p => p.IdUserAssignment)
                                               .FirstOrDefault();

                UserAssignment tempRel = new UserAssignment();
                if (showPieceTemp == null)
                {
                    tempRel.IdUserAssignment = db.UserAssignment.Count() + 1;
                }
                else
                {
                    tempRel.IdUserAssignment = (showPieceTemp.IdUserAssignment) + 1;
                }
                tempRel.IdAssignment = tempAssg.IdAssignment;
                tempRel.IdUser       = tempUser.IdUser;
                db.UserAssignment.Add(tempRel);
                db.SaveChanges();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(new { message = ex.Message }));
            }
        }
        public async Task UndoTurnIn(int assignmentId, string userId)
        {
            UserAssignment userAssignment = this.userAssignmentRepository
                                            .All()
                                            .FirstOrDefault(ua => ua.AssignmentId == assignmentId && ua.UserId == userId);

            userAssignment.TurnedOn = null;

            await this.userAssignmentRepository.SaveChangesAsync();
        }
Exemplo n.º 14
0
        //a company declines this user for the assignment
        //UserAssignment gets deleted
        //returns ok
        public async Task <IActionResult> DeclineAssignmentCandidate(int assignmentID, int candidateID)
        {
            UserAssignment userAssignment = _context.UserAssignments.Include(ua => ua.Assignment).Include(ua => ua.User).FirstOrDefault(ua => ua.Assignment.AssignmentID == assignmentID && ua.User.UserID == candidateID);

            _context.UserAssignments.Remove(userAssignment);

            await _context.SaveChangesAsync();

            return(Ok());
        }
        public async Task MarkAsSeen(int assignmentId, string userId)
        {
            UserAssignment userAssignment = this.userAssignmentRepository
                                            .All()
                                            .FirstOrDefault(ua => ua.AssignmentId == assignmentId && ua.UserId == userId);

            userAssignment.Seen = true;

            await this.userAssignmentRepository.SaveChangesAsync();
        }
Exemplo n.º 16
0
        public void DeleteUserAssignment(Users user, toDoListConestogaContext db, int idAssgn)
        {
            UserAssignment tempRelationship = db.UserAssignment.Where(uEntity => uEntity.IdAssignment == idAssgn && uEntity.IdUser == user.IdUser).SingleOrDefault();
            Assignment     tempAssign       = db.Assignment.Where(aEntity => aEntity.IdAssignment == idAssgn).SingleOrDefault();

            db.Assignment.Remove(tempAssign);
            db.SaveChanges();
            db.UserAssignment.Remove(tempRelationship);
            db.SaveChanges();
        }
Exemplo n.º 17
0
        // GET: Assignment/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Assignment     assignment = db.Assignments.Find(id);
            UserAssignment ua         = db.UserAssignments.Where(a => a.Assignment.Id == assignment.Id && a.User.UserName == User.Identity.Name).FirstOrDefault();

            if (assignment == null)
            {
                return(HttpNotFound());
            }
            return(View(ua));
        }
Exemplo n.º 18
0
        public async Task<IActionResult> Register(UserForRegisterDto userForRegisterDto, string userRole)
        {
            var userToCreate = _mapper.Map<User>(userForRegisterDto);

            var assignments = await _context.Assignments.Where(a => a.StudentLevel == userToCreate.StudentLevel).ToListAsync();

            var result = await _userManager.CreateAsync(userToCreate, userForRegisterDto.Password);

            var userToReturn = _mapper.Map<UserForDetailedDto>(userToCreate);

            foreach(var assignment in assignments)
            {
                var userAssignment = new UserAssignment
                {
                    UserId = userToReturn.Id,
                    AssignmentId = assignment.Id,
                    Completed = false
                };
                _context.Add(userAssignment);
            }

            if (result.Succeeded)
            {
                switch (userRole)
                {
                    case "student":
                        _userManager.AddToRolesAsync(userToCreate, new [] {"Student"}).Wait();
                        break;
                    
                    case "tutor":
                        _userManager.AddToRolesAsync(userToCreate, new [] {"Tutor"}).Wait();
                        break;

                    case "mentor":
                        _userManager.AddToRolesAsync(userToCreate, new [] {"Mentor"}).Wait();
                        break;

                    case "admin":
                        _userManager.AddToRolesAsync(userToCreate, new [] {"Admin"}).Wait();
                        break;
                }
                return CreatedAtRoute("GetUser",
                        new { controller = "Users", id = userToCreate.Id }, userToReturn);
            }

            return BadRequest(result.Errors);
        }
Exemplo n.º 19
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");
        }
Exemplo n.º 20
0
        public async Task <IActionResult> UpdateUserAssignment(int id, UserAssignment userAssignment)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var userAssignmentFromRepo = await _repo.GetUserAssignment(userAssignment.AssignmentId);

            userAssignmentFromRepo.Completed = userAssignment.Completed;

            if (await _repo.SaveAll())
            {
                return(NoContent());
            }

            throw new Exception($"Updating UserAssignment {id} failed on save");
        }
        public async Task UpdateCheckedAsync(EditCheckedAssignmentInputModel inputModel)
        {
            UserAssignment userAssignment = this.userAssignmentRepository
                                            .All()
                                            .FirstOrDefault(ua => ua.AssignmentId == inputModel.AssignmentId && ua.UserId == inputModel.UserId);


            userAssignment.Points   = inputModel.Points;
            userAssignment.Feedback = inputModel.Feedback;

            Assignment assignment = this.assignmentRepository.All().FirstOrDefault(a => a.Id == inputModel.AssignmentId);

            if (assignment.PossiblePoints < inputModel.Points)
            {
                throw new ArgumentException("Points must be less than the stated!");
            }

            await this.userAssignmentRepository.SaveChangesAsync();
        }
Exemplo n.º 22
0
        public void AddUserAssignment(AssignmentDTO assignmentDTO, User user)
        {
            Assignment assignment = Database.Assignment.Get(assignmentDTO.Id);

            if (assignment == null)
            {
                throw new ValidationException("Assignment not found", "");
            }
            if (!Database.UserAssignment.GetAll().Where(x => x.User.Id.Equals(user.Id) && x.Assignment.Id.Equals(assignment.Id)).Any())
            {
                UserAssignment userAssignment = new UserAssignment
                {
                    Id         = Guid.NewGuid().ToString(),
                    Assignment = assignment,
                    User       = user
                };
                Database.UserAssignment.Create(userAssignment);
                Database.Save();
            }
        }
Exemplo n.º 23
0
        //user applies for an assignment
        //userAssignment-object gets created
        //returns OK if succesfull - BadRequest
        public async Task <ActionResult <UserAssignment> > ApplyForAssignment(int assignmentID, int userID)
        {
            Assignment assignment = _context.Assignments.FirstOrDefault(a => a.AssignmentID == assignmentID);
            User       user       = _context.Users.FirstOrDefault(u => u.UserID == userID);

            UserAssignment userAssignment = new UserAssignment();

            userAssignment.User       = user;
            userAssignment.Assignment = assignment;
            userAssignment.Accepted   = false;

            if (_context.UserAssignments.FirstOrDefault(ua => ua.Assignment.AssignmentID == assignmentID && ua.User.UserID == userID) == null)
            {
                _context.UserAssignments.Add(userAssignment);
                await _context.SaveChangesAsync();

                return(Ok());
            }
            return(BadRequest());
        }
Exemplo n.º 24
0
        public static WutLinkPoco RetrieveUrlFromDatabase(string internalUrl, WutNuContext models, int?userId = null, string authEmail = null)
        {
            //todo: need to ensure that this search is case-sensitive - check code page on SQL DB
            var item = models.WutLinks.Include("UserAssignments").SingleOrDefault(u => u.ShortUrl == internalUrl);

            if (item == null)
            {
                return(null);
            }

            UserAssignment user = null;

            if (item.IsProtected)
            {
                user = item.UserAssignments.SingleOrDefault(u => u.UserEmail == authEmail);

                if (user == null)
                {
                    //user is authenticated but not authorized for this file
                    return(null);
                }

                //feels like I should do this somewhere else but this will work for now
                //(refreshing the UserAssignments table with UserID - assigner only had email)
                if (userId != null)
                {
                    //user is authenticated but not authorized for this file
                    user.UserId = userId;
                    models.SaveChanges();
                }
            }

            var res = WutLinkPoco.GetPocoFromObject(item);

            if (user != null)
            {
                res.UserAuthenticated = true;
            }

            return(res);
        }
Exemplo n.º 25
0
        public UserAssignmentDTO GetUserAssignment(string id)
        {
            UserAssignment    userAssignment    = Database.UserAssignment.Get(id);
            UserAssignmentDTO userAssignmentDTO = new UserAssignmentDTO
            {
                Id         = userAssignment.Id,
                User       = userAssignment.User,
                Assignment = new AssignmentDTO
                {
                    Id          = userAssignment.Assignment.Id,
                    Name        = userAssignment.Assignment.Name,
                    Description = userAssignment.Assignment.Description,
                    StartTime   = userAssignment.Assignment.StartTime,
                    EndTime     = userAssignment.Assignment.EndTime
                },
                IsCompleted = userAssignment.IsCompleted,
                Text        = userAssignment.Text
            };

            return(userAssignmentDTO);
        }
        public async Task <int> MarkSubmittedAssignment(MarkSubmittedAssignmentInputModel inputModel)
        {
            UserAssignment userAssignment = this.userAssignmentRepository
                                            .All()
                                            .Where(ua => ua.AssignmentId == inputModel.AssignmentId && ua.UserId == inputModel.UserId)
                                            .FirstOrDefault();

            userAssignment.Points    = inputModel.Points;
            userAssignment.Feedback  = inputModel.Feedback;
            userAssignment.IsChecked = true;

            Assignment assignment = this.assignmentRepository.All().FirstOrDefault(a => a.Id == userAssignment.AssignmentId);

            if (inputModel.Points > assignment.PossiblePoints)
            {
                throw new ArgumentException("Points must be less than the stated!");
            }

            await this.userAssignmentRepository.SaveChangesAsync();

            return(assignment.CourseId);
        }
Exemplo n.º 27
0
        public void MarkAsComplete(AssignmentDTO assignmentDTO, User user)
        {
            Assignment assignment = Database.Assignment.Get(assignmentDTO.Id);

            if (assignment == null)
            {
                throw new ValidationException("Assignment not found", "");
            }
            UserAssignment userAssignment = Database.UserAssignment.GetAll()
                                            .First(x => x.User.Id.Equals(user.Id) && x.Assignment.Id.Equals(assignment.Id));

            if (userAssignment == null)
            {
                throw new ValidationException("User Assignment not found", "");
            }
            else
            {
                userAssignment.IsCompleted = true;
                Database.UserAssignment.Update(userAssignment);
                Database.Save();
            }
        }
        public async Task <int> TurnIn(FilesToAssignmentInputModel inputModel)
        {
            Assignment assignment = this.assignmentRepository.All().FirstOrDefault(a => a.Id == inputModel.AssignmentId);

            UserAssignment userAssignment = this.userAssignmentRepository
                                            .All()
                                            .FirstOrDefault(ua => ua.AssignmentId == inputModel.AssignmentId && ua.UserId == inputModel.UserId);

            userAssignment.TurnedOn = DateTime.UtcNow;


            if (inputModel.Files != null)
            {
                await this.AttachFile(assignment, inputModel.Files, FileType.Submit, inputModel.UserId);
            }

            await this.assignmentRepository.SaveChangesAsync();

            await this.userAssignmentRepository.SaveChangesAsync();

            return(assignment.Id);
        }
Exemplo n.º 29
0
        public async Task<IActionResult> MassUpload(int id, string roleToReg, [FromForm]XlsForUploadDto xlsForUploadDto){

            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
                return Unauthorized();

            Stream stream = xlsForUploadDto.File.OpenReadStream();
            UserParams userParams = new UserParams();
            userParams.RoleName = roleToReg;

            List<string> cohorts = new List<string>();
            List<string> lastNames = new List<string>();
            List<string> firstNames = new List<string>();
            List<string> emails = new List<string>();
            List<string> streetAdress = new List<string>();
            List<string> city = new List<string>();
            List<User> userList = new List<User>();
            List<string> userNames = new List<string>();
            var usersFromDb = _context.Users.ToList();
            int it = 1;

            using (var reader = new StreamReader(stream))
                {
                    while (!reader.EndOfStream)
                    {
                        var line = reader.ReadLine();
                        var values = line.Split(',');

                        cohorts.Add(values[0]);
                        lastNames.Add(values[1]);
                        firstNames.Add(values[2]);
                        emails.Add(values[9]);
                        streetAdress.Add(values[11]);
                        city.Add(values[12]);
                    }
                    Console.WriteLine("Stop");       
                }

                while(it <= lastNames.Count)
                {
                    // if (firstNames[it] == "Eamon")
                    // {
                    //     Console.WriteLine("Test");
                    // }
                    if (lastNames[it] != "")
                    {
                        string userName = UserNameGenerator.ReturnUserName(firstNames[it], lastNames[it], usersFromDb, userNames).Trim();
                        userNames.Add(userName);
                        string sL = StudLevCalc.ReturnStudLev(cohorts, it);
                        string pw = UserNameGenerator.ReturnPassword(streetAdress[it], city[it]).Trim();
                        
                        UserForRegisterDto userFromFile = new UserForRegisterDto
                        {
                            FirstName = firstNames[it].Trim(),
                            LastName = lastNames[it].Trim(),
                            Email = emails[it].Trim(),
                            StudentLevel = sL,
                            Username = userName,
                            Password = pw,
                        };

                        var userToCreate = _mapper.Map<User>(userFromFile);

                        var assignments = await _context.Assignments.Where(a => a.StudentLevel == userToCreate.StudentLevel).ToListAsync();

                        var result = await _userManager.CreateAsync(userToCreate, userFromFile.Password);

                        var userToReturn = _mapper.Map<UserForDetailedDto>(userToCreate);

                        if (result.Succeeded)
                        {
                            foreach(var assignment in assignments)
                            {
                                var userAssignment = new UserAssignment
                                {
                                    UserId = userToReturn.Id,
                                    AssignmentId = assignment.Id,
                                    Completed = false
                                };
                                _context.Add(userAssignment);
                            }

                            switch (roleToReg)
                            {
                                case "student":
                                    _userManager.AddToRolesAsync(userToCreate, new [] {"Student"}).Wait();
                                    break;
                                
                                case "tutor":
                                    _userManager.AddToRolesAsync(userToCreate, new [] {"Tutor"}).Wait();
                                    break;

                                case "mentor":
                                    _userManager.AddToRolesAsync(userToCreate, new [] {"Mentor"}).Wait();
                                    break;

                                case "admin":
                                    _userManager.AddToRolesAsync(userToCreate, new [] {"Admin"}).Wait();
                                    break;
                            }
                        }
                    }
                    it++;
                }
               
            return Ok();
            throw new Exception("");
        }
Exemplo n.º 30
0
 //Add new UserAssignment. InOtherWords Assign User to an Assigment.
 public async Task AddUserAssignment(UserAssignment userAssignment)
 {
     _context.UserAssignments.Add(userAssignment);
     await _context.SaveChangesAsync();
 }