Exemplo n.º 1
0
        private static Dictionary <CityNameConfig, CityIdConfig> GetCityMap(UserConnection userConnection,
                                                                            List <QueryParameter> cities)
        {
            var map = new Dictionary <CityNameConfig, CityIdConfig>();

            if (!cities.Any())
            {
                return(map);
            }
            var select = new Select(userConnection).Distinct()
                         .Column("City", "Name").As("CityName")
                         .Column("City", "Id").As("CityId")
                         .Column("Country", "Name").As("CountryName")
                         .Column("Country", "Id").As("CountryId")
                         .Column("Region", "Name").As("RegionName")
                         .Column("Region", "Id").As("RegionId")
                         .From("City")
                         .LeftOuterJoin("Country").On("City", "CountryId").IsEqual("Country", "Id")
                         .LeftOuterJoin("Region").On("City", "RegionId").IsEqual("Region", "Id")
                         .Where("City", "Name").In(cities.Distinct());

            using (DBExecutor dbConnection = userConnection.EnsureDBConnection()) {
                using (IDataReader reader = dbConnection.ExecuteReader(select.GetSqlText(), select.Parameters)) {
                    while (reader.Read())
                    {
                        var cityName       = reader.GetColumnValue <string>("CityName");
                        var regionName     = reader.GetColumnValue <string>("RegionName");
                        var countryName    = reader.GetColumnValue <string>("CountryName");
                        var cityId         = reader.GetColumnValue <Guid>("CityId");
                        var regionId       = reader.GetColumnValue <Guid>("RegionId");
                        var countryId      = reader.GetColumnValue <Guid>("CountryId");
                        var cityNameConfig = new CityNameConfig(cityName, regionName, countryName);
                        if (map.ContainsKey(cityNameConfig))
                        {
                            continue;
                        }
                        map[cityNameConfig] = new CityIdConfig(cityId, regionId, countryId);
                    }
                }
            }
            return(map);
        }
Exemplo n.º 2
0
 private void FillAddressDetail(AddressDetail addressDetail, CityIdConfig cityIdConfig)
 {
     addressDetail.CityId    = cityIdConfig.CityId;
     addressDetail.RegionId  = cityIdConfig.RegionIdConfig.RegionId;
     addressDetail.CountryId = cityIdConfig.RegionIdConfig.CountryId;
 }