Beispiel #1
0
        public async Task HandleAsync(UpdateRoomForRentAnnouncementCommand command, CancellationToken cancellationToken = default)
        {
            var getRoomForRentAnnouncementResult = await _roomForRentAnnouncementGetterService.GetByIdAsync(command.RoomForRentAnnouncementId);

            if (!getRoomForRentAnnouncementResult.Success)
            {
                throw new ResourceNotFoundException(getRoomForRentAnnouncementResult.Errors);
            }

            var cityVerificationResult = await _cityVerificationService.VerifyCityExistsAsync(command.CityId);

            if (!cityVerificationResult.Success)
            {
                throw new ValidationException(cityVerificationResult.Errors);
            }

            var cityDistrictsVerificationResult =
                await _cityDistrictVerificationService.VerifyCityDistrictsExistAsync(command.CityId,
                                                                                     command.CityDistricts);

            if (!cityDistrictsVerificationResult.Success)
            {
                throw new ValidationException(cityDistrictsVerificationResult.Errors);
            }

            UpdateDetails(getRoomForRentAnnouncementResult.Value, command);
            UpdateCityDistricts(getRoomForRentAnnouncementResult.Value, command.CityDistricts.ToList());
            UpdateRoomTypes(getRoomForRentAnnouncementResult.Value, command.RoomTypes.ToList());

            await _roomForRentAnnouncementRepository.UpdateAsync(getRoomForRentAnnouncementResult.Value);
        }
Beispiel #2
0
        public async Task VerifyCityDistrictsExistAsync_Should_Return_Verification_Ok()
        {
            var cityId        = Guid.NewGuid();
            var cityDistricts = new List <ICityDistrict>
            {
                new CityDistrict
                {
                    Id         = Guid.NewGuid(),
                    Name       = "Name",
                    PolishName = "PolishName",
                    CityId     = cityId
                }
            };
            var expectedResult = VerificationResult.Ok();

            _rivaAdministrativeDivisionApiClientServiceMock.Setup(x => x.GetCityDistrictsAsync(It.IsAny <Guid>()))
            .ReturnsAsync(cityDistricts);

            var result = await _service.VerifyCityDistrictsExistAsync(cityId, cityDistricts.Select(x => x.Id));

            result.Should().BeEquivalentTo(expectedResult);
        }
Beispiel #3
0
        public async Task HandleAsync(CreateFlatForRentAnnouncementCommand command, CancellationToken cancellationToken = default)
        {
            var cityVerificationResult = await _cityVerificationService.VerifyCityExistsAsync(command.CityId);

            if (!cityVerificationResult.Success)
            {
                throw new ValidationException(cityVerificationResult.Errors);
            }

            var cityDistrictsVerificationResult = await _cityDistrictVerificationService.VerifyCityDistrictsExistAsync(command.CityId, command.CityDistricts);

            if (!cityDistrictsVerificationResult.Success)
            {
                throw new ValidationException(cityDistrictsVerificationResult.Errors);
            }

            var flatForRentAnnouncement = _mapper.Map <CreateFlatForRentAnnouncementCommand, FlatForRentAnnouncement>(command);
            await _flatForRentAnnouncementRepository.AddAsync(flatForRentAnnouncement);
        }