public override int GetHashCode() { unchecked { // Choose large primes to avoid hashing collisions const int HashingBase = (int)2166136261; const int HashingMultiplier = 16777619; int hash = HashingBase; hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, Price) ? Price.GetHashCode() : 0); hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, UserId) ? UserId.GetHashCode() : 0); hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, InsuranceNumber) ? InsuranceNumber.GetHashCode() : 0); hash = (hash * HashingMultiplier) ^ (!Object.ReferenceEquals(null, IsDiscountProtected) ? IsDiscountProtected.GetHashCode() : 0); return(hash); } }
private void SeedPatients(CancellationToken cancellationToken) { Random rnd = new Random(Environment.TickCount); RandomDate randomDate = new RandomDate(1950, DateTime.Now.Year - 10); int n = 0; var patients = new Patient[] { NewPatient("Максимов", "Сергей", "Иванович", "М"), NewPatient("Иванова", "Любовь", "Андреевна", "Ж"), NewPatient("Касьянов", "Михаил", "Валерьевич", "М"), NewPatient("Путин", "Владимир", "Владимирович", "М"), NewPatient("Жириновский", "Владимир", "Вольфович", "М"), NewPatient("Филатова", "Татьяна", "Николаевна", "Ж"), NewPatient("Гончаров", "Иван", "Александрович", "М"), NewPatient("Державин", "Гавриил", "Романович", "М"), NewPatient("Достоевский", "Фёдор", "Михайлович", "М"), NewPatient("Замятин", "Евгений", "Иванович", "М"), NewPatient("Карамзин", "Николай", "Михайлович", "М"), NewPatient("Тютчев", "Фёдор", "Иванович", "М"), NewPatient("Лермонтов", "Михаил", "Юрьевич", "М"), NewPatient("Ломоносов", "Михаил", "Васильевич", "М"), NewPatient("Некрасов", "Николай", "Николаевич", "М"), NewPatient("Мамин-Сибиряк", "Дмитрий", "Наркисович", "М"), NewPatient("Паустовский", "Константин", "Георгиевич", "М"), NewPatient("Пушкин", "Александр", "Сергеевич", "М"), NewPatient("Толстой", "Алексей", "Николаевич", "М"), NewPatient("Тургенев", "Иван", "Сергеевич", "М"), NewPatient("Цветаева", "Марина", "Ивановна", "Ж"), }; _context.Patients.AddRange(patients); Patient NewPatient(string lastName, string firstName, string patronymic, string sex) { var birthDate = randomDate.Next(); return(new Patient { BirthDate = birthDate, LastName = lastName, FirstName = firstName, Patronymic = patronymic, Sex = sex, InsuranceNumber = NewInsuranceNumber(), Inoculations = NewInoculations(birthDate.Year + 1) }); } string NewInsuranceNumber() { string insNum = (InsuranceNumber.MinNumber + n++).ToString("000000000"); string checkNum = InsuranceNumber.GetChecksum(insNum).ToString("00"); return($"{insNum}{checkNum}"); } ICollection <Inoculation> NewInoculations(int minYear) { var randomDate = new RandomDate(minYear, DateTime.Now.Year - 1); int n = rnd.Next(0, _vaccines.Length); var inoculations = new List <Inoculation>(n); for (int i = 0; i < n; i++) { var inoculation = new Inoculation { HasConsent = (rnd.Next(0, 2) == 1), Date = randomDate.Next(), VaccineId = _vaccines[i].Id, }; inoculations.Add(inoculation); } return(inoculations); } }