public async System.Threading.Tasks.Task <IActionResult> CheckApartmentState()
        {
            int loggedUserId = this.GetClaim <int>(nameof(DataAccess.Entities.User.Id));

            User resident = await unitOfWork.GetRepository <User, UserRepository>().GetAsync(loggedUserId);

            foreach (int apartmentId in apartmentRepository.ExpiredApartment(loggedUserId, daysToExpire: 90))
            {
                // update apartment
                Apartment apartment = await apartmentRepository.GetAsync(apartmentId);

                apartment.HasUserBeenNotified = true;

                unitOfWork.Update(apartment);

                // create notification
                await unitOfWork.GetRepository <Notification, NotificationRepository>()
                .InsertAsync(new Notification()
                {
                    EmergencyLevel = DataAccess.Enums.EmergencyLevel.Danger,
                    Resident       = resident,
                    Description    = "Your rent will expire soon"
                });
            }

            await unitOfWork.SaveAsync();

            return(RedirectToAction(nameof(Index)));
        }