public LibUserTO Update(LibUserTO entity) { if (entity is null) { throw new ArgumentNullException(nameof(entity)); } if (entity.Id <= 0) { throw new ArgumentException("LibUser To Update Invalid Id"); } if (!libraryContext.LibraryUsers.Any(x => x.Id == entity.Id)) { throw new KeyNotFoundException($"Update(LibUser) Can't find LibUser to update."); } var editedEntity = libraryContext.LibraryUsers.FirstOrDefault(e => e.Id == entity.Id); if (editedEntity != default) { editedEntity.UpdateFromDetached(entity.ToEF()); } var tracking = libraryContext.LibraryUsers.Update(editedEntity); tracking.State = EntityState.Modified; libraryContext.SaveChanges(); //return editedEntity.ToTransferObject(); return(tracking.Entity.ToTransferObject()); //return editedEntity.ToTransferObject(); }
public void AddLibUser_AddExistingSheetPart_DoNotInsertTwiceInDb() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ILibUserRepository libUserRepository = new LibUserRepository(context); //Act var libUser = new LibUserTO { IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var libUser2 = new LibUserTO { Id = 2, IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var addedLibUser = libUserRepository.Add(libUser); var addedLibUser2 = libUserRepository.Add(libUser2); context.SaveChanges(); //Assert Assert.AreEqual(1, libUserRepository.GetAll().Count()); }
public void AddLibUser_Successful() { var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ILibUserRepository libUserRepository = new LibUserRepository(context); //Act var libUser = new LibUserTO { IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var result = libUserRepository.Add(libUser); var libUser2 = new LibUserTO { IdentityUserId = 2, InstrumentIds = new List <int> { 1 } }; var result2 = libUserRepository.Add(libUser2); context.SaveChanges(); //Assert Assert.IsNotNull(result); Assert.AreEqual(result.InstrumentIds.First(), 1); Assert.AreEqual(result.IdentityUserId, 23); }
public void ToEF_Successful() { //ARRANGE var instrument = new InstrumentTO { Id = 4, Name = "Saxophone" }; var libUser = new LibUserTO { Id = 1, IdentityUserId = 24 }; var category = new CategoryTO { Id = 2, Name = "Jazz" }; var sheet = new SheetTO { Id = 3, Name = "Sam's Dixie", Category = category, IsCurrent = true, IsIndependance = true, IsGarde = false, }; var sheetPart = new SheetPartTO { Id = 2, Instrument = instrument, Sheet = sheet, Path = "Path" }; //ACT var instrumentEF = instrument.ToEF(); var libUserEF = libUser.ToEF(); var categoryEF = category.ToEF(); var sheetEF = sheet.ToEF(); var sheetPartEF = sheetPart.ToEF(); //Assert Assert.AreEqual(instrument.Name, instrumentEF.Name); Assert.AreEqual(libUser.IdentityUserId, libUserEF.IdentityUserId); Assert.AreEqual(category.Name, categoryEF.Name); Assert.AreEqual(sheet.Name, sheetEF.Name); Assert.AreEqual(sheetPart.Sheet.Name, sheetPartEF.Sheet.Name); }
public void UpdateLibUser_Successful() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ILibUserRepository libUserRepository = new LibUserRepository(context); var libUser = new LibUserTO { IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var libUser2 = new LibUserTO { IdentityUserId = 4, InstrumentIds = new List <int> { 7, 4 } }; var libUser3 = new LibUserTO { IdentityUserId = 6, InstrumentIds = new List <int> { 2 } }; var addedLibUser = libUserRepository.Add(libUser); var addedLibUser2 = libUserRepository.Add(libUser2); var addedLibUser3 = libUserRepository.Add(libUser3); context.SaveChanges(); //Act var result = new List <int> { 4, 2 }; addedLibUser.InstrumentIds = new List <int> { 4, 2 }; var test = libUserRepository.Update(addedLibUser); context.SaveChanges(); //Assert Assert.AreEqual(3, libUserRepository.GetAll().Count()); CollectionAssert.AreEqual(new List <int> { 4, 2 }, test.InstrumentIds); }
public void ToTEF_ProvidingNull_ThrowException() { InstrumentTO instrument = null; LibUserTO libUser = null; CategoryTO category = null; SheetTO sheet = null; SheetPartTO sheetPart = null; //ACT Assert.ThrowsException <ArgumentNullException>(() => instrument.ToEF()); Assert.ThrowsException <ArgumentNullException>(() => libUser.ToEF()); Assert.ThrowsException <ArgumentNullException>(() => category.ToEF()); Assert.ThrowsException <ArgumentNullException>(() => sheet.ToEF()); Assert.ThrowsException <ArgumentNullException>(() => sheetPart.ToEF()); }
public bool Delete(LibUserTO entity) { if (entity is null) { throw new KeyNotFoundException(); } if (entity.Id <= 0) { throw new ArgumentException("LibUser To Delete Invalid Id"); } var libUser = libraryContext.LibraryUsers.FirstOrDefault(x => x.Id == entity.Id); libraryContext.LibraryUsers.Remove(libUser); libraryContext.SaveChanges(); return(true); }
public LibUserTO Add(LibUserTO entity) { if (entity is null) { throw new ArgumentNullException(); } if (entity.Id != 0) { return(entity); } var entityEF = entity.ToEF(); var result = libraryContext.LibraryUsers.Add(entityEF); libraryContext.SaveChanges(); return(result.Entity.ToTransferObject()); }
public void DeleteLibUser_ProvidingNull_ThrowException() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ILibUserRepository libUserRepository = new LibUserRepository(context); var libUser = new LibUserTO { IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; //Act & Assert Assert.ThrowsException <ArgumentException>(() => libUserRepository.Delete(libUser)); }
public void GetLibUsertById_Successful() { //Arrange var options = new DbContextOptionsBuilder <LibraryContext>() .UseInMemoryDatabase(databaseName: MethodBase.GetCurrentMethod().Name) .Options; using var context = new LibraryContext(options); ILibUserRepository libUserRepository = new LibUserRepository(context); var libUser = new LibUserTO { IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var libUser2 = new LibUserTO { IdentityUserId = 4, InstrumentIds = new List <int> { 7, 4 } }; var libUser3 = new LibUserTO { IdentityUserId = 6, InstrumentIds = new List <int> { 2 } }; var addedLibUser = libUserRepository.Add(libUser); var addedLibUser2 = libUserRepository.Add(libUser2); var addedLibUser3 = libUserRepository.Add(libUser3); context.SaveChanges(); //Act var result = libUserRepository.GetById(1); var result2 = libUserRepository.GetById(2); var result3 = libUserRepository.GetById(3); //Assert Assert.AreEqual(23, result.IdentityUserId); Assert.AreEqual(4, result2.IdentityUserId); Assert.AreEqual(6, result3.IdentityUserId); }
public static LibUserEF ToEF(this LibUserTO LibUser) { if (LibUser is null) { throw new ArgumentNullException(nameof(LibUser)); } var libUserEF = new LibUserEF { Id = LibUser.Id, IdentityUserId = LibUser.IdentityUserId, }; libUserEF.UserInstruments = LibUser.InstrumentIds?.Select(x => new UserInstruEF { LibUserId = libUserEF.Id, InstrumentId = x, }).ToList(); return(libUserEF); }
public List <LibUserTO> MockLibUsers() { var libUser = new LibUserTO { Id = 1, IdentityUserId = 23, InstrumentIds = new List <int> { 1 } }; var libUser2 = new LibUserTO { Id = 2, IdentityUserId = 4, InstrumentIds = new List <int> { 2, 3 } }; var libUser3 = new LibUserTO { Id = 3, IdentityUserId = 6, InstrumentIds = new List <int> { 2 } }; return(new List <LibUserTO> { libUser, libUser2, libUser3 }); }
public async Task <IActionResult> OnPostAsync(string returnUrl = null) { returnUrl = returnUrl ?? Url.Content("~/"); ExternalLogins = (await _signInManager.GetExternalAuthenticationSchemesAsync()).ToList(); if (ModelState.IsValid) { var user = new ApplicationUser { UserName = Input.Email, Email = Input.Email, FirstName = Input.FirstName, LastName = Input.LastName, IsIndependance = Input.IsIndependance, IsGarde = Input.IsGarde, }; var result = await _userManager.CreateAsync(user, Input.Password); if (result.Succeeded) { // Add the right role to that user: //await _userManager.AddToRoleAsync(user, Input.SelectedRole); await _userManager.AddToRoleAsync(user, "Musician"); // Creating LibUser when IdentityUser is created var instruments = Instruments.Where(x => x.IsSelected == true).ToList(); var instrumentsIds = instruments.Select(x => x.Id).ToList(); var libUser = new LibUserTO { IdentityUserId = user.Id, InstrumentIds = instrumentsIds }; var done = _libraryUnitOfWork.LibUserRepository.Add(libUser); _logger.LogInformation("User created a new account with password."); var code = await _userManager.GenerateEmailConfirmationTokenAsync(user); code = WebEncoders.Base64UrlEncode(Encoding.UTF8.GetBytes(code)); var callbackUrl = Url.Page( "/Account/ConfirmEmail", pageHandler: null, values: new { area = "Identity", userId = user.Id, code = code, returnUrl = returnUrl }, protocol: Request.Scheme); await _emailSender.SendEmailAsync(Input.Email, "Confirm your email", $"Please confirm your account by <a href='{HtmlEncoder.Default.Encode(callbackUrl)}'>clicking here</a>."); if (_userManager.Options.SignIn.RequireConfirmedAccount) { return(RedirectToPage("RegisterConfirmation", new { email = Input.Email, returnUrl = returnUrl })); } else { await _userManager.AddClaimAsync(user, new Claim("FirstName", user.FirstName)); await _userManager.AddClaimAsync(user, new Claim("LastName", user.LastName)); await _signInManager.SignInAsync(user, isPersistent : false); return(LocalRedirect(returnUrl)); } } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } } // If we got this far, something failed, redisplay form return(Page()); }