示例#1
0
		public void SetState()
		{
			Query q = new Query();
			q.OrderBy = MusicType.OrderBy;
			MusicTypeSet mts = new MusicTypeSet(q);
			foreach (MusicType mt in mts)
			{
					CheckBox cb = (CheckBox)Cambro.Web.Helpers.SearchControl(Tree, "ItemCb" + mt.K);
					cb.Checked = false;
				if (mt.Children.Count > 0)
				{
					HtmlGenericControl children = (HtmlGenericControl)Cambro.Web.Helpers.SearchControl(Tree, "Children" + mt.K);
					children.Style["display"] = null;
					Label lab = (Label)Cambro.Web.Helpers.SearchControl(Tree, "LabCb" + mt.K);
					lab.Style["display"] = "none";
				}
			}
			if (initialMusicTypes != null)
			{
				foreach (MusicType mt in initialMusicTypes)
				{
					CheckBox cb = (CheckBox)Cambro.Web.Helpers.SearchControl(Tree, "ItemCb" + mt.K);
					cb.Checked = true;
					if (mt.Children.Count > 0)
					{
						HtmlGenericControl children = (HtmlGenericControl)Cambro.Web.Helpers.SearchControl(Tree, "Children" + mt.K);
						children.Style["display"] = "none";
						Label lab = (Label)Cambro.Web.Helpers.SearchControl(Tree, "LabCb" + mt.K);
						lab.Style["display"] = null;
					}
				}
			}
		}
		protected void Page_Load(object sender, EventArgs e)
		{
			if (!Page.IsPostBack)
			{
				
				
				DsiPage page = (DsiPage)this.Page;

				var musicTypes = new Dictionary<string, int>() {{"All Music", 0}};
				var musicTypeSet = new MusicTypeSet(new Query(new Q(Bobs.MusicType.Columns.K, page.RelevantMusic.ToArray())));
				foreach (var musicType in musicTypeSet)
				{
					musicTypes[musicType.Name] = musicType.K;
				}
				foreach (var musicType in Identity.Current.FavouriteMusicTypes.ConvertAll(k => new MusicType(k)))
				{
					musicTypes[musicType.Name] = musicType.K;
				}
				this.uiMusicTypes.Items.AddRange(musicTypes.Select(mt => new ListItem(mt.Key, mt.Value.ToString())).ToArray());

				var places = new Dictionary<string, int>() {{"Anywhere", -1}};
				var placeSet = new PlaceSet(new Query(new Q(Bobs.Place.Columns.K, page.RelevantMusic.ToArray())));
				foreach (var place in placeSet)
				{
					places[place.Name] = place.K;
				}
				foreach (var place in Identity.Current.PlacesVisited.ConvertAll(k => new Place(k)))
				{
					places[place.Name] = place.K;
				}
				this.uiPlaces.Items.AddRange(places.Select(mt => new ListItem(mt.Key, mt.Value.ToString())).ToArray());
			}
			//if (Common.Settings.UseCometToServeRequests)
			//{
			//    this.uiBuddyMultiSelector.WebServiceMethod = "";
			//    this.uiBuddyMultiSelector.WebServiceUrl = "";
			//    this.uiBuddyMultiSelector.CometServiceUrl = @"/WebServices/CometAutoComplete/GetBuddiesThenUsrs.ashx";
			//}

			uiBuddyMultiSelector.TextBoxTabIndex = TabIndexBase + 1;
			uiJustBuddiesRadio.TabIndex = (short)(TabIndexBase + 2);
			uiAllMembersRadio.TabIndex = (short)(TabIndexBase + 3);
			uiShowBuddyList.TabIndex = (short)(TabIndexBase + 4);
			uiBuddyList.TabIndex = (short)(TabIndexBase + 5);
			uiShowAddAll.TabIndex = (short)(TabIndexBase + 6);
			uiAddAllButton.Attributes["tabindex"] = (TabIndexBase + 7).ToString();
			uiShowAddBy.TabIndex = (short)(TabIndexBase + 8);
			uiPlaces.TabIndex = (short)(TabIndexBase + 9);
			uiMusicTypes.TabIndex = (short)(TabIndexBase + 10);
			uiAddByMusicAndPlace.Attributes["tabindex"] = (TabIndexBase + 11).ToString();
			uiShowAllTownsAndMusic.TabIndex = (short)(TabIndexBase + 12);


		}
示例#3
0
		public List<int> SelectedChildren(MusicTypeSet children)
		{
			List<int> tmpArrayList = new List<int>();

			foreach (MusicType mt in children)
			{
					CheckBox cb = (CheckBox)Cambro.Web.Helpers.SearchControl(Tree, "ItemCb" + mt.K);
					if (cb.Checked)
						tmpArrayList.Add(mt.K);
					else if (mt.Children.Count > 0)
						tmpArrayList.AddRange(SelectedChildren(mt.Children));
				}

			return tmpArrayList;
		}
示例#4
0
		public GetMusicTypesAndPlacesResult GetPlacesAndMusicTypes()
		{
			List<Pair> places = new List<Pair>();
			var placesSet = new PlaceSet(new Query(new Q(Place.Columns.CountryK, Country.FilterK)) { OrderBy = new OrderBy(Place.Columns.Name) });
			places.Add(new Pair() {key = "Anywhere", value = "-1"});
			foreach (var place in placesSet)
			{
				places.Add(new Pair() {key = GlobalObject.escape(place.Name), value = place.K.ToString()});
			}
			
			var musicTypesSet = new MusicTypeSet(new Query() { OrderBy = new OrderBy(MusicType.Columns.Order) });
			var musicTypes = new List<Pair>();
			foreach (var musicType in musicTypesSet)
			{
				string leadingSpaces = new string(' ', musicType.Order.ToString().IndexOf('.') == -1 ? 0 : 1);
				musicTypes.Add(new Pair() {key = GlobalObject.escape(leadingSpaces + musicType.GenericName), value = musicType.K.ToString()});
			}
			
			return new GetMusicTypesAndPlacesResult() { musicTypes = musicTypes.ToArray(), places = places.ToArray() };
		}
