示例#1
0
        public void ImplicitConversionToStringResultsInCorrectString()
        {
            var    address = AddressFormat.For(addressData);
            string result  = address;

            Assert.Equal(Value, result);
        }
示例#2
0
        public void ToStringReturnsCorrectFormat()
        {
            string address = AddressFormat.For(addressData);
            string result  = address.ToString();

            Assert.Equal(Value, result);
        }
        public static int GetAddressId(StudioDbContext context, int?cityId)
        {
            var inputAddressData = new InputAddressData
            {
                Street = GConst.ValidName,
                Number = GConst.ValidAddressNumber
            };

            Address address = new Address {
                AddressFormat = AddressFormat.For(inputAddressData)
            };

            if (cityId != null)
            {
                address = new Address {
                    AddressFormat = AddressFormat.For(inputAddressData), CityId = cityId.Value
                };
            }

            context.Addresses.Add(address);
            context.SaveChangesAsync();

            var addressId = context.Addresses.SingleOrDefault(x => x.AddressFormat.Street == GConst.ValidName).Id;

            return(addressId);
        }
示例#4
0
        public void ShouldHaveCorrectStreetNumberBuildingAndEntrance()
        {
            var address = AddressFormat.For(addressData);

            Assert.Equal(Street, address.Street);
            Assert.Equal(Number, address.Number);
            Assert.Equal(Building, address.Building);
            Assert.Equal(Entrance, address.Entrance);
            Assert.Null(address.Floor);
            Assert.Null(address.Apartment);
            Assert.Null(address.District);
        }
示例#5
0
        public async Task <Unit> Handle(UpdateAddressCommand request, CancellationToken cancellationToken)
        {
            var address = await this.context.Addresses
                          .SingleOrDefaultAsync(a => a.Id == request.Id && a.IsDeleted != true, cancellationToken);

            if (address == null)
            {
                throw new NotFoundException(GConst.Address, request.Id);
            }

            var city = await this.context.Cities.FindAsync(request.CityId);

            if (city == null || city.IsDeleted == true)
            {
                throw new UpdateFailureException(GConst.Address, request.Street, string.Format(GConst.RefereceException, GConst.CityLower, request.CityId));
            }

            var inputAddressData = new InputAddressData
            {
                Street    = request.Street,
                Number    = request.Number,
                Building  = request.Building,
                Entrance  = request.Entrance,
                Floor     = request.Floor,
                Apartment = request.Apartment,
                District  = request.District
            };

            address.AddressFormat = AddressFormat.For(inputAddressData);
            address.Longitude     = request.Longitude;
            address.Latitude      = request.Latitude;
            address.CityId        = request.CityId;
            address.ModifiedOn    = DateTime.UtcNow;

            this.context.Addresses.Update(address);
            await this.context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }
示例#6
0
        public async Task <Unit> Handle(CreateAddressCommand request, CancellationToken cancellationToken)
        {
            var city = await this.context.Cities.FindAsync(request.CityId);

            if (city == null || city.IsDeleted == true)
            {
                throw new CreateFailureException(GConst.Address, request.Street, string.Format(GConst.RefereceException, GConst.CityLower, request.CityId));
            }

            var inputAddressData = new InputAddressData
            {
                Street    = request.Street,
                Number    = request.Number,
                Building  = request.Building,
                Entrance  = request.Entrance,
                Floor     = request.Floor,
                Apartment = request.Apartment,
                District  = request.District
            };

            var address = new Address
            {
                AddressFormat = AddressFormat.For(inputAddressData),
                Latitude      = request.Latitude,
                Longitude     = request.Longitude,
                CityId        = request.CityId,
                CreatedOn     = DateTime.UtcNow,
                IsDeleted     = false
            };

            this.context.Addresses.Add(address);

            await this.context.SaveChangesAsync(cancellationToken);

            return(Unit.Value);
        }