Esempio n. 1
0
        public async Task GetByIdAsync_Should_Return_GetResult_Ok()
        {
            var roomForRentAnnouncement = RoomForRentAnnouncement.Builder()
                                          .SetId(Guid.NewGuid())
                                          .SetTitle("Title")
                                          .SetSourceUrl("http://sourceUrl")
                                          .SetCityId(Guid.NewGuid())
                                          .SetCreated(DateTimeOffset.UtcNow)
                                          .SetDescription("Description")
                                          .SetCityDistricts(new List <Guid> {
                Guid.NewGuid()
            })
                                          .SetPrice(100)
                                          .SetRoomTypes(new List <RoomTypeEnumeration> {
                RoomTypeEnumeration.Double
            })
                                          .Build();
            var expectedResult = GetResult <RoomForRentAnnouncement> .Ok(roomForRentAnnouncement);

            _roomForRentAnnouncementRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>()))
            .ReturnsAsync(roomForRentAnnouncement);

            var result = await _service.GetByIdAsync(roomForRentAnnouncement.Id);

            result.Should().BeEquivalentTo(expectedResult);
        }
Esempio n. 2
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);
        }
Esempio n. 3
0
        public async Task <RoomForRentAnnouncementOutputQuery> HandleAsync(GetRoomForRentAnnouncementInputQuery inputQuery, CancellationToken cancellationToken = default)
        {
            var getRoomForRentAnnouncementResult = await _roomForRentAnnouncementGetterService.GetByIdAsync(inputQuery.RoomForRentAnnouncementId);

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

            return(_mapper.Map <RoomForRentAnnouncement, RoomForRentAnnouncementOutputQuery>(getRoomForRentAnnouncementResult.Value));
        }
Esempio n. 4
0
        public async Task HandleAsync(DeleteRoomForRentAnnouncementCommand command, CancellationToken cancellationToken = default)
        {
            var getRoomForRentAnnouncementResult = await _roomForRentAnnouncementGetterService.GetByIdAsync(command.FlatForRentAnnouncementId);

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

            await _roomForRentAnnouncementRepository.DeleteAsync(getRoomForRentAnnouncementResult.Value);
        }