示例#5
0
		public void Update(object o, System.EventArgs e)
		{
			MusicTypeSet mtsFav = Usr.Current.MusicTypesFavourite;
			Query q = new Query();
			q.OrderBy = MusicType.OrderBy;
			MusicTypeSet mts = new MusicTypeSet(q);
			List<int> alSel = MusicTypes.SelectedMusicTypes;

			foreach (MusicType mt in mts)
			{
				bool found = false;
				foreach (MusicType mtFav in mtsFav)
				{
					if (mtFav.K == mt.K)
					{
						found = true;
						if (!alSel.Contains(mt.K))
						{
							UsrMusicTypeFavourite u = new UsrMusicTypeFavourite(Usr.Current.K, mt.K);
							u.Delete();
							u.Update();
						}
						break;
					}
				}
				if (!found && alSel.Contains(mt.K))
				{
					UsrMusicTypeFavourite newMtf = new UsrMusicTypeFavourite();
					newMtf.UsrK = Usr.Current.K;
					newMtf.MusicTypeK = mt.K;
					newMtf.Update();
				}
			}
			Usr.Current.MusicTypesFavourite = null;
			MusicTypes.InitialMusicTypes = Usr.Current.MusicTypesFavourite;
			MusicTypes.SetState();
			UpdatedLabel.Visible = true;
			Usr.Current.UpdateMusicTypesFavouriteCount(true);
			if (ContainerPage.Url["NextPage"].Equals("UpdateOptions"))
				Response.Redirect("/pages/updateoptions");
		}
		void BindAddAll()
		{
			if (Buddies.Count > 0)
			{
				Query qMusic = new Query();
				qMusic.Columns = new ColumnSet(MusicType.Columns.K, MusicType.Columns.Name, MusicType.Columns.ParentK);
				if (AddAllShowAllItemsCheck.Checked || ((DsiPage)Page).RelevantMusic.Count == 0)
				{
					qMusic.QueryCondition = new Q(true);
				}
				else
				{
					ArrayList alMusicQ = new ArrayList();
					foreach (int mK in ((DsiPage)Page).RelevantMusic)
						alMusicQ.Add(new Q(MusicType.Columns.K, mK));
					qMusic.QueryCondition = new Or((Q[])alMusicQ.ToArray(typeof(Q)));
				}
				qMusic.OrderBy = new OrderBy(MusicType.Columns.Order);
				MusicTypeSet mts = new MusicTypeSet(qMusic);

				ArrayList musicTypesDone = new ArrayList();
				AddAllMusicDrop.Items.Clear();
				musicTypesDone.Add(1);
				AddAllMusicDrop.Items.Add(new ListItem(GetMusicTypeName(1), "1"));

				foreach (MusicType mt in mts)
				{
					if (!musicTypesDone.Contains(mt.ParentK) && mt.ParentK != 0)
					{
						musicTypesDone.Add(mt.ParentK);
						AddAllMusicDrop.Items.Add(new ListItem(GetMusicTypeName(mt.ParentK), mt.ParentK.ToString()));
					}
					if (!musicTypesDone.Contains(mt.K))
					{
						musicTypesDone.Add(mt.K);
						AddAllMusicDrop.Items.Add(new ListItem((mt.ParentK == 1 ? "" : " - ") + mt.Name.ToLower(), mt.K.ToString()));
					}
				}

				Query qPlace = new Query();
				qPlace.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K);
				if (AddAllShowAllItemsCheck.Checked || ((DsiPage)Page).RelevantPlaces.Count == 0)
				{
					qPlace.QueryCondition = Country.PlaceFilterQ;
				}
				else
				{
					ArrayList alPlaceQ = new ArrayList();
					foreach (int pK in ((DsiPage)Page).RelevantPlaces)
						alPlaceQ.Add(new Q(Place.Columns.K, pK));
					qPlace.QueryCondition = new Or((Q[])alPlaceQ.ToArray(typeof(Q)));
				}
				qPlace.OrderBy = new OrderBy(Place.Columns.Name);
				PlaceSet ps = new PlaceSet(qPlace);

				AddAllPlaceDrop.Items.Clear();
				AddAllPlaceDrop.Items.Add(new ListItem("any town", "0"));
				foreach (Place p in ps)
				{
					AddAllPlaceDrop.Items.Add(new ListItem(p.Name, p.K.ToString()));
				}
			}
		}
示例#7
0
		internal static List<Q> MusicTypeSetAsQueryList(MusicTypeSet musicTypeSet, object columnToMatch)
		{
			List<Q> qList = new List<Q>();
			foreach (MusicType m in Usr.Current.MusicTypesFavourite)
			{
				qList.Add(new Q(columnToMatch, m.K));
				AddChildren(qList, m);
				AddParents(qList, m);
			}
			return qList;
		}
示例#8
0
		internal static List<int> GetChildMusicTypeKs(int parentK)
		{
			return Caching.Instances.Main.GetWithLocalCaching("MusicType.GetChildMusicTypeKs(parentK = " + parentK.ToString() + ")",
				() => {
					Query query = new Query();
					query.Columns = new ColumnSet(MusicType.Columns.K);
					query.QueryCondition = new Q(MusicType.Columns.ParentK, parentK);
					MusicTypeSet mts = new MusicTypeSet(query);
					return mts.ToList().ConvertAll(mt => mt.K);
				},
				Common.Time.Minutes(1),
				Common.Time.Minutes(15)
			);
		}
示例#9
0
		public void SetChildVisibility()
		{
			Query q = new Query();
			q.OrderBy = MusicType.OrderBy;
			MusicTypeSet mts = new MusicTypeSet(q);
			foreach (MusicType mt in mts)
			{
				CheckBox cb = (CheckBox)Cambro.Web.Helpers.SearchControl(Tree, "ItemCb" + mt.K);
				if (mt.Children.Count > 0)
				{
					HtmlGenericControl children = (HtmlGenericControl)Cambro.Web.Helpers.SearchControl(Tree, "Children" + mt.K);
					if (cb.Checked)
					{
						children.Style["display"] = "none";
					}
					else
					{
						children.Style["display"] = null;
					}
				}
			}
		}
示例#10
0
		private void PanelMusicType_Load(object sender, System.EventArgs e)
		{
			PanelMusicTypeSaveP.Visible = IsEdit;
			if (!Page.IsPostBack)
			{
				Query q = new Query();
				q.OrderBy = new OrderBy(MusicType.Columns.Order);
				q.QueryCondition = new Q(MusicType.Columns.ParentK, 1);
				MusicTypeSet mts = new MusicTypeSet(q);

				MusicTypesRadioButtonList.DataTextField = "RadioButtonText";
				MusicTypesRadioButtonList.DataValueField = "K";
				MusicTypesRadioButtonList.DataSource = mts;
				MusicTypesRadioButtonList.DataBind();

				MusicTypesRadioButtonList.Items.Insert(0, new ListItem("<span style=\"font-size:14px;font-weight:bold;\">&nbsp;All music</span><p style=\"margin-left:26px;margin-top:0px;margin-bottom:10px;\">e.g. the group is about all music, or several of the music types below</p>", "1"));
				MusicTypesRadioButtonList.Items.Insert(0, new ListItem("<span style=\"font-size:14px;font-weight:bold;\">&nbsp;Not about music</span><p style=\"margin-left:26px;margin-top:0px;margin-bottom:10px;\">e.g. the group is not about music</p>", "0"));

				if (IsEdit)
				{
					if (MusicTypesRadioButtonList.Items.FindByValue(CurrentGroup.MusicTypeK.ToString()) != null)
						MusicTypesRadioButtonList.SelectedValue = CurrentGroup.MusicTypeK.ToString();
				}
			}
		}
示例#11
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			PlaceName.Text = CurrentPlace.Name;
			Query q = new Query();
			q.NoLock = true;
			q.QueryCondition = new Q(MusicType.Columns.ParentK, QueryOperator.LessThanOrEqualTo, 1);
			q.OrderBy = new OrderBy(MusicType.Columns.Order);
			MusicTypeSet mts = new MusicTypeSet(q);
			int i = 0;
			foreach (MusicType mt in mts)
			{
				HtmlTableRow row = new HtmlTableRow();
				HtmlTableCell cellName = new HtmlTableCell();
				cellName.InnerText = mt.Name;
				row.Cells.Add(cellName);

				Q MusicQ = null;
				TableElement MyJoin = null;
				Q ActivityQ = new Q(true);

				if (mt.K == 1)
				{
					MusicQ = new Q(true);
					MyJoin = new JoinLeft(Usr.Columns.K, UsrPlaceVisit.Columns.UsrK);
				}
				else
				{
					ArrayList musicTypesQ = new ArrayList();
					ArrayList musicTypesK = new ArrayList();
					musicTypesQ.Add(new Q(Usr.Columns.FavouriteMusicTypeK, mt.K));
					musicTypesQ.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, mt.K));
					musicTypesK.Add(mt.K);
					AddMusicTypeQChildren(musicTypesQ, mt, ref musicTypesK);
					MusicQ = new Or((Q[])musicTypesQ.ToArray(typeof(Q)));
					MyJoin = new Join(
						new JoinLeft(Usr.Columns.K, UsrPlaceVisit.Columns.UsrK),
						new TableElement(TablesEnum.UsrMusicTypeFavourite),
						QueryJoinType.Left,
						Usr.Columns.K,
						UsrMusicTypeFavourite.Columns.UsrK);
				}
				Q PlaceQ = new Or(
					new Q(Usr.Columns.HomePlaceK, CurrentPlace.K),
					new Q(UsrPlaceVisit.Columns.PlaceK, CurrentPlace.K));


				#region All users
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ
					);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Emails
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendSpottedEmails, true)
					);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Flyers
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendFlyers, true)
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Invites
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendInvites, true)
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Texts
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						new Q[]{
							Usr.IsNotSkeletonQ,
							Usr.IsEmailVerifiedQ,
							ActivityQ,
							MusicQ,
							PlaceQ,
							new Q(Usr.Columns.SendSpottedTexts,true),
							new Q(Usr.Columns.Mobile,QueryOperator.NotEqualTo,"")
						}
					);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion

				HtmlTableCell cellMid = new HtmlTableCell();
				cellMid.Align = "center";
				cellMid.InnerHtml = "&nbsp;";
				row.Cells.Add(cellMid);

				ActivityQ = new Q(Usr.Columns.DateTimeLastPageRequest, QueryOperator.GreaterThan, DateTime.Now.AddMonths(-1));

				#region All users
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Emails
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendSpottedEmails, true)
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Flyers
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendFlyers, true)
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Invites
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						Usr.IsNotSkeletonQ,
						Usr.IsEmailVerifiedQ,
						ActivityQ,
						MusicQ,
						PlaceQ,
						new Q(Usr.Columns.SendInvites, true)
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion
				#region Texts
				if (true)
				{
					Query q1 = new Query();
					q1.Columns = new ColumnSet(Usr.Columns.K);
					q1.DistinctColumn = Usr.Columns.K;
					q1.Distinct = true;
					q1.ReturnCountOnly = true;
					q1.QueryCondition = new And(
						new Q[]{
								   Usr.IsNotSkeletonQ,
								   Usr.IsEmailVerifiedQ,
								   ActivityQ,
								   MusicQ,
								   PlaceQ,
								   new Q(Usr.Columns.SendSpottedTexts,true),
								   new Q(Usr.Columns.Mobile,QueryOperator.NotEqualTo,"")
							   }
						);
					q1.TableElement = MyJoin;
					UsrSet us1 = new UsrSet(q1);
					HtmlTableCell cell1 = new HtmlTableCell();
					cell1.InnerText = us1.Count.ToString();
					row.Cells.Add(cell1);
				}
				#endregion

				if (i % 2 == 0)
					row.Attributes["class"] = "dataGridAltItem";

				i++;

				Tab.Rows.Add(row);
			}

		}
