Esempio n. 1
0
        public async Task EditOwnerTenantAsync(OwnerTenantDto ownerTenant)
        {
            var prevOwnerTenants = await _buildingManager.GetAllCurrrentOwnerOfApartment(ownerTenant.ApartmentId);

            if (ownerTenant.IsOwner)
            {
                var owner = prevOwnerTenants.FirstOrDefault(t => t.IsOwner);
                if (owner != null && ownerTenant.PersonId == owner.PersonId)
                {
                    owner.To = ownerTenant.From;
                    await EditOwnerTenantAsync(owner);
                }
                await _personRepository.AddOwnerTenantAsync(ownerTenant);
            }
            else
            {
                var tenant = prevOwnerTenants.FirstOrDefault(t => !t.IsOwner);
                if (tenant != null && (tenant.PersonId != ownerTenant.PersonId || tenant.OccupantCount != ownerTenant.OccupantCount))
                {
                    tenant.To = DateTime.Now;
                    await EditOwnerTenantAsync(tenant);
                }
                await _personRepository.AddOwnerTenantAsync(ownerTenant);
            }
        }
Esempio n. 2
0
        public async Task AddOwnerTenantAsync(OwnerTenantDto owner)
        {
            var entry = owner.ToEntry();
            await _baseInfoContext.OwnerTenants.AddAsync(entry);

            await _baseInfoContext.SaveChangesAsync();

            owner.OwnerTenantId = entry.OwnerTenantId;
        }
Esempio n. 3
0
 public static OwnerTenantRespone ToModel(this OwnerTenantDto owner)
 {
     return(new OwnerTenantRespone
     {
         OccupantCount = owner.OccupantCount,
         IsOwner = owner.IsOwner,
         From = owner.From,
         To = owner.To,
         OwnerTenantId = owner.OwnerTenantId
     });
 }
Esempio n. 4
0
 public static OwnerTenant ToEntry(this OwnerTenantDto ownertenantDto)
 {
     return(new OwnerTenant
     {
         OwnerTenantId = ownertenantDto.OwnerTenantId,
         OccupantCount = ownertenantDto.OccupantCount,
         IsOwner = ownertenantDto.IsOwner,
         From = ownertenantDto.From,
         To = ownertenantDto.To,
         PersonId = ownertenantDto.PersonId,
         ApartmentId = ownertenantDto.ApartmentId,
     });
 }
        public void OwnertenatDto_Map_To_Entry()
        {
            DateTime       now   = DateTime.Now;
            OwnerTenantDto otdto = new OwnerTenantDto {
                PersonId        = 1, From = now, IsOwner = false, OccupantCount = 4
                , OwnerTenantId = 7, ApartmentId = 4
            };
            OwnerTenant ow = otdto.ToEntry();

            bool check = false;

            if (ow.IsOwner == otdto.IsOwner && ow.From == otdto.From && ow.ApartmentId == otdto.ApartmentId &&
                ow.OccupantCount == otdto.OccupantCount && ow.PersonId == otdto.PersonId)
            {
                check = true;
            }
            Assert.IsTrue(check);
        }
Esempio n. 6
0
        public async Task EditOwnerTenantAsync(OwnerTenantDto owner)
        {
            var ownertenant = await _baseInfoContext.OwnerTenants.AsNoTracking().FirstOrDefaultAsync(b => b.OwnerTenantId == owner.OwnerTenantId);

            if (ownertenant == null)
            {
                throw new NullReferenceException($"Cannot Find OwnerTenant with {owner.OwnerTenantId} id");
            }
            var entry = owner.ToEntry();

            entry.PersonId    = ownertenant.PersonId;
            entry.ApartmentId = ownertenant.ApartmentId;
            _baseInfoContext.OwnerTenants.Update(entry);
            try
            {
                await _baseInfoContext.SaveChangesAsync();
            }
            catch (Exception e)
            {
            }
        }
Esempio n. 7
0
        private async Task ValidateOwnerTenantAsync(OwnerTenantDto ownertenant)
        {
            if (ownertenant.To < ownertenant.From)
            {
                throw new ValidationException(ErrorCodes.Invalid_Entrence_Time, $"Date entrance should not be greater than Exit Time ");
            }

            var allCurrentOwners = await _buildingManager.GetAllCurrrentOwnerOfApartment(ownertenant.ApartmentId);

            foreach (var ot in allCurrentOwners)
            {
                if (ot.IsOwner == ownertenant.IsOwner && ot.From < ownertenant.To && ot.To >= ownertenant.From)
                {
                    throw new ValidationException(ErrorCodes.Apartment_Is_Taken, $"This apartment Is occupied");
                }
            }

            if (!ownertenant.IsOwner && ownertenant.OccupantCount < 1)
            {
                throw new ValidationException(ErrorCodes.OccupantCount_Error, $"The counts of the occupant should not be smaller than 1");
            }
        }
 public Task EditOwnerTenantAsync(OwnerTenantDto owner)
 {
     throw new NotImplementedException();
 }
 public async Task AddOwnerTenant(OwnerTenantDto owner)
 {
     owner.OwnerTenantId = _ownertenants.Max(a => a.OwnerTenantId) + 1;
     _ownertenants.Add(owner);
 }
Esempio n. 10
0
        public async Task AddOwnerTenantAsync(OwnerTenantDto ownerTenant)
        {
            await ValidateOwnerTenantAsync(ownerTenant);

            await _personRepository.AddOwnerTenantAsync(ownerTenant);
        }
        public async Task EditOwnerTenantAsync(OwnerTenantDto ownerTenant)
        {
            await _personManager.EditOwnerTenantAsync(ownerTenant);

            await _chargeCalculationApplicationService.ReCalculateChargeAsync(ownerTenant.ApartmentId, ownerTenant.From, ownerTenant.To);
        }