public ActionResult FinishResigration(RegisterViewModel model) { User user = new User() { Email = model.Email, Password = model.Password, FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, FacultyNumber = model.FacultyNumber, CardNumber = model.CardNumber, PhoneNumber = model.PhoneNumber, UserType = UserTypes.Customer }; var update = new EntityUpdate(user); update.Attach(UserGroup.ENTITY, UserGroup.DEFAULT_ROLE, model.UserGroup); EntityOperationResult result = null; using (_securityService.BeginSystemContext()) { result = _entityService.Update(update); } if (result.Success) return View("RegisterComplete"); else { IEnumerable<UserGroup> availableGroups = null; using (_securityService.BeginSystemContext()) { var query = new EntityQuery2(UserGroup.ENTITY); query.AllProperties = true; query.WhereIs("UserType", UserTypes.Customer); availableGroups = _entityService.Query(query).Select(e => new UserGroup(e)); } if (result.Errors == null || result.Errors.Count == 0) ModelState.AddModelError("", "Unexpected error occured. Please, try again. If there is still a problem, contact the administrator."); else { foreach (var err in result.Errors) { ModelState.AddModelError("", err.Message); } } var selectedGroup = availableGroups.Single(g => g.Id == model.UserGroup); if (selectedGroup.Name.Equals("Студенти", StringComparison.InvariantCultureIgnoreCase) || selectedGroup.Name.Equals("Преподаватели", StringComparison.InvariantCultureIgnoreCase)) { return View("RegisterStudent", new RegisterStudentViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name }); } else if (selectedGroup.Name.Equals("Външни", StringComparison.InvariantCultureIgnoreCase)) return View("RegisterExternal", new RegisterExternalViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name }); else return View("RegisterOther", new RegisterViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name }); } }
public void Test_EntityOperation_Update() { var dbService = new TestDatabaseService(); var repo = new EntityRepository(dms, dbService, new SequenceProvider(dbService)); IEntityOperationService svc = new EntityOperationService(repo, dbService, new IEntityOperationInspector[] { new Inspector() }, new IEntityQueryInspector[] { new Inspector() }, new IEntityOperationLogic[] { new Logic() }); EntityUpdate update = new EntityUpdate("Author"); update.Set("FirstName", "John"); update.Set("LastName", "Tolkin"); update.Set("Numberofawards", 2); update.Set("IsAlive", false); EntityUpdate book = new EntityUpdate("book"); book.Set("Title", "The Eye of the World"); book.Set("genre", Genre.Fantasy); svc.Update(book); update.Attach("Book", "author", book.Id.Value); var result = svc.Update(update); Assert.AreEqual(true, result.Success); EntityQuery2 query = new EntityQuery2("Author"); query.AddProperties("FirstName", "LastName", "IsAlive", "CreatedOn"); query.Include("book", "author"); var res = repo.Search(query); Assert.AreEqual(1, res.Count()); var a = res.Single(); Assert.AreEqual("John", a.GetData<string>("Firstname")); Assert.AreEqual("Tolkin", a.GetData<string>("LastName")); var created = a.GetData<DateTime>("createdon"); Assert.AreEqual(DateTime.Now.Date, created.Date); var books = a.GetManyRelations("book", "author"); Assert.AreEqual(1, books.Count()); var b = books.Single().Entity; Assert.AreEqual("The Eye of the World", b.GetData<string>("title")); Assert.AreEqual(Genre.Fantasy, b.GetData<Genre>("genre")); created = b.GetData<DateTime>("createdon"); Assert.AreEqual(DateTime.Now.Date, created.Date); repo.Delete(a, true); repo.Delete(b); }
public ActionResult FinishResigration(RegisterViewModel model) { User user = new User() { Email = model.Email, Password = model.Password, FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, FacultyNumber = model.FacultyNumber, CardNumber = model.CardNumber, PhoneNumber = model.PhoneNumber, UserType = UserTypes.Customer }; var update = new EntityUpdate(user); update.Attach(UserGroup.ENTITY, UserGroup.DEFAULT_ROLE, model.UserGroup); EntityOperationResult result = null; using (_securityService.BeginSystemContext()) { result = _entityService.Update(update); } if (result.Success) { return(View("RegisterComplete")); } else { IEnumerable <UserGroup> availableGroups = null; using (_securityService.BeginSystemContext()) { var query = new EntityQuery2(UserGroup.ENTITY); query.AllProperties = true; query.WhereIs("UserType", UserTypes.Customer); availableGroups = _entityService.Query(query).Select(e => new UserGroup(e)); } if (result.Errors == null || result.Errors.Count == 0) { ModelState.AddModelError("", "Unexpected error occured. Please, try again. If there is still a problem, contact the administrator."); } else { foreach (var err in result.Errors) { ModelState.AddModelError("", err.Message); } } var selectedGroup = availableGroups.Single(g => g.Id == model.UserGroup); if (selectedGroup.Name.Equals("Студенти", StringComparison.InvariantCultureIgnoreCase) || selectedGroup.Name.Equals("Преподаватели", StringComparison.InvariantCultureIgnoreCase)) { return(View("RegisterStudent", new RegisterStudentViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } else if (selectedGroup.Name.Equals("Външни", StringComparison.InvariantCultureIgnoreCase)) { return(View("RegisterExternal", new RegisterExternalViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } else { return(View("RegisterOther", new RegisterViewModel() { UserGroup = model.UserGroup, UserGroupName = selectedGroup.Name })); } } }