示例#12
0
		protected void Page_Load(object sender, EventArgs e)
		{
			StringBuilder sb = new StringBuilder();
		//	if (Vars.DevEnv)
		//		System.Threading.Thread.Sleep(new Random().Next(2000));

			if (Request.QueryString["type"] == "calendar")
			{
				bool freeGuestlist = Request.QueryString["freeGuestlist"] == null || Request.QueryString["freeGuestlist"].Length == 0 || Request.QueryString["freeGuestlist"] == "0" ? false : true;
				Brand brand = Request.QueryString["brandk"] == null || Request.QueryString["brandk"].Length == 0 || Request.QueryString["brandk"] == "0" ? null : new Brand(int.Parse(Request.QueryString["brandk"]));
				Place place = Request.QueryString["placek"] == null || Request.QueryString["placek"].Length == 0 || Request.QueryString["placek"] == "0" ? null : new Place(int.Parse(Request.QueryString["placek"]));
				Venue venue = Request.QueryString["venuek"] == null || Request.QueryString["venuek"].Length == 0 || Request.QueryString["venuek"] == "0" || Request.QueryString["venuek"] == "1" ? null : new Venue(int.Parse(Request.QueryString["venuek"]));
				int key = Request.QueryString["key"] == null || Request.QueryString["key"].Length == 0 || Request.QueryString["key"] == "0" ? 0 : int.Parse(Request.QueryString["key"]);
				MusicType music = Request.QueryString["musictypek"] == null || Request.QueryString["musictypek"].Length == 0 || Request.QueryString["musictypek"] == "0" ? null : new MusicType(int.Parse(Request.QueryString["musictypek"]));
				bool me = Request.QueryString["me"] != null && Request.QueryString["me"] == "1";
				bool addGalleryButton = Request.QueryString["addgallery"] != null && Request.QueryString["addgallery"] == "1";
				bool allVenues = Request.QueryString["venuek"] != null && Request.QueryString["venuek"] == "1";
				DateTime date = new DateTime(
					int.Parse(Request.QueryString["date"].Substring(0, 4)),
					int.Parse(Request.QueryString["date"].Substring(4, 2)),
					int.Parse(Request.QueryString["date"].Substring(6, 2)) > 0 ? int.Parse(Request.QueryString["date"].Substring(6, 2)) : 1 );
				//if (date == DateTime.Today)
				//	System.Threading.Thread.Sleep(1000);
				DateTime from = date.Previous(DayOfWeek.Monday, true);
				DateTime to = date.Next(DayOfWeek.Sunday, true);
				Event.EventsForDisplay events = new Event.EventsForDisplay();
				events.IgnoreMusicType = true;

				if (me)
				{
					events.AttendedUsrK = Usr.Current.K;
				}
				else if (brand != null)
				{
					events.BrandK = brand.K;
				}
				else if (venue != null)
				{
					events.VenueK = venue.K;
				}
				else if (place != null && music != null)
				{
					events.PlaceK = place.K;
					events.MusicTypeK = music.K;
				}
				else if (place != null && freeGuestlist)
				{
					events.PlaceK = place.K;
					events.FreeGuestlist = freeGuestlist;
				}
				else if (key > 0)
				{

				}
				else
					throw new Exception();

				

				EventSet es;
				if (key == 0)
					es = events.GetEventsBetweenDates(from, to);
				else
					es = new EventSet(new Query(new Q(Event.Columns.K, key)));

				CustomControls.DsiCalendar calendar = new Spotted.CustomControls.DsiCalendar();

				calendar.AllEvents = es;
				calendar.Month = date.Month;
				
				calendar.ShowCountryFriendlyName = !(events.FilterByCountry || events.FilterByPlace || events.FilterByVenue);
				calendar.ShowPlace = !(events.FilterByPlace || events.FilterByVenue);
				calendar.ShowVenue = !events.FilterByVenue;
				calendar.ShowAddGalleryButton = addGalleryButton;

				calendar.Tickets = true;
				calendar.StartDate = from;
				calendar.EndDate = to;

				Out.Controls.Add(calendar);
				
			}
			else
			{
				sb.AppendLine("{");
				if (Request.QueryString["type"] == "music")
				{
					#region Music types

					Query q = new Query();
					q.QueryCondition = new Q(MusicType.Columns.K, QueryOperator.NotEqualTo, 1);
					q.Columns = new ColumnSet(MusicType.Columns.Name, MusicType.Columns.ParentK, MusicType.Columns.K);
					q.OrderBy = new OrderBy(MusicType.Columns.Order, OrderBy.OrderDirection.Ascending);
					q.CacheDuration = TimeSpan.FromDays(1);
					MusicTypeSet mts = new MusicTypeSet(q);
					append(sb, "Select your music...", "0");
					append(sb, "", "");
					foreach (MusicType mt in mts)
					{
						append(sb, (mt.ParentK == 1 ? "" : "... ") + mt.Name, mt.K.ToString());
					}

					#endregion
				}
				else if (Request.QueryString["type"] == "country")
				{
					#region Countries

					append(sb, "Select a country...", "0");
					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Country.Columns.FriendlyName, Country.Columns.K);
					qTop.OrderBy = new OrderBy(Country.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					qTop.QueryCondition = new Q(Country.Columns.Enabled, true);
					qTop.TopRecords = 10;
					qTop.CacheDuration = TimeSpan.FromDays(1);
					CountrySet csTop = new CountrySet(qTop);
					append(sb, "", "");
					append(sb, "--- TOP COUNTRIES ---", "0");
					foreach (Country c in csTop)
					{
						append(sb, c.FriendlyName.TruncateWithDots(maxLength), c.K.ToString());
					}
					Query qAll = new Query();
					qAll.Columns = new ColumnSet(Country.Columns.FriendlyName, Country.Columns.K);
					qAll.OrderBy = new OrderBy(Country.Columns.FriendlyName);
					qAll.QueryCondition = new And(new Q(Country.Columns.Enabled, true), new StringQueryCondition("(SELECT COUNT(*) FROM [Place] WHERE [Place].[Enabled] = 1 AND [Place].[CountryK] = [Country].[K]) > 0"));
					qAll.CacheDuration = TimeSpan.FromDays(1);
					CountrySet csAll = new CountrySet(qAll);
					append(sb, "", "");
					append(sb, "--- ALL COUNTRIES ---", "0");
					foreach (Country c in csAll)
					{
						append(sb, c.FriendlyName.TruncateWithDots(maxLength), c.K.ToString());
					}

					#endregion
				}
				else if (Request.QueryString["type"] == "place")
				{
					#region Places

					int countryK = int.Parse(Request.QueryString["countryk"]);
					Country country = new Country(countryK);

					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
					qTop.TopRecords = 10;
					qTop.QueryCondition = new And(new Q(Place.Columns.CountryK, country.K), new Q(Place.Columns.Enabled, true));
					qTop.OrderBy = new OrderBy(Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					PlaceSet psTop = new PlaceSet(qTop);
					if (psTop.Count == 0)
					{
						append(sb, "No towns in our database for this country", "");
					}
					else
					{
						append(sb, "Towns in " + country.FriendlyName.Truncate(maxLength) + "...", "");
						append(sb, "", "");
						if (psTop.Count < 10)
						{
							foreach (Place p in psTop)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());
						}
						else
						{
							append(sb, "--- TOP TOWNS ---", "");

							foreach (Place p in psTop)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());

							Query qAll = new Query();
							qAll.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
							qAll.OrderBy = new OrderBy(Place.Columns.UrlName);
							qAll.QueryCondition = new And(new Q(Place.Columns.CountryK, countryK), new Q(Place.Columns.Enabled, true));
							PlaceSet psAll = new PlaceSet(qAll);
							append(sb, "", "");
							append(sb, "--- ALL TOWNS ---", "");

							foreach (Place p in psAll)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());

						}
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "venue")
				{
					#region Venues

					int placeK = int.Parse(Request.QueryString["placek"]);
					Place place = new Place(placeK);

					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
					qTop.TopRecords = 10;
					qTop.QueryCondition = new Q(Venue.Columns.PlaceK, place.K);
					qTop.OrderBy = new OrderBy(Venue.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					VenueSet vsTop = new VenueSet(qTop);
					if (vsTop.Count == 0)
					{
						append(sb, "No venues in our database for this town", "");
					}
					else
					{
						append(sb, "Venues in " + place.NamePlainRegion.Truncate(maxLength) + "...", "");
						append(sb, "", "");
						if (Request.QueryString["all"] == "1")
						{
							append(sb, "All venues", "1");
							append(sb, "", "");
						}
						if (vsTop.Count < 10)
						{
							appendVenues(sb, vsTop);
						}
						else
						{
							append(sb, "--- TOP VENUES ---", "");

							appendVenues(sb, vsTop);

							Query qAll = new Query();
							qAll.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
							qAll.OrderBy = new OrderBy("( CASE WHEN [Venue].[UrlName] LIKE 'the-%' THEN SUBSTRING([Venue].[UrlName], 4, LEN([Venue].[UrlName]) - 4) ELSE [Venue].[UrlName] END )");
							qAll.QueryCondition = new Q(Venue.Columns.PlaceK, placeK);
							VenueSet vsAll = new VenueSet(qAll);
							append(sb, "", "");
							append(sb, "--- ALL VENUES ---", "");

							if (vsAll.Count <= 300)
							{
								appendVenues(sb, vsAll);

							}
							else
							{
								append(sb, "Select the first letter:", "");
								append(sb, "", "");
								append(sb, "0-9", "*0");

								string ch;
								for (int i = 65; i <= 90; i++)
								{
									ch = char.ConvertFromUtf32(i);
									append(sb, ch.ToUpper() + "...", "*" + ch.ToLower());

								}
							}
						}
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "venuebyletter")
				{
					#region Venues

					int placeK = int.Parse(Request.QueryString["placek"]);
					string letter = Request.QueryString["letter"];
					if (letter.Length > 1)
						throw new Exception();
					Place place = new Place(placeK);

					string qu = "";
					if (letter.ToLower() == "0")
					{
						qu = "([Venue].[UrlName] LIKE '[0-9]%' OR [Venue].[UrlName] LIKE 'the-[0-9]%')";
					}
					else if (letter.ToLower() == "t")
					{
						qu = "(([Venue].[UrlName] LIKE 't%' AND [Venue].[UrlName] NOT LIKE 'the-%' ) OR [Venue].[UrlName] LIKE 'the-t%')";
					}
					else
					{
						qu = "([Venue].[UrlName] LIKE '" + letter.ToLower() + "%' OR [Venue].[UrlName] LIKE 'the-" + letter.ToLower() + "%')";
					}
					Query q = new Query();
					q.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
					//q.OrderBy = new OrderBy(Venue.Columns.UrlName);
					q.OrderBy = new OrderBy("( CASE WHEN [Venue].[UrlName] LIKE 'the-%' THEN SUBSTRING([Venue].[UrlName], 4, LEN([Venue].[UrlName]) - 4) ELSE [Venue].[UrlName] END )");
					q.QueryCondition = new And(
						new Q(Venue.Columns.PlaceK, placeK),
						new StringQueryCondition(qu));
					VenueSet vs = new VenueSet(q);


					if (vs.Count == 0)
					{
						append(sb, "No venues starting with " + letter.ToUpper(), "");
					}
					else
					{
						append(sb, "Venues starting with " + letter.ToUpper() + "...", "");
						append(sb, "", "");

						appendVenues(sb, vs);
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "event")
				{
					#region Events

					int venueK = int.Parse(Request.QueryString["venuek"]);
					int brandK = int.Parse(Request.QueryString["brandk"]);
					int key = int.Parse(Request.QueryString["key"]);
					int year = int.Parse(Request.QueryString["date"].Substring(0, 4));
					int month = int.Parse(Request.QueryString["date"].Substring(4, 2));
					DateTime dateFrom = new DateTime(year, month, 1);
					DateTime dateTo = dateFrom.AddMonths(1);
					Venue venue = venueK > 1 ? new Venue(venueK) : null;
					Brand brand = brandK > 0 ? new Brand(brandK) : null;

					EventSet es;
					if (key == 0)
					{
						Query q = new Query();
						if (brand == null)
							q.Columns = new ColumnSet(Event.Columns.DateTime, Event.Columns.Name, Event.Columns.K);
						else
							q.Columns = new ColumnSet(Event.Columns.DateTime, Event.Columns.Name, Event.Columns.K, Event.FriendlyLinkColumns);
						q.QueryCondition = new And(
							new Q(Event.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, dateFrom),
							new Q(Event.Columns.DateTime, QueryOperator.LessThan, dateTo),
							venue != null ? new Q(Event.Columns.VenueK, venue.K) : new Q(true),
							brand != null ? new Q(EventBrand.Columns.BrandK, brand.K) : new Q(true));
						q.OrderBy = Event.FutureEventOrder;
						if (brandK > 0)
						{
							q.TableElement = new Join(
							Event.CountryAllJoin,
							new TableElement(TablesEnum.EventBrand),
							QueryJoinType.Inner,
							Event.Columns.K,
							EventBrand.Columns.EventK);
						}
						es = new EventSet(q);
					}
					else
						es = new EventSet(new Query(new Q(Event.Columns.K, key)));

					if (es.Count == 0)
					{
						append(sb, "No events in our database for this selection", "");
					}
					else
					{
						//append(sb, "Events at " + venue.FriendlyName.Truncate(maxLength) + ", " + dateFrom.ToString("MMM yyyy") + "...", "");
						//append(sb, "", "");
						Dictionary<string, int> counter = new Dictionary<string, int>();
						foreach (Event ev in es)
						{
							string key1 = eventString(ev, brand != null);
							if (counter.ContainsKey(key1.ToLower()))
								counter[key1.ToLower()]++;
							else
								counter[key1.ToLower()] = 1;
						}


						foreach (Event ev in es)
						{
							string key1 = eventString(ev, brand != null);
							if (counter[key1.ToLower()] > 1)
								key1 = key1.Substring(0, 8) + " - #" + ev.K.ToString() + key1.Substring(8);

							append(sb, key1, ev.K.ToString());
						}

					}
					#endregion
				}
				sb.AppendLine("");
				sb.Append("}");
			}

			Out.Controls.Add(new LiteralControl(sb.ToString()));
		}
示例#13
0
		public void MergeAndDelete(Event merge)
		{
			if (this.K == merge.K)
				throw new DsiUserFriendlyException("Can't merge event into itself!");

			Cambro.Web.Helpers.WriteAlertHeader();

			//throw new Exception("This function isn't finished yet!");

			Cambro.Web.Helpers.WriteAlert("Starting merge...", 1);

			#region Articles
			if (true)
			{

				Query q = new Query();
				q.QueryCondition = new Q(Article.Columns.EventK, merge.K);
				ArticleSet ars = new ArticleSet(q);
				foreach (Article a in ars)
				{
					Cambro.Web.Helpers.WriteAlert("Merging article " + a.K + "...", 2);
					a.ParentObjectK = this.K;
					a.EventK = this.K;

					if (a.Relevance <= Model.Entities.Article.RelevanceEnum.Venue)
						a.VenueK = this.VenueK;
					else
						a.VenueK = 0;

					if (a.Relevance <= Model.Entities.Article.RelevanceEnum.Place)
						a.PlaceK = this.Venue.PlaceK;
					else
						a.PlaceK = 0;

					if (a.Relevance <= Model.Entities.Article.RelevanceEnum.Country)
						a.CountryK = this.Venue.Place.CountryK;
					else
						a.CountryK = 0;

					a.UrlFragment = this.UrlFilterPartVenueDate;
					a.Update();


					#region Threads
					if (true)
					{
						Update u = new Update();
						u.Table = TablesEnum.Thread;
						u.Where = new Q(Thread.Columns.ArticleK, a.K);
						u.Changes.Add(new Assign(Thread.Columns.UrlFragment, a.UrlFilterPart));
						u.Changes.Add(new Assign(Thread.Columns.EventK, this.K));
						u.Changes.Add(new Assign(Thread.Columns.VenueK, this.VenueK));
						u.Changes.Add(new Assign(Thread.Columns.PlaceK, this.Venue.PlaceK));
						u.Changes.Add(new Assign(Thread.Columns.CountryK, this.Venue.Place.CountryK));
						u.Run();
					}
					#endregion
					#region Galleries
					if (true)
					{
						Update u = new Update();
						u.Table = TablesEnum.Gallery;
						u.Where = new Q(Gallery.Columns.ArticleK, a.K);
						u.Changes.Add(new Assign(Gallery.Columns.UrlFragment, a.UrlFilterPart));
						u.Run();
					}
					#endregion
					#region Photos
					if (true)
					{
						Update u = new Update();
						u.Table = TablesEnum.Photo;
						u.Where = new Q(Photo.Columns.ArticleK, a.K);
						u.Changes.Add(new Assign(Photo.Columns.UrlFragment, a.UrlFilterPart));
						u.Run();
					}
					#endregion
				}
				Cambro.Web.Helpers.WriteAlert("Done merging articles...", 2);
			}
			#endregion
			#region Banners
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging banners...", 4);
				Update u = new Update();
				u.Table = TablesEnum.Banner;
				u.Where = new Q(Banner.Columns.EventK, merge.K);
				u.Changes.Add(new Assign(Banner.Columns.EventK, this.K));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging banners...", 4);
			}
			#endregion
			#region Comp
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging competitions...", 5);
				Update u = new Update();
				u.Table = TablesEnum.Comp;
				u.Where = new Q(Comp.Columns.EventK, merge.K);
				u.Changes.Add(new Assign(Comp.Columns.EventK, this.K));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging competitions...", 5);
			}
			#endregion
			#region EventMusicType
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging music types...", 6);
				Query q1 = new Query();
				q1.TableElement = MusicType.EventJoin;
				q1.QueryCondition = new Q(Event.Columns.K, merge.K);
				MusicTypeSet ems1 = new MusicTypeSet(q1);

				Query q2 = new Query();
				q2.TableElement = MusicType.EventJoin;
				q2.QueryCondition = new Q(Event.Columns.K, this.K);
				MusicTypeSet ems2 = new MusicTypeSet(q2);

				bool hasAllMuisc = false;
				ArrayList majorTypes = new ArrayList();
				ArrayList relevantTypes = new ArrayList();

				#region find major types
				foreach (MusicType mt in ems1)
				{
					if (mt.K == 1)
					{
						hasAllMuisc = true;
						break;
					}
					if (mt.ParentK == 1 && !majorTypes.Contains(mt.K))
						majorTypes.Add(mt.K);
				}
				if (!hasAllMuisc)
				{
					foreach (MusicType mt in ems2)
					{
						if (mt.K == 1)
						{
							hasAllMuisc = true;
							break;
						}
						if (mt.ParentK == 1 && !majorTypes.Contains(mt.K))
							majorTypes.Add(mt.K);
					}
				}
				#endregion
				if (!hasAllMuisc)
				{
					foreach (MusicType mt in ems1)
					{
						if (!majorTypes.Contains(mt.ParentK) && !relevantTypes.Contains(mt.K))
							relevantTypes.Add(mt.K);
					}
					foreach (MusicType mt in ems2)
					{
						if (!majorTypes.Contains(mt.ParentK) && !relevantTypes.Contains(mt.K))
							relevantTypes.Add(mt.K);
					}
				}
				if (hasAllMuisc || relevantTypes.Count == 0)
				{
					Delete d = new Delete(TablesEnum.EventMusicType, new Q(EventMusicType.Columns.EventK, this.K));
					d.Run();
					EventMusicType emt = new EventMusicType();
					emt.EventK = this.K;
					emt.MusicTypeK = 1;
					emt.Update();
				}
				else
				{
					Delete d = new Delete(TablesEnum.EventMusicType, new Q(EventMusicType.Columns.EventK, this.K));
					d.Run();
					foreach (int mtK in relevantTypes)
					{
						EventMusicType emt = new EventMusicType();
						emt.EventK = this.K;
						emt.MusicTypeK = mtK;
						emt.Update();
					}
				}
				Cambro.Web.Helpers.WriteAlert("Done merging music types...", 6);
			}
			#endregion
			#region EventBrand
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging brands...", 7);
				EventBrandSet ebs = new EventBrandSet(new Query(new Q(EventBrand.Columns.EventK, merge.K)));
				foreach (EventBrand eb in ebs)
				{
					try
					{
						EventBrand ebThis = new EventBrand(this.K, eb.BrandK);
					}
					catch
					{
						EventBrand ebThis = new EventBrand();
						ebThis.EventK = this.K;
						ebThis.BrandK = eb.BrandK;
						ebThis.Update();
					}
				}
				Cambro.Web.Helpers.WriteAlert("Done merging brands...", 7);
			}
			#endregion
			 
			#region Gallery
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging galleries...", 9);
				Update u = new Update();
				u.Table = TablesEnum.Gallery;
				u.Where = new Q(Gallery.Columns.EventK, merge.K);
				u.Changes.Add(new Assign(Gallery.Columns.EventK, this.K));
				u.Changes.Add(new Assign(Gallery.Columns.UrlFragment, this.UrlFilterPartVenueDate));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging galleries...", 9);
			}
			#endregion
			#region Photo
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging photos...", 10);
				Update u = new Update();
				u.Table = TablesEnum.Photo;
				u.Where = new Q(Photo.Columns.EventK, merge.K);
				u.Changes.Add(new Assign(Photo.Columns.EventK, this.K));
				u.Changes.Add(new Assign(Photo.Columns.UrlFragment, this.UrlFilterPartVenueDate));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging photos...", 10);
			}
			#endregion
			#region GroupEvent
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging group-event links...", 11);
				GroupEventSet ges = new GroupEventSet(new Query(new Q(GroupEvent.Columns.EventK, merge.K)));
				foreach (GroupEvent ge in ges)
				{
					try
					{
						GroupEvent geThis = new GroupEvent(ge.GroupK, this.K);
					}
					catch
					{
						GroupEvent geThis = new GroupEvent();
						geThis.EventK = this.K;
						geThis.GroupK = ge.GroupK;
						geThis.Update();
					}
				}
				Cambro.Web.Helpers.WriteAlert("Done merging group-event links...", 11);
			}
			#endregion
			#region Thread ParentObjects
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging topics (1/2)...", 12);
				Update u = new Update();
				u.Table = TablesEnum.Thread;
				u.Where = new And(
					new Q(Thread.Columns.ParentObjectType, Model.Entities.ObjectType.Event),
					new Q(Thread.Columns.ParentObjectK, merge.K));
				u.Changes.Add(new Assign(Thread.Columns.ParentObjectK, this.K));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging topics (1/2)...", 12);
			}
			#endregion
			#region Thread
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging topics (2/2)...", 13);
				Update u = new Update();
				u.Table = TablesEnum.Thread;
				u.Where = new And(
					new Q(Thread.Columns.EventK, merge.K),
					new Q(Thread.Columns.ArticleK, 0));
				u.Changes.Add(new Assign(Thread.Columns.EventK, this.K));
				u.Changes.Add(new Assign(Thread.Columns.UrlFragment, this.UrlFilterPartVenueDate));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging topics (2/2)...", 13);
			}
			#endregion
			#region UsrEventAttended
			if (true)
			{
				Cambro.Web.Helpers.WriteAlert("Merging members...", 14);
				UsrEventAttendedSet ueas = new UsrEventAttendedSet(new Query(new Q(UsrEventAttended.Columns.EventK, merge.K)));
				foreach (UsrEventAttended uea in ueas)
				{
					try
					{
						UsrEventAttended ueaThis = new UsrEventAttended(uea.UsrK, this.K);
						bool changed = false;
						if (!uea.SendUpdate && ueaThis.SendUpdate)
						{
							ueaThis.SendUpdate = false;
							changed = true;
						}
						if (uea.Spotter && !ueaThis.Spotter)
						{
							ueaThis.Spotter = true;
							changed = true;
						}
						if (changed)
							ueaThis.Update();
					}
					catch
					{
						UsrEventAttended ueaThis = new UsrEventAttended();
						ueaThis.EventK = this.K;
						ueaThis.UsrK = uea.UsrK;
						ueaThis.SendUpdate = uea.SendUpdate;
						ueaThis.Spotter = uea.Spotter;
						ueaThis.Update();
					}
				}
				Cambro.Web.Helpers.WriteAlert("Done merging members...", 14);
			}
			#endregion

			if (!this.HasPic)
			{
				Cambro.Web.Helpers.WriteAlert("Merging picture...", 15);
				this.Pic = merge.Pic;
				this.PicMiscK = merge.PicMiscK;
				this.PicPhotoK = merge.PicPhotoK;
				this.PicState = merge.PicState;
				merge.Pic = Guid.Empty;
				merge.PicMiscK = 0;
				merge.PicPhotoK = 0;
				merge.PicState = "";
				merge.Update();
				Cambro.Web.Helpers.WriteAlert("Done merging picture...", 15);
			}

			this.AdminNote += "Event " + merge.K + " was merged with this one " + DateTime.Now.ToString() + ". The admin note from event " + merge.K + " is:\n********************\n" + merge.AdminNote + "\n********************\n";

			if (!this.HasGuestlist && merge.HasGuestlist)
			{
				Cambro.Web.Helpers.WriteAlert("Merging guestlist...", 16);
				this.HasGuestlist = true;
				this.GuestlistOpen = merge.GuestlistOpen;
				this.GuestlistFinished = merge.GuestlistOpen;
				this.GuestlistLimit = merge.GuestlistLimit;
				this.GuestlistCount = merge.GuestlistCount;
				this.GuestlistDetails = merge.GuestlistDetails;
				this.GuestlistPromoterK = merge.GuestlistPromoterK;
				this.GuestlistRegularPrice = merge.GuestlistRegularPrice;
				this.GuestlistPrice = merge.GuestlistPrice;
				this.GuestlistPromotion = merge.GuestlistPromotion;

				Delete d = new Delete(TablesEnum.UsrEventGuestlist, new Q(UsrEventGuestlist.Columns.EventK, this.K));
				d.Run();

				Update u = new Update();
				u.Table = TablesEnum.UsrEventGuestlist;
				u.Where = new Q(UsrEventGuestlist.Columns.EventK, merge.K);
				u.Changes.Add(new Assign(UsrEventGuestlist.Columns.EventK, this.K));
				u.Run();
				Cambro.Web.Helpers.WriteAlert("Done merging guestlist...", 16);
			}

			if (merge.Donated)
				this.Donated = true;

			if (merge.HasHilight)
				this.HasHilight = true;

			this.UpdateUsrAttendCount(false);

			this.Update();

			int mergeVenueK = merge.VenueK;

			Cambro.Web.Helpers.WriteAlert("Deleting old event...", 17);
			merge.DeleteAll(null);
			Cambro.Web.Helpers.WriteAlert("Done deleting old event...", 17);

			if (mergeVenueK != this.VenueK)
			{
				Venue mergeVenue = new Venue(mergeVenueK);
				Cambro.Web.Helpers.WriteAlert("Updating stats for old venue...", 18);
				mergeVenue.UpdateTotalComments(null);
				mergeVenue.UpdateTotalEvents(null);
				Cambro.Web.Helpers.WriteAlert("Done updating stats for old venue...", 18);
			}

			Cambro.Web.Helpers.WriteAlert("Updating stats for new event...", 19);
			this.UpdateMusicTypesStringNoUpdate();
			this.UpdateTotalComments(null);
			this.UpdateHasSpotter(null);
			this.UpdateTotalPhotos(null);
			this.Venue.UpdateTotalEvents(null);
			Cambro.Web.Helpers.WriteAlert("Done updating stats for new event...", 19);

			this.Update();
			Cambro.Web.Helpers.WriteAlert("Done merging events!", 20);


		}
