Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }