示例#1
0
        public async Task GetByIdAsync_Should_Return_GetResult_Ok_With_City()
        {
            var id   = Guid.NewGuid();
            var city = new City(id, new List <Guid> {
                Guid.NewGuid()
            });
            var expectedResult = GetResult <City> .Ok(city);

            _cityRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>()))
            .ReturnsAsync(city);

            var result = await _service.GetByIdAsync(id);

            result.Should().BeEquivalentTo(expectedResult);
        }
示例#2
0
        private async Task CheckCityExistenceAsync(Guid cityId)
        {
            var getStateResult = await _cityGetterService.GetByIdAsync(cityId);

            if (!getStateResult.Success)
            {
                throw new ValidationException(getStateResult.Errors);
            }
        }
示例#3
0
        public async Task <CityOutputQuery> HandleAsync(GetCityInputQuery inputQuery, CancellationToken cancellationToken = default)
        {
            var getCityResult = await _cityGetterService.GetByIdAsync(inputQuery.CityId);

            if (!getCityResult.Success)
            {
                throw new ResourceNotFoundException(getCityResult.Errors);
            }
            return(_mapper.Map <City, CityOutputQuery>(getCityResult.Value));
        }
示例#4
0
        public async Task GetByIdAsync_Should_Return_GetResult_With_City()
        {
            var id   = Guid.NewGuid();
            var city = City.Builder()
                       .SetId(id)
                       .SetRowVersion(Array.Empty <byte>())
                       .SetName("Name")
                       .SetPolishName("PolishName")
                       .SetStateId(Guid.NewGuid())
                       .Build();

            var expectedResult = GetResult <City> .Ok(city);

            _cityRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(city);

            var result = await _cityGetterService.GetByIdAsync(id);

            result.Should().BeEquivalentTo(expectedResult);
        }
示例#5
0
        private async Task UpdateCityIdAsync(CityDistrict cityDistrict, Guid cityId)
        {
            if (cityDistrict.CityId != cityId)
            {
                var getCityResult = await _cityGetterService.GetByIdAsync(cityId);

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

                cityDistrict.ChangeCityId(cityId);
            }
        }
示例#6
0
        public async Task HandleAsync(DeleteCityCommand command, CancellationToken cancellationToken = default)
        {
            var getCityResult = await _cityGetterService.GetByIdAsync(command.CityId);

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

            if (getCityResult.Value.RowVersion.Except(command.RowVersion).Any())
            {
                throw new PreconditionFailedException();
            }

            await _cityRepository.DeleteAsync(getCityResult.Value);
        }
示例#7
0
        public async Task <VerificationResult> VerifyCityAndCityDistrictsAsync(Guid cityId, IEnumerable <Guid> cityDistrictIds)
        {
            var getCityResult = await _cityGetterService.GetByIdAsync(cityId);

            if (!getCityResult.Success)
            {
                return(VerificationResult.Fail(getCityResult.Errors));
            }

            var incorrectCityDistricts = cityDistrictIds.Except(getCityResult.Value.CityDistricts);

            if (incorrectCityDistricts.Any())
            {
                var errors = new Collection <IError>
                {
                    new Error(CityErrorCodeEnumeration.IncorrectCityDistricts, CityErrorMessage.IncorrectCityDistricts)
                };
                return(VerificationResult.Fail(errors));
            }
            return(VerificationResult.Ok());
        }