示例#14
0
		public void UpdateMusicTypesStringNoUpdate()
		{
			Query q = new Query();
			q.NoLock = true;
			q.Columns = new ColumnSet(MusicType.Columns.GenericName);
			q.TableElement = new Join(MusicType.Columns.K, EventMusicType.Columns.MusicTypeK);
			q.QueryCondition = new Q(EventMusicType.Columns.EventK, K);
			q.OrderBy = MusicType.OrderBy;
			MusicTypeSet mts = new MusicTypeSet(q);

			string music = "";

			for (int i = 0; i < mts.Count; i++)
			{
				music += (i > 0 ? (i == mts.Count - 1 ? " and " : ", ") : "") + mts[i].GenericName;
			}
			this.MusicTypesString = music;
		}
示例#15
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			Usr.KickUserIfNotLoggedIn("You must be logged in to view your user preferences.");
			if (!Page.IsPostBack && !Usr.Current.IsSkeleton && !Vars.DevEnv)
				throw new DsiUserFriendlyException("You can't view this page, you've already completed your details");

			LogOffButton.Attributes["onclick"] = "return confirm('Are you sure?');";
			UnsubscribeButton.Attributes["onclick"] = "return confirm('Are you sure?');";
			EmailRegex.ValidationExpression = Cambro.Misc.RegEx.Email;
			DialingCodeDropDown.Attributes["onclick"] = "if (document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'][document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'].selectedIndex].value=='0') {document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display=''}else{document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display='none'}";

			#region Set up page... don't show options 2 and 3 to people who have come from the sign-up page unless they have verified their email

			WelcomeHeaderInvite.Visible = !Usr.Current.IsSkeletonFromSignup;
			WelcomeHeaderSignUp.Visible = Usr.Current.IsSkeletonFromSignup;

			if (ContainerPage.Url[0] == "Signup")
			{
				WelcomePart2And3.Visible = false;
				WelcomePart1Header.Visible = false;
			}

			//if (Usr.Current.IsSkeletonFromSignup && !Usr.Current.IsEmailVerified)
			//{
				//WelcomePart2And3.Visible = false;
				//WelcomePart1Header.Visible = false;
			//}
			#endregion

			if (!Page.IsPostBack)
			{
				string text = Cambro.Misc.Utility.GenRandomChars(5).ToUpper();
				string encryptedText = Cambro.Misc.Utility.Encrypt(text, DateTime.Now.AddHours(1));
				this.ViewState["HipChallengeExcryptedText"] = encryptedText;
				HipImage.Src = "/support/hipimage.aspx?a=" + encryptedText;
			}

			#region Auto add group / buddy
			uiAddedByGroupsDiv.Visible = false;
			uiAddedByUsrsDiv.Visible = false;
			try
			{
				int groupsCount = Usr.Current.GroupsWhoHavePendingInvitationsForMe.Count;
				if (groupsCount > 0)
				{
					uiAddedByGroupsDiv.Visible = true;

					if (groupsCount == 1)
					{
						uiAddedByGroupLabel.Text = "<b>" + Usr.Current.GroupsWhoHavePendingInvitationsForMe[0].FriendlyName + "</b> group";
					}
					else
					{
						uiAddedByGroupLabel.Text = "following groups";
					}

					int height = 36 + Math.Min(groupsCount, 2) * 60 + 20;
					uiAddedByGroupsDiv.Attributes["style"] = "border-top:3px solid #000000;padding-top:10px;padding-bottom:10px; height:" + height + "; overflow:auto;";

					foreach (GridViewRow gvr in uiAddedByGroupsGridView.Rows)
					{
						if (!((CheckBox)gvr.FindControl("uiCheckBox")).Checked) uncheckedGroupKs.Add((int)uiAddedByGroupsGridView.DataKeys[gvr.RowIndex].Value);
					}
					uiAddedByGroupsGridView.DataSource = Usr.Current.GroupsWhoHavePendingInvitationsForMe;
					uiAddedByGroupsGridView.DataBind();
				}
				int usrsCount = Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe.Count;
				if (usrsCount > 0)
				{
					if (usrsCount == 1)
					{
						uiAddedByUsrLabel.Text = "<b>" + Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe[0].NickName + "</b>";
					}
					else
					{
						uiAddedByUsrLabel.Text = "the following people";
					}

					int height = 36 + Math.Min(usrsCount, 2) * 60 + 20;
					uiAddedByUsrsDiv.Attributes["style"] = "border-top:3px solid #000000;padding-top:10px;padding-bottom:10px; height:" + height + "; overflow:auto;";

					foreach (GridViewRow gvr in uiAddedByUsrsGridView.Rows)
					{
						if (!((CheckBox)gvr.FindControl("uiCheckBox")).Checked) uncheckedBuddyUsrKs.Add((int)uiAddedByUsrsGridView.DataKeys[gvr.RowIndex].Value);
					}
					uiAddedByUsrsDiv.Visible = true;
					uiAddedByUsrsGridView.DataSource = Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe;
					uiAddedByUsrsGridView.DataBind();

				}
			}
			catch
			{
				uiAddedByGroupsDiv.Visible = false;
				uiAddedByUsrsDiv.Visible = false;
			}
			#endregion

			#region Populate hometown drop-down
			int selectedHomeTown = 0;
			if (!HomeTownDropDownList.SelectedValue.Equals("0") && !HomeTownDropDownList.SelectedValue.Equals(""))
				selectedHomeTown = int.Parse(HomeTownDropDownList.SelectedValue);

			//	OrderBy o = new OrderBy(Bobs.Place.Columns.Name,OrderBy.OrderDirection.Ascending);

			if (!Page.IsPostBack)
			{
				PlaceSet ts = new PlaceSet(
					new Query(
						new And(
						new Q(Place.Columns.Enabled, true),
						Country.PlaceFilterQ),
						new OrderBy(Bobs.Place.Columns.Name, OrderBy.OrderDirection.Ascending)
					)
				);
				HomeTownDropDownList.DataSource = ts;
				HomeTownDropDownList.DataValueField = "K";
				HomeTownDropDownList.DataTextField = "Name";
				HomeTownDropDownList.DataBind();
			}

			if (selectedHomeTown > 0)
			{
				try
				{
					HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
				}
				catch
				{
					try
					{
						Place p = new Place(selectedHomeTown);
						HomeTownDropDownList.Items.Insert(1, new ListItem(p.Name, p.K.ToString()));
						HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
					}
					catch { }
				}
			}
			#endregion

			#region Populate favourite music drop-down
			int selectedFavouriteMusic = 0;
			if (!FavouriteMusicDropDownList.SelectedValue.Equals("0") && !FavouriteMusicDropDownList.SelectedValue.Equals(""))
				selectedFavouriteMusic = int.Parse(FavouriteMusicDropDownList.SelectedValue);


			if (!Page.IsPostBack)
			{
				MusicTypeSet mts = new MusicTypeSet(
					new Query(
						new Or(
						new Q(MusicType.Columns.ParentK, 1),
						new Q(MusicType.Columns.ParentK, 0)
						)
						,
						new OrderBy(MusicType.Columns.Order)
					)
				);
				FavouriteMusicDropDownList.DataSource = mts;
				FavouriteMusicDropDownList.DataValueField = "K";
				FavouriteMusicDropDownList.DataTextField = "DescriptiveText";
				FavouriteMusicDropDownList.DataBind();
			}

			if (selectedFavouriteMusic > 0)
			{
				FavouriteMusicDropDownList.SelectedValue = selectedFavouriteMusic.ToString();
			}

			#endregion

			if (!Page.IsPostBack)
			{
				FirstName.Text = Usr.Current.FirstName;
				LastName.Text = Usr.Current.LastName;
				NickName.Text = Usr.Current.NickName;
				Email.Text = Usr.Current.Email;
				SexMale.Checked = Usr.Current.IsMale;
				SexFemale.Checked = Usr.Current.IsFemale;
				SendSpottedEmails.Checked = Usr.Current.SendSpottedEmails;
				SendSpottedTexts.Checked = Usr.Current.SendSpottedTexts;
				SendFlyers.Checked = Usr.Current.SendFlyers;
				SendInvites.Checked = Usr.Current.SendInvites;
				IsDjYes.Checked = Usr.Current.IsDj.HasValue && Usr.Current.IsDj.Value;
				IsDjNo.Checked = Usr.Current.IsDj.HasValue && !Usr.Current.IsDj.Value;



				#region Initialise hometown drop-down
				if (Usr.Current.HomePlaceK > 0)
				{
					try
					{
						HomeTownDropDownList.SelectedValue = Usr.Current.HomePlaceK.ToString();
					}
					catch
					{
						HomeTownDropDownList.Items.Insert(1, new ListItem(Usr.Current.Home.Name, Usr.Current.HomePlaceK.ToString()));
						HomeTownDropDownList.SelectedValue = Usr.Current.HomePlaceK.ToString();
					}
				}
				#endregion
				#region Initialise favourite music drop-down
				if (Usr.Current.FavouriteMusicTypeK > 0)
				{
					FavouriteMusicDropDownList.SelectedValue = Usr.Current.FavouriteMusicTypeK.ToString();
				}
				#endregion
				#region Initialise mobile number box
				if (Usr.Current.Mobile.Length > 0)
				{
					if (
						Usr.Current.MobileCountryCode.Equals("44") ||
						Usr.Current.MobileCountryCode.Equals("61") ||
						Usr.Current.MobileCountryCode.Equals("33") ||
						Usr.Current.MobileCountryCode.Equals("49") ||
						Usr.Current.MobileCountryCode.Equals("353") ||
						Usr.Current.MobileCountryCode.Equals("39") ||
						Usr.Current.MobileCountryCode.Equals("34") ||
						Usr.Current.MobileCountryCode.Equals("1")
						)
					{
						DialingCodeDropDown.SelectedValue = Usr.Current.MobileCountryCode;
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
						DialingCodeOther.Text = Usr.Current.MobileCountryCode;
					}
					MobileNumber.Text = Usr.Current.MobileNumber;
				}
				else
				{
					if (Country.Current != null && Country.Current.DialingCode > 0)
					{
						DialingCodeDropDown.SelectedValue = Country.Current.DialingCode.ToString();
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
					}
				}
				#endregion

			}

			DialingCodeOtherSpan.Style["display"] = DialingCodeDropDown.SelectedValue.Equals("0") ? null : "none";

			this.DataBind();
			if (!Page.IsPostBack)
			{
				HomeTownDropDownList.Items.Insert(0, new ListItem(" ", "0"));
				FavouriteMusicDropDownList.Items.Insert(0, new ListItem(" ", "0"));
			}
		}
