private void CustomReloadCollection(ICollection <FiasModelItem> collection, string sql, string parent) { collection.Clear(); using (var transaction = connection.BeginTransaction()) { using (var query = new DbQuery(connection, transaction)) { query.SqlText = string.Format(sql, parent); query.ExecuteDataReader(); while (query.DataReader.Read()) { var item = new FiasModelItem { Id = query.DataReader["id"].ToString(), KladrId = query.DataReader["KLADR"].ToString(), FullName = query.DataReader["full_name"].ToString(), FormalName = query.DataReader["formal_name"].ToString(), ScName = query.DataReader["SCNAME"].ToString(), ShortName = query.DataReader["SOCRNAME"].ToString(), Level = query.DataReader["ADDR_LEVEL"].ToString(), IdDetail = query.DataReader["ID_DETAIL"].ToString(), LiveStatus = query.DataReader["id_live_status"].ToString() }; collection.Add(item); } } } }
protected void OverrideNotifyPropertyChanged(string name) { NotifyPropertyChanged(name); FiasModelItem bottomSelectedItem = null; switch (name) { case "SelectedRegion": { SelectedAuto = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedRegion == null) { CustomReloadCollection(AutoCollection, FiasSql.AutoSql, bottomSelectedItem.Id); } else { CustomReloadCollection(AutoCollection, FiasSql.AutoSql, bottomSelectedItem.Id); CustomReloadCollection(AreaCollection, FiasSql.AreaSql, bottomSelectedItem.Id); CustomReloadCollection(CityCollection, FiasSql.CitySql, bottomSelectedItem.Id); CustomReloadCollection(CtarCollection, FiasSql.CtarSql, bottomSelectedItem.Id); CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedAuto": { SelectedArea = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedAuto == null) { CustomReloadCollection(AreaCollection, FiasSql.AreaSql, bottomSelectedItem.Id); } else { CustomReloadCollection(AreaCollection, FiasSql.AreaSql, bottomSelectedItem.Id); CustomReloadCollection(CityCollection, FiasSql.CitySql, bottomSelectedItem.Id); CustomReloadCollection(CtarCollection, FiasSql.CtarSql, bottomSelectedItem.Id); CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedArea": { SelectedCity = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedArea == null) { CustomReloadCollection(CityCollection, FiasSql.CitySql, bottomSelectedItem.Id); } else { CustomReloadCollection(CityCollection, FiasSql.CitySql, bottomSelectedItem.Id); CustomReloadCollection(CtarCollection, FiasSql.CtarSql, bottomSelectedItem.Id); CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedCity": { SelectedCtar = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedCity == null) { CustomReloadCollection(CtarCollection, FiasSql.CtarSql, bottomSelectedItem.Id); } else { CustomReloadCollection(CtarCollection, FiasSql.CtarSql, bottomSelectedItem.Id); CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedCtar": { SelectedPlace = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedCtar == null) { CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); } else { CustomReloadCollection(PlaceCollection, FiasSql.PlaceSql, bottomSelectedItem.Id); CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedPlace": { SelectedStreet = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedPlace == null) { CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); } else { CustomReloadCollection(StreetCollection, FiasSql.StreetSql, bottomSelectedItem.Id); CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } case "SelectedStreet": { SelectedHouse = null; bottomSelectedItem = GetBottomSelectedItem() ?? new FiasModelItem { Id = "0" }; if (SelectedStreet == null) { CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } else { CustomReloadCollection(HouseCollection, FiasSql.HouseSql, bottomSelectedItem.Id); } break; } } }
private void CustomReloadCollection(ICollection<FiasModelItem> collection, string sql, string parent) { collection.Clear(); using (var transaction = connection.BeginTransaction()) { using (var query = new DbQuery(connection, transaction)) { query.SqlText = string.Format(sql, parent); query.ExecuteDataReader(); while (query.DataReader.Read()) { var item = new FiasModelItem { Id = query.DataReader["id"].ToString(), KladrId = query.DataReader["KLADR"].ToString(), FullName = query.DataReader["full_name"].ToString(), FormalName = query.DataReader["formal_name"].ToString(), ScName = query.DataReader["SCNAME"].ToString(), ShortName = query.DataReader["SOCRNAME"].ToString(), Level = query.DataReader["ADDR_LEVEL"].ToString(), IdDetail = query.DataReader["ID_DETAIL"].ToString(), LiveStatus = query.DataReader["id_live_status"].ToString() }; collection.Add(item); } } } }