public static void myRegistration() { using (var ctx = new QuanDBContext()) { User u = new User(); bool isValid = true; foreach (PropertyInfo pi in u.GetType().GetProperties().Where(property => !"Id".Contains(property.Name))) { do { Console.WriteLine($"Enter {pi.Name}"); string input = pi.Name == "Password" ? HidePassword() : Console.ReadLine(); pi.SetValue(u, Convert.ChangeType(input, pi.PropertyType), null); RegistrationValidation rv = new RegistrationValidation(); ValidationResult results = rv.Validate(u); isValid = rv.CheckValidation(results); if (pi.Name == "Username" && isValid) { isValid = rv.UniquenessCheck(input); } if (pi.Name == "Password" && isValid) { Console.WriteLine($"Confirm {pi.Name}"); string confirm = HidePassword(); isValid = rv.ConfirmPassword(input, confirm); } } while (!isValid); } ctx.Add(u); ctx.SaveChanges(); } }
public bool UniquenessCheck(string stringToCheck) { using (var ctx = new QuanDBContext()) { var unique = from user in ctx.Users where user.Username == stringToCheck select user.Username.FirstOrDefault(); if (unique.Count() > 0) { Console.WriteLine("NOT UNIQUE, try again"); return(false); } else { return(true); } } }