示例#16
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			Usr.KickUserIfNotLoggedIn("You must be logged in to view your user preferences.");
			if (Usr.Current.K != ThisUsr.K && !Usr.Current.IsAdmin)
                throw new DsiUserFriendlyException("You can't use this page");

			// Put user code to initialize the page here
			SuccessDiv.Visible = false;

			if (!Page.IsPostBack && Request.QueryString["done"] != null && Request.QueryString["done"] == "1")
				SuccessDiv.Visible = true;

			EmailRegex.ValidationExpression = Cambro.Misc.RegEx.Email;
			//PostcodeRegex.ValidationExpression = Cambro.Misc.RegEx.Postcode;
			//TelephoneRegex.ValidationExpression=Cambro.Misc.RegEx.Telephone;
			

			#region Hometown
			//int selectedHomeTown = 0;
			//if (!HomeTownDropDownList.SelectedValue.Equals("0") && !HomeTownDropDownList.SelectedValue.Equals(""))
			//    selectedHomeTown = int.Parse(HomeTownDropDownList.SelectedValue);

			//PlaceSet ts = new PlaceSet(
			//    new Query(
			//        new And(
			//        new Q(Place.Columns.Enabled, true),
			//        Country.PlaceFilterQ),
			//        new OrderBy(Bobs.Place.Columns.Name, OrderBy.OrderDirection.Ascending)
			//    ));
			//HomeTownDropDownList.DataSource = ts;
			//HomeTownDropDownList.DataValueField = "K";
			//HomeTownDropDownList.DataTextField = "Name";
			//HomeTownDropDownList.DataBind();
			//HomeTownDropDownList.Items.Insert(0, new ListItem("", "0"));

			//if (selectedHomeTown > 0)
			//{
			//    try
			//    {
			//        HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
			//    }
			//    catch
			//    {
			//        try
			//        {
			//            Place p = new Place(selectedHomeTown);
			//            HomeTownDropDownList.Items.Insert(1, new ListItem(p.Name, p.K.ToString()));
			//            HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
			//        }
			//        catch { }
			//    }
			//}
			#endregion

			#region FavouriteMusic
			int selectedFavouriteMusic = 0;
			if (!FavouriteMusicDropDownList.SelectedValue.Equals("0") && !FavouriteMusicDropDownList.SelectedValue.Equals(""))
				selectedFavouriteMusic = int.Parse(FavouriteMusicDropDownList.SelectedValue);


			MusicTypeSet mts = new MusicTypeSet(
				new Query(
				new Or(
				new Q(MusicType.Columns.ParentK, 1),
				new Q(MusicType.Columns.ParentK, 0)
				)
				,
				new OrderBy(MusicType.Columns.Order)
			));
			FavouriteMusicDropDownList.DataSource = mts;
			FavouriteMusicDropDownList.DataValueField = "K";
			FavouriteMusicDropDownList.DataTextField = "DescriptiveText";
			FavouriteMusicDropDownList.DataBind();
			FavouriteMusicDropDownList.Items.Insert(0, new ListItem("", "0"));

			if (selectedFavouriteMusic > 0)
			{
				FavouriteMusicDropDownList.SelectedValue = selectedFavouriteMusic.ToString();
			}

			#endregion

			DialingCodeDropDown.Attributes["onchange"] = "if (document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'][document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'].selectedIndex].value=='0') {document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display=''}else{document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display='none'}";

			if (!Page.IsPostBack)
			{
				SetupCountryDropDownList();

				ChangePanel(PrefsUpdatePanel);

				FirstName.Text = ThisUsr.FirstName;
				LastName.Text = ThisUsr.LastName;
				NickName.Text = ThisUsr.NickName;
				Email.Text = ThisUsr.Email;
				//Postcode.Text = ThisUsr.AddressPostcode;
				SexMale.Checked = ThisUsr.IsMale;
				SexFemale.Checked = ThisUsr.IsFemale;
				IsDjYes.Checked = ThisUsr.IsDj.HasValue && ThisUsr.IsDj.Value;
				IsDjNo.Checked = ThisUsr.IsDj.HasValue && !ThisUsr.IsDj.Value;

				if (ThisUsr.HomePlaceK > 0 && ThisUsr.Home != null)
					HomeTownPlacePicker.Place = ThisUsr.Home;
				else if (ThisUsr.AddressCountryK > 0 && ThisUsr.AddressCountry != null)
					HomeTownPlacePicker.Country = ThisUsr.AddressCountry;
				else if (Prefs.Current["HomeCountryK"].IsInt)
				{
					try
					{
						HomeTownPlacePicker.Country = new Country(Prefs.Current["HomeCountryK"]);
					}
					catch { }
				}
				else if (Country.Current != null)
					HomeTownPlacePicker.Country = Country.Current;


				AddressAreaTextBox.Text = ThisUsr.AddressArea;
				AddressCountyTextBox.Text = ThisUsr.AddressCounty;
				if(ThisUsr.AddressCountryK > 0)
					AddressCountryDropDownList.SelectedValue = ThisUsr.AddressCountryK.ToString();
				else
					AddressCountryDropDownList.SelectedValue = Country.FilterK.ToString();

				AddressPostcodeTextBox.Text = ThisUsr.AddressPostcode;
				AddressStreetTextBox.Text = ThisUsr.AddressStreet;
				AddressTownTextBox.Text = ThisUsr.AddressTown;

                if (!ThisUsr.DateOfBirth.Equals(DateTime.MinValue))
				{
					DateOfBirthDay.Text = ThisUsr.DateOfBirth.Day.ToString();
					DateOfBirthMonth.Text = ThisUsr.DateOfBirth.Month.ToString();
					DateOfBirthYear.Text = ThisUsr.DateOfBirth.Year.ToString();
				}
				
				//if (ThisUsr.HomePlaceK > 0)
				//{
				//    try
				//    {
				//        HomeTownDropDownList.SelectedValue = ThisUsr.HomePlaceK.ToString();
				//    }
				//    catch
				//    {
				//        HomeTownDropDownList.Items.Insert(1, new ListItem(ThisUsr.Home.Name, ThisUsr.HomePlaceK.ToString()));
				//        HomeTownDropDownList.SelectedValue = ThisUsr.HomePlaceK.ToString();
				//    }
				//}
				if (ThisUsr.FavouriteMusicTypeK > 0)
				{
					FavouriteMusicDropDownList.SelectedValue = ThisUsr.FavouriteMusicTypeK.ToString();
				}
				if (ThisUsr.Mobile.Length > 0)
				{
					if (
						ThisUsr.MobileCountryCode.Equals("44") ||
						ThisUsr.MobileCountryCode.Equals("61") ||
						ThisUsr.MobileCountryCode.Equals("33") ||
						ThisUsr.MobileCountryCode.Equals("49") ||
						ThisUsr.MobileCountryCode.Equals("353") ||
						ThisUsr.MobileCountryCode.Equals("39") ||
						ThisUsr.MobileCountryCode.Equals("34") ||
						ThisUsr.MobileCountryCode.Equals("1")
						)
					{
						DialingCodeDropDown.SelectedValue = ThisUsr.MobileCountryCode;
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
						DialingCodeOther.Text = ThisUsr.MobileCountryCode;
					}
					MobileNumber.Text = ThisUsr.MobileNumber;
				}
				else
				{
					if (Country.Current != null && Country.Current.DialingCode > 0)
					{
						DialingCodeDropDown.SelectedValue = Country.Current.DialingCode.ToString();
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
					}
				}
			}
			if (DialingCodeDropDown.SelectedValue.Equals("0"))
			{
				DialingCodeOtherSpan.Style["display"] = null;
			}
			else
			{
				DialingCodeOtherSpan.Style["display"] = "none";
			}
		}