Esempio n. 1
0
        public async Task <CreateTenantDto> CreateTenantAsync(CreateTenantDto createTenantDto)
        {
            try
            {
                if (createTenantDto.FlatId != null && !CheckFlatExist(createTenantDto.FlatId))
                {
                    return new CreateTenantDto {
                               Errors = new[] { $"Flat with Id: '{createTenantDto.FlatId}' not exist." }
                    }
                }
                ;

                if (createTenantDto.FlatId != null && !CheckHouseExistByFlatId(createTenantDto.FlatId))
                {
                    return new CreateTenantDto {
                               Errors = new[] { $"House with (Flat Id: '{createTenantDto.FlatId}') not exist." }
                    }
                }
                ;

                if (CheckTenantExist(createTenantDto))
                {
                    return new CreateTenantDto {
                               Errors = new[] { $"Tenant with provided details already exist." }
                    }
                }
                ;

                BBIT.Domain.Entities.Tenant.Tenant tenant = CreateNewTenant(createTenantDto);

                var flat = GetFlatById(createTenantDto.FlatId);

                flat.AmountOfTenants++;

                tenant.Flat = flat;

                _dbContext.Flats.Update(flat);

                await _dbContext.Tenants.AddAsync(tenant);

                await _dbContext.SaveChangesAsync();

                var createTenantDtoToReturn = tenant.TenantDtoToCreateTenantDto();
                createTenantDtoToReturn.Status = true;

                return(createTenantDtoToReturn);
            }
            catch (Exception e)
            {
                _logger.LogError($"Error on creating Tenant in database. Exception message: {e.Message};\nInner message: {e.InnerException?.Message}");
                return(new CreateTenantDto
                {
                    Errors = new[] { "Error on creating Tenant in database." },
                    ServerError = true
                });
            }
        }
Esempio n. 2
0
 private static TenantDto ConvertTenantToTenantDto(BBIT.Domain.Entities.Tenant.Tenant tenant)
 {
     return(new TenantDto
     {
         Id = tenant.Id.ToString(),
         Name = tenant.Name,
         Surname = tenant.Surname,
         PersonalCode = tenant.PersonalCode,
         DateOfBirth = tenant.DateOfBirth.ToString("d"),
         PhoneNumber = tenant.PhoneNumber,
         Email = tenant.Email,
         Flat = tenant.Flat?.FlatToFlatDto()
     });
 }
Esempio n. 3
0
 public static TenantDto TenantToTenantDto(this BBIT.Domain.Entities.Tenant.Tenant tenant) =>
 ConvertTenantToTenantDto(tenant);