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); }
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(); }