예제 #1
0
        public async Task AddResidentToApartment(int apartmentId, int residentId)
        {
            var resident = await _unit.ResidentRepository.GetResidentWithApartmentsById(residentId);

            var apartment = await _unit.ApartmentRepository.GetApartmentWithDataById(apartmentId);

            resident.AssertIsNotNull();
            apartment.AssertIsNotNull();

            var apartmentResidentsNumber = apartment.Residents.Select(ar => ar.Resident).Count();

            if (apartment.Square / apartmentResidentsNumber < 9)
            {
                throw new BusinessException("Apartment square for 1 person should be at least 9 square meters.");
            }

            var apartmentResident = new ApartmentResidents {
                ApartmentId = apartmentId, ResidentId = residentId
            };
            await _unit.ApartmentResidentsRepository.Create(apartmentResident);

            await _unit.SaveAsync();
        }
예제 #2
0
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);

            #region SeedData

            var apartment1 = new Apartment()
            {
                Id      = 1,
                Type    = "Serdychka flat",
                HouseId = 1,
                Square  = 100
            };

            var resident1 = new Resident()
            {
                Id        = 1,
                Name      = "Max Snizhok",
                BirthDate = DateTime.Now.AddYears(-18), //always 18 y.o. with birthday = today
            };

            var apartmentResident1 = new ApartmentResidents()
            {
                Id          = 1,
                ApartmentId = 1,
                ResidentId  = 1
            };

            var apartment2 = new Apartment()
            {
                Id      = 2,
                Type    = "Nirvana",
                HouseId = 1,
                Square  = 60
            };

            var resident2 = new Resident()
            {
                Id        = 2,
                Name      = "Kurtka Bayne",
                BirthDate = DateTime.Now.AddYears(-27)
            };

            var apartmentResident2 = new ApartmentResidents()
            {
                Id          = 2,
                ApartmentId = 2,
                ResidentId  = 2
            };

            var country1 = new Country()
            {
                Id   = 1,
                Name = "Ukraine"
            };

            var city1 = new City()
            {
                Id         = 1,
                Name       = "Kyiv",
                Population = 2000000,
                CountryId  = 1
            };

            var street1 = new Street()
            {
                Id     = 1,
                Name   = "Khreshchatyk",
                CityId = 1
            };

            var house1 = new House()
            {
                Id        = 1,
                Latitude  = 50.44,
                Longitude = 30.52,
                StreetId  = 1
            };

            modelBuilder.Entity <Apartment>().HasData(apartment1, apartment2);
            modelBuilder.Entity <ApartmentResidents>().HasData(apartmentResident1, apartmentResident2);
            modelBuilder.Entity <Resident>().HasData(resident1, resident2);
            modelBuilder.Entity <City>().HasData(city1);
            modelBuilder.Entity <Country>().HasData(country1);
            modelBuilder.Entity <House>().HasData(house1);
            modelBuilder.Entity <Street>().HasData(street1);
            #endregion

            modelBuilder.ApplyConfigurationsFromAssembly(Assembly.GetExecutingAssembly());
        }