Ejemplo n.º 1
0
        private static Dictionary <RegionNameConfig, RegionIdConfig> GetRegionMap(UserConnection userConnection,
                                                                                  List <QueryParameter> regions)
        {
            var map = new Dictionary <RegionNameConfig, RegionIdConfig>();

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

            using (DBExecutor dbConnection = userConnection.EnsureDBConnection()) {
                using (IDataReader reader = dbConnection.ExecuteReader(select.GetSqlText(), select.Parameters)) {
                    while (reader.Read())
                    {
                        var regionName       = reader.GetColumnValue <string>("RegionName");
                        var countryName      = reader.GetColumnValue <string>("CountryName");
                        var regionId         = reader.GetColumnValue <Guid>("RegionId");
                        var countryId        = reader.GetColumnValue <Guid>("CountryId");
                        var regionNameConfig = new RegionNameConfig(regionName, countryName);
                        if (map.ContainsKey(regionNameConfig))
                        {
                            continue;
                        }
                        map[regionNameConfig] = new RegionIdConfig(regionId, countryId);
                    }
                }
            }
            return(map);
        }
Ejemplo n.º 2
0
 public CityNameConfig(string city, string region, string country)
     : this()
 {
     CityName         = city;
     RegionNameConfig = new RegionNameConfig(region, country);
 }