public async Task <IActionResult> Register([FromBody] RegisterViewModel vm) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (await UserExist(vm)) { return(BadRequest("Email-ul este deja folosit.")); } var newUser = new UniversityUserModel { UserName = vm.Username, Email = vm.Username, EmailConfirmed = true }; var resultUser = await _userManager.CreateAsync(newUser, vm.Password); if (!resultUser.Succeeded) { return(BadRequest(resultUser.Errors)); } var resultRole = await _userManager.AddToRoleAsync(newUser, "User"); if (!resultRole.Succeeded) { return(BadRequest(resultRole.Errors)); } var code = await _userManager.GenerateEmailConfirmationTokenAsync(newUser); return(Ok(vm)); }
public async Task <ClaimsIdentity> GenerateClaimsIdentity(UniversityUserModel user) { return(new ClaimsIdentity(new GenericIdentity(user.UserName, "Token"), new[] { new Claim("id", user.Id), new Claim("roles", (await _userManager.GetRolesAsync(user)).LastOrDefault()) })); }
public async Task EnsureSeedData() { if (_roleManager.Roles.Count() == 0) { Console.WriteLine("seeding roles ..."); var userRole = new UniversityRoleModel() { Name = "User" }; await _roleManager.CreateAsync(userRole); } if (await _userManager.FindByEmailAsync("*****@*****.**") == null) { Console.WriteLine("seeding users ..."); var userUser = new UniversityUserModel() { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true }; await _userManager.CreateAsync(userUser, "user1234"); await _userManager.AddToRoleAsync(userUser, "User"); var newUserStudent = new StudentModel() { Nume = "Utilizator", An = 2, Email = "*****@*****.**", Facultate = "Facultatea de Automatica si Calculatoare", Grupa = "1", Sectie = "CTI", Subgrupa = "1.1", Telefon = "0723676136", UserId = userUser.Id }; await _bll.StudentRepository.InsertAsync(newUserStudent); var ghitaUser = new UniversityUserModel() { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true }; await _userManager.CreateAsync(ghitaUser, "ghita1234"); await _userManager.AddToRoleAsync(ghitaUser, "User"); var newGhitaStudent = new StudentModel() { Nume = "Gheorghe Darle", An = 2, Email = "*****@*****.**", Facultate = "Facultatea de Automatica si Calculatoare", Grupa = "3", Sectie = "CTI", Subgrupa = "3.1", Telefon = "0723676136", UserId = ghitaUser.Id }; await _bll.StudentRepository.InsertAsync(newGhitaStudent); var prodiUser = new UniversityUserModel() { UserName = "******", Email = "*****@*****.**", EmailConfirmed = true }; await _userManager.CreateAsync(prodiUser, "prodi1234"); await _userManager.AddToRoleAsync(prodiUser, "User"); var newProdiStudent = new StudentModel() { Nume = "Andrei Prodaniuc", An = 2, Email = "*****@*****.**", Facultate = "Facultatea de Automatica si Calculatoare", Grupa = "3", Sectie = "CTI", Subgrupa = "3.1", Telefon = "0724681188", UserId = prodiUser.Id }; await _bll.StudentRepository.InsertAsync(newProdiStudent); await _ctx.SaveChangesAsync(); } if (!_ctx.Profesors.Any()) { Console.WriteLine("seeding profesors ..."); var newProf1 = new ProfesorModel() { Nume = "Alexandru Popoescu", Email = "*****@*****.**" }; var newProf2 = new ProfesorModel() { Nume = "Vasile Marian", Email = "*****@*****.**" }; var newProf3 = new ProfesorModel() { Nume = "Iulian Popa", Email = "*****@*****.**" }; var newProf4 = new ProfesorModel() { Nume = "Andrei Craciun", Email = "*****@*****.**" }; await _bll.ProfesorRepository.InsertAsync(newProf1); await _bll.ProfesorRepository.InsertAsync(newProf2); await _bll.ProfesorRepository.InsertAsync(newProf3); await _bll.ProfesorRepository.InsertAsync(newProf4); await _ctx.SaveChangesAsync(); } if (!_ctx.Subjects.Any()) { Console.WriteLine("seeding subjects ..."); var newSubj1 = new SubjectModel() { Confirmations = 0, Date = 1, Facultate = "Facultatea de Automatica si Calculatoare", Locatie = "A101", Nume = "Matematici speciale", Serie = "CTI", StartTime = "08:00", ProfesorId = 1, Tip = SubjectTypeEnum.Curs }; var newSubj2 = new SubjectModel() { Confirmations = 0, Date = 3, Facultate = "Facultatea de Automatica si Calculatoare", Locatie = "A101", Nume = "Matematici speciale", Serie = "CTI", StartTime = "18:00", ProfesorId = 1, Tip = SubjectTypeEnum.Laborator }; var newSubj3 = new SubjectModel() { Confirmations = 0, Date = 2, Facultate = "Facultatea de Automatica si Calculatoare", Locatie = "A101", Nume = "Modelare si Simulare", Serie = "CTI", StartTime = "10:00", ProfesorId = 2, Tip = SubjectTypeEnum.Laborator }; var newSubj4 = new SubjectModel() { Confirmations = 0, Date = 2, Facultate = "Facultatea de Automatica si Calculatoare", Locatie = "A101", Nume = "Modelare si Simulare", Serie = "CTI", StartTime = "14:00", ProfesorId = 2, Tip = SubjectTypeEnum.Curs }; await _bll.SubjectRepository.InsertAsync(newSubj1); await _bll.SubjectRepository.InsertAsync(newSubj2); await _bll.SubjectRepository.InsertAsync(newSubj3); await _bll.SubjectRepository.InsertAsync(newSubj4); await _ctx.SaveChangesAsync(); } if (!_ctx.Notes.Any()) { Console.WriteLine("seeding notes ..."); var newNote1 = new NoteModel() { Body = "Notita mea numarul 1", StudentId = 2, SubjectId = 1, Titlu = "Notita 1" }; var newNote2 = new NoteModel() { Body = "Notita mea numarul 1", StudentId = 3, SubjectId = 2, Titlu = "Notita 1" }; var newNote3 = new NoteModel() { Body = "Notita mea numarul 2", StudentId = 2, SubjectId = 2, Titlu = "Notita 2" }; await _bll.NoteRepository.InsertAsync(newNote1); await _bll.NoteRepository.InsertAsync(newNote2); await _bll.NoteRepository.InsertAsync(newNote3); await _ctx.SaveChangesAsync(); } if (!_ctx.Prezenta.Any()) { Console.WriteLine("seeding notes ..."); var newPrezenta1 = new PrezentaModel() { Data = new DateTime(), StudentId = 2, SubjectId = 1, }; var newPrezenta2 = new PrezentaModel() { Data = new DateTime(), StudentId = 3, SubjectId = 1, }; await _bll.PrezentaRepository.InsertAsync(newPrezenta1); await _bll.PrezentaRepository.InsertAsync(newPrezenta2); await _ctx.SaveChangesAsync(); } }
private async Task <ClaimsIdentity> GetClaimsIdentity(string userName, string password, UniversityUserModel user) { if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(password)) { if (user != null) { if (await _userManager.CheckPasswordAsync(user, password)) { return(await Task.FromResult(await _jwtFactory.GenerateClaimsIdentity(user))); } } } return(await Task.FromResult <ClaimsIdentity>(null)); }