Exemple #1
0
        public static Model.Family GenerateFamilyRecords()
        {
            var f          = new Model.Family();
            var familyName = ChooseSurNames();

            f.id      = Guid.NewGuid().ToString();
            f.parents = new List <Model.Parent>();
            int parentsNbr = ChooseNumberOfParents();
            var parent1    = new Model.Parent();

            parent1.familyName = familyName;
            parent1.givenName  = ChooseGivenNames(ChooseGender());
            f.parents.Add(parent1);
            if (parentsNbr == 2)
            {
                var parent2 = new Model.Parent();
                parent2.familyName = familyName;
                parent2.givenName  = ChooseGivenNames(ChooseGender());
                f.parents.Add(parent2);
            }

            f.isRegistered = ChooseRegistration();
            f.children     = new List <Model.Child>();
            int childrenNbr = ChooseNumberOfKids();

            for (int i = 0; i < childrenNbr; i++)
            {
                var c = new Model.Child();
                c.pets = new List <Model.Pet>();
                int petNbr = ChooseNumberOfPets();
                for (int j = 0; j < petNbr; j++)
                {
                    var p = new Model.Pet();
                    p.givenName = ChooseGivenNames(ChooseGender());
                    c.pets.Add(p);
                }
                c.familyName = familyName;
                c.gender     = ChooseGender();
                c.givenName  = ChooseGivenNames(c.gender);
                c.grade      = r.Next(8) + 1;
                f.children.Add(c);
            }
            f.parentsCount  = f.parents.Count();
            f.childrenCount = f.children.Count();

            f.address        = new Model.Address();
            f.address.city   = ChooseRandomlyFromAList(Cities);
            f.address.county = ChooseRandomlyFromAList(Counties);
            f.address.state  = ChooseRandomlyFromAList(States);
            return(f);
        }
Exemple #2
0
        public void OnCreateButtonClick()
        {
            if (view.Username == string.Empty)
            {
                view.Message("Моля, въведете потребителско име.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            if (view.Pass == string.Empty)
            {
                view.Message("Моля, въведете парола.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            if (view.FirstName == string.Empty || view.Surname == string.Empty)
            {
                view.Message("Моля, въведете вашето лично име и фамилия.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            if (!Regex.IsMatch(view.FirstName, @"^[А-я]+$") || !Regex.IsMatch(view.Surname, @"^[А-я]+$"))
            {
                view.Message("Моля, използвайте само букви от българската азбука за вашето собствено име и фамилия.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            if (!Regex.IsMatch(view.Username, @"^[A-Za-z0-9_]+$"))
            {
                view.Message("Моля, въведете валидно потребтилеско име (разрешени са буквите от английската азбука, цифрите 0-9 и долна черта).", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            var existingParent  = data.Parents.Where(x => x.username == view.Username).SingleOrDefault();
            var existingTeacher = data.Teachers.Where(x => x.username == view.Username).SingleOrDefault();
            var existingAdmin   = data.Admins.Where(x => x.admin_username == view.Username).SingleOrDefault();

            if (existingParent != null || existingTeacher != null || existingAdmin != null)
            {
                view.Message("Това потребителско име вече е заето. Моля, изберете друго.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            if (!Regex.IsMatch(view.Pass, @"^.{8,25}$"))
            {
                view.Message("Моля, въведете парола с дължина между 8 и 25 символа.", "Внимание", Views.MessageIcon.Warning);
                return;
            }

            Utilities.IPasswordHash passHasher = new Utilities.PasswordHash();
            var passHash = passHasher.Generate(view.Pass);

            var newParent = new Model.Parent()
            {
                parent_firstN = view.FirstName, parent_lastN = view.Surname, username = view.Username, password_hash = passHash
            };

            data.Parents.Add(newParent);

            try
            {
                data.SaveChanges();
            }
            catch (Exception)
            {
                view.Message("В момента изпитваме технически затруднения. Моля, опитайте отново по-късно. Съжаляваме за причененото неудобство.", "Грешка", Views.MessageIcon.Error);
                return;
            }

            view.Message("Вашият профил беше създаден успешно. Можете да го използвате.", "Успех", Views.MessageIcon.Information);
            view.Close();
            loginPresenter.ShowLoginView();
        }