示例#1
0
        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();
            }
        }
示例#2
0
        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);
                }
            }
        }