public void Init(Usr u) { AllMusicTypes = null; SelectedMusicTypes = null; GenericMusicTypes = null; SelectedPlaces = null; MusicQ = null; PlaceQ = null; #region Populate MusicQ and MusicTypes if (u.FavouriteMusicTypeK == 0 && u.MusicTypesFavouriteCount == 0) { MusicQ = new Q(true); } else { List<int> musicTypesK = new List<int>(); #region Add MusicTypes if (u.MusicTypesFavouriteCount > 0) { foreach (MusicType mt in u.MusicTypesFavourite) { if (!musicTypesK.Contains(mt.K)) { musicTypesK.Add(mt.K); AllMusicTypes.Add(mt.Order, mt); SelectedMusicTypes.Add(mt.Order, mt); AddMusicTypeChildren(mt, ref musicTypesK); #region Add the parent if (u.UpdateSendGenericMusic && mt.ParentK > 1 && !musicTypesK.Contains(mt.ParentK)) { musicTypesK.Add(mt.ParentK); AllMusicTypes.Add(mt.Parent.Order, mt.Parent); GenericMusicTypes.Add(mt.Parent.Order, mt.Parent); } #endregion } } } else { if (u.FavouriteMusicTypeK != 0) { musicTypesK.Add(u.FavouriteMusicTypeK); AllMusicTypes.Add(u.FavouriteMusicType.Order, u.FavouriteMusicType); SelectedMusicTypes.Add(u.FavouriteMusicType.Order, u.FavouriteMusicType); AddMusicTypeChildren(u.FavouriteMusicType, ref musicTypesK); } } if (u.UpdateSendGenericMusic && !musicTypesK.Contains(1)) { musicTypesK.Add(1); MusicType mtAllMusic = new MusicType(1); AllMusicTypes.Add(mtAllMusic.Order, mtAllMusic); GenericMusicTypes.Add(mtAllMusic.Order, mtAllMusic); } #endregion musicTypesK.Sort(); MusicQ = new Or(musicTypesK.ConvertAll<Q>(mtk => new Q(EventMusicType.Columns.MusicTypeK, mtk)).ToArray()); } #endregion #region Populate PlaceQ and SelectedPlaces List<int> placesK = new List<int>(); if (u.HomePlaceK > 0) { placesK.Add(u.HomePlaceK); SelectedPlaces.Add(u.Home.Name, u.Home); } foreach (Place p in u.PlacesVisit(null, 0)) { if (!placesK.Contains(p.K)) { placesK.Add(p.K); SelectedPlaces.Add(p.Name, p); } } if (placesK.Count > 0) { placesK.Sort(); PlaceQ = new Or(placesK.ConvertAll<Q>(pk => new Q(Venue.Columns.PlaceK, pk)).ToArray()); } else { PlaceQ = new Q(false); } #endregion }