public ActionResult EditApplicationUser(ApplicationUserModel model) { var result = model.ToDto(_uow.LanguagesRepository.Get().ToList()); var original = _uow.UsersRepository.Get().FirstOrDefault(x => x.Id == model.Id); if (original != null) { foreach (var text in original.DisplayWork.ToList()) { _uow.TextsRepository.Delete(text); } foreach (var text in original.ApplicationUserPresentations.ToList()) { _uow.TextsRepository.Delete(text); } foreach (var text in original.PresentationTitleTexts.ToList()) { _uow.TextsRepository.Delete(text); } foreach (var text in original.PresentationSubTitleTexts.ToList()) { _uow.TextsRepository.Delete(text); } _uow.UsersRepository.Delete(original); } _uow.UsersRepository.Insert(result); _uow.Save(); return(RedirectToAction(nameof(Index))); }
public void EditApplicationUser_Post_Test() { // Act var uow = new UnitOfWorkFakeFactory().Uow; var usersCount = uow.Object.UsersRepository.Get().Count(); var paramUser = new ApplicationUserModel { Id = 1, City = "Prades", DateOfBirth = new DateTime(1990, 9, 21), Email = "*****@*****.**", FamilyName = "DURANT", FirstName = "Jacques", LinkedInUrl = "LinkedInUrl", TwitterName = "", DisplayWork = new List <TextModel>() { new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[0], Value = "NewJob.fr" }, new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[1], Value = "NewJob.en" } }, PresentationTexts = new List <TextModel>() { new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[0], Value = "NewPresentation.fr" }, new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[1], Value = "NewPresentaiton.en" } }, PresentationSubTitleTexts = new List <TextModel>() { new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[0], Value = "NewPresentationSubTitle.fr" }, new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[1], Value = "NewPresentationSubTitle.en" } }, PresentationTitleTexts = new List <TextModel>() { new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[0], Value = "NewPresentationTitle.fr" }, new TextModel() { Language = uow.Object.LanguagesRepository.Get().ToList()[1], Value = "NewPresentationTitle.en" } } }; var result = new HomeController(uow.Object).EditApplicationUser(paramUser) as RedirectToRouteResult; // Assert Assert.IsNotNull(result); Assert.AreEqual(result.RouteValues["Action"], nameof(HomeController.Index)); Assert.AreEqual(usersCount, uow.Object.UsersRepository.Get().Count()); var expected = paramUser.ToDto(uow.Object.LanguagesRepository.Get().ToList()); var resultModel = uow.Object.UsersRepository.Get().First(); AssertExtension.PropertyValuesAreEquals(resultModel, expected); }
public void Should_Transform_ApplicationUserModel_To_ApplicationUser() { var expected = new ApplicationUser() { Id = 1, City = "Perpignan", DateOfBirth = new DateTime(2000, 1, 20), FamilyName = "Dupont", FirstName = "Gilles", Email = "*****@*****.**", PhoneNumber = "0033468000000", ZipCode = "66000", LinkedInUrl = "gilles.dupont66", TwitterName = "gillesDupont", DisplayWork = new List <Text>() { new Text() { Language = _languages[0], Value = "jb1.fr" }, new Text() { Language = _languages[1], Value = "jb1.en" } }, ApplicationUserPresentations = new List <Text>() { new Text() { Language = _languages[0], Value = "Presentation.fr" }, new Text() { Language = _languages[1], Value = "Presentation.en" } }, PresentationTitleTexts = new List <Text>() { new Text() { Language = _languages[0], Value = "PresentationTitle.fr" }, new Text() { Language = _languages[1], Value = "PresentationTitle.en" } }, PresentationSubTitleTexts = new List <Text>() { new Text() { Language = _languages[0], Value = "PresentationSubTitle.fr" }, new Text() { Language = _languages[1], Value = "PresentationSubTitle.en" } } }; var model = new ApplicationUserModel() { Id = 1, City = "Perpignan", DateOfBirth = new DateTime(2000, 1, 20), FamilyName = "Dupont", FirstName = "Gilles", Email = "*****@*****.**", PhoneNumber = "0033468000000", ZipCode = "66000", LinkedInUrl = "gilles.dupont66", TwitterName = "gillesDupont", DisplayWork = new List <TextModel>() { new TextModel() { Language = _languages[0], Value = "jb1.fr" }, new TextModel() { Language = _languages[1], Value = "jb1.en" } }, PresentationTexts = new List <TextModel>() { new TextModel() { Language = _languages[0], Value = "Presentation.fr" }, new TextModel() { Language = _languages[1], Value = "Presentation.en" } }, PresentationTitleTexts = new List <TextModel>() { new TextModel() { Language = _languages[0], Value = "PresentationTitle.fr" }, new TextModel() { Language = _languages[1], Value = "PresentationTitle.en" } }, PresentationSubTitleTexts = new List <TextModel>() { new TextModel() { Language = _languages[0], Value = "PresentationSubTitle.fr" }, new TextModel() { Language = _languages[1], Value = "PresentationSubTitle.en" } }, }; var result = model.ToDto(_languages); Assert.AreEqual(expected.Id, result.Id); Assert.AreEqual(expected.City, result.City); Assert.AreEqual(expected.DateOfBirth, result.DateOfBirth); Assert.AreEqual(expected.FamilyName, result.FamilyName); Assert.AreEqual(expected.FirstName, result.FirstName); Assert.AreEqual(expected.Email, result.Email); Assert.AreEqual(expected.PhoneNumber, result.PhoneNumber); Assert.AreEqual(expected.ZipCode, result.ZipCode); Assert.AreEqual(expected.LinkedInUrl, result.LinkedInUrl); Assert.AreEqual(expected.TwitterName, result.TwitterName); AssertExtension.CompareIEnumerable(expected.DisplayWork, result.DisplayWork, (x, y) => x.Language == y.Language && x.Value == y.Value); AssertExtension.CompareIEnumerable(expected.ApplicationUserPresentations, result.ApplicationUserPresentations, (x, y) => x.Language == y.Language && x.Value == y.Value); AssertExtension.CompareIEnumerable(expected.PresentationTitleTexts, result.PresentationTitleTexts, (x, y) => x.Language == y.Language && x.Value == y.Value); AssertExtension.CompareIEnumerable(expected.PresentationSubTitleTexts, result.PresentationSubTitleTexts, (x, y) => x.Language == y.Language && x.Value == y.Value); }