예제 #1
0
		public static TableElement PerformJoins(TableElement tIn, bool skipEventJoin)
		{
			if (tIn == null)
				tIn = new TableElement(TablesEnum.Gallery);
			TableElement t = tIn;
			if (skipEventJoin)
			{
				t = new Join(
					tIn,
					Venue.CountryJoin,
					QueryJoinType.Inner,
					Event.Columns.VenueK,
					Venue.Columns.K);
			}
			else
			{
				t = new Join(
					tIn,
					Event.CountryAllJoin,
					QueryJoinType.Inner,
					Gallery.Columns.EventK,
					Event.Columns.K);
			}
			return t;
		}
예제 #2
0
		public static TableElement PerformJoins(TableElement tIn)
		{
			TableElement t = new Join(tIn,
				new TableElement(new Column(Photo.Columns.FirstUsrK, Usr.Columns.K)),
				QueryJoinType.Left,
				Photo.Columns.FirstUsrK,
				new Column(Photo.Columns.FirstUsrK, Usr.Columns.K));
			return t;
		}
예제 #3
0
		public void Cal_Load(object o, System.EventArgs e)
		{

			int usrK = 0;
			if (Usr.Current != null)
				usrK = Usr.Current.K;

			TableElement te = new TableElement(TablesEnum.Comment);

			te = new Join(
				te,
				Thread.Columns.K,
				Comment.Columns.ThreadK);

			te = new Join(
				te,
				new TableElement(TablesEnum.ThreadUsr),
				QueryJoinType.Left,
				new And(
				new Q(Thread.Columns.K, ThreadUsr.Columns.ThreadK, true),
				new Q(ThreadUsr.Columns.UsrK, usrK),
				new Q(ThreadUsr.Columns.Status, QueryOperator.NotEqualTo, ThreadUsr.StatusEnum.Deleted)));

			te = new Join(
				te,
				new TableElement(TablesEnum.GroupUsr),
				QueryJoinType.Left,
				new And(
				new Q(Thread.Columns.GroupK, GroupUsr.Columns.GroupK, true),
				new Q(GroupUsr.Columns.UsrK, usrK),
				new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)));

			Q q = new And(
				new Q(Comment.Columns.UsrK, ThisUsr.K),
				new Or(
					new Q(Thread.Columns.Private, false),
					new Q(ThreadUsr.Columns.UsrK, usrK)
				),
				new Or(
					new Q(Thread.Columns.GroupPrivate, false),
					new Q(GroupUsr.Columns.UsrK, usrK)
				),
				new Or(
					new Q(Thread.Columns.PrivateGroup, false),
					new Q(GroupUsr.Columns.UsrK, usrK)
				)
			);

			Cal.MonthUrlGetter = new Controls.Cal.MonthUrlDelegate(GetMonthUrl);
			Cal.DayUrlGetter = new Controls.Cal.DayUrlDelegate(GetDayUrl);
			Cal.DateTimeColumn = new Column(Comment.Columns.DateTime);
			Cal.TableElement = te;
			Cal.QueryCondition = q;
		}
예제 #4
0
		public static TableElement PerformJoins(TableElement tIn)
		{
			if (tIn == null)
				tIn = new TableElement(TablesEnum.Gallery);
			TableElement t = tIn;
			t = new Join(t, new TableElement(new Column(Gallery.Columns.MainPhotoK, Photo.Columns.K)), QueryJoinType.Left, Gallery.Columns.MainPhotoK, new Column(Gallery.Columns.MainPhotoK, Photo.Columns.K));
			t = new Join(t, new TableElement(new Column(Gallery.Columns.OwnerUsrK, Usr.Columns.K)), QueryJoinType.Inner, Gallery.Columns.OwnerUsrK, new Column(Gallery.Columns.OwnerUsrK, Usr.Columns.K));

			int usrK = 0;
			if (Usr.Current != null)
				usrK = Usr.Current.K;

			t = new Join(
				t,
				new TableElement(TablesEnum.GalleryUsr),
				QueryJoinType.Left,
				new And(
				new Q(Gallery.Columns.K, GalleryUsr.Columns.GalleryK, true),
				new Q(GalleryUsr.Columns.UsrK, usrK)));

			return t;
		}
예제 #5
0
		public void CompPanel_Load(object o, System.EventArgs e)
		{
			if (OnlyShowThreads)
			{
				CompPanel.Visible = false;
				return;
			}

			Q RelevanceQ = null;
			if (Discussable == null)
				RelevanceQ = new Q(true);
			else if (Discussable.UsedDiscussable is Event)
				RelevanceQ = new Q(Comp.Columns.EventK, Discussable.UsedDiscussable.K);
			else if (Discussable.UsedDiscussable is Venue)
				RelevanceQ = new Q(Event.Columns.VenueK, Discussable.UsedDiscussable.K);
			else if (Discussable.UsedDiscussable is Place)
				RelevanceQ = new Q(Venue.Columns.PlaceK, Discussable.UsedDiscussable.K);
			else if (Discussable.UsedDiscussable is Country)
				RelevanceQ = new Q(Place.Columns.CountryK, Discussable.UsedDiscussable.K);
			else if (Discussable.UsedDiscussable is Brand)
				RelevanceQ = new Or(
					new Q(Brand.Columns.K, Discussable.UsedDiscussable.K),
					new Q(Comp.Columns.BrandK, Discussable.UsedDiscussable.K));
			else if (Discussable.UsedDiscussable is Group)
				RelevanceQ = new Q(Group.Columns.K, Discussable.UsedDiscussable.K);

			TableElement t = new TableElement(TablesEnum.Comp);
			if (Discussable != null && Discussable.UsedDiscussable is Venue)
				t = new Join(Comp.Columns.EventK, Event.Columns.K);
			else if (Discussable != null && Discussable != null && Discussable.UsedDiscussable is Place)
				t = new Join(new Join(Comp.Columns.EventK, Event.Columns.K), new TableElement(TablesEnum.Venue), QueryJoinType.Inner, Event.Columns.VenueK, Venue.Columns.K);
			else if (Discussable != null && Discussable.UsedDiscussable is Country)
				t = new Join(
						new Join(
							new JoinLeft(Comp.Columns.EventK, Event.Columns.K),
							new TableElement(TablesEnum.Venue),
							QueryJoinType.Left,
							Event.Columns.VenueK,
							Venue.Columns.K),
						new TableElement(TablesEnum.Place),
						QueryJoinType.Left,
						Venue.Columns.PlaceK,
						Place.Columns.K);
			else if (Discussable != null && Discussable.UsedDiscussable is Brand)
				t = new Join(new TableElement(TablesEnum.Comp), Event.BrandJoin, QueryJoinType.Left, Comp.Columns.EventK, Event.Columns.K);
			else if (Discussable != null && Discussable.UsedDiscussable is Group)
				t = new Join(new TableElement(TablesEnum.Comp), Event.GroupJoin, QueryJoinType.Inner, Comp.Columns.EventK, Event.Columns.K);

			t = Templates.Comps.Latest.PerformJoins(t);

			Query q = new Query();
			q.Columns = Templates.Comps.Latest.Columns;

			q.QueryCondition = new And(
				new Q(Comp.Columns.Status, Comp.StatusEnum.Enabled),
				new Q(Comp.Columns.DateTimeClose, QueryOperator.GreaterThan, DateTime.Now),
				new Q(Comp.Columns.DateTimeStart, QueryOperator.LessThan, DateTime.Now),
				RelevanceQ
				);
			q.OrderBy = new OrderBy(new OrderBy(Comp.Columns.PrizeValueRange, OrderBy.OrderDirection.Descending), new OrderBy(OrderBy.OrderDirection.Random));
			q.TopRecords = Items;
			q.TableElement = t;
			CompSet cs = new CompSet(q);

			if (cs.Count == 0)
				CompPanel.Visible = false;
			else
			{
				CompPanel.Visible = true;
				CompDataList.DataSource = cs;
				CompDataList.ItemTemplate = this.LoadTemplate("/Templates/Comps/Latest.ascx");
				CompDataList.DataBind();

				if (Discussable == null)
					CompArchiveAnchor.HRef = Archive.GetUrl(DateTime.Now.Year, DateTime.Now.Month, 0, ArchiveObjectType.Comp, new string[] { }, "");
				else if (Discussable.UsedDiscussable is IHasArchive && cs.Count == Items)
					CompArchiveAnchor.HRef = ((IHasArchive)Discussable.UsedDiscussable).UrlArchiveDate(DateTime.Now.Year, DateTime.Now.Month, 0, ArchiveObjectType.Comp);
				else
				{
					CompArchiveDiv.Visible = false;
					CompPanelInner.Attributes["class"] = "LatestPanel Big CleanLinks";
				}
			}
		}
예제 #6
0
		protected void AddAllNow_Click(object sender, System.EventArgs e)
		{

			Query q = new Query();
			Join j = new Join(
				Usr.BuddyUsrJoin,
				new TableElement(TablesEnum.UsrMusicTypeFavourite),
				QueryJoinType.Left,
				Usr.Columns.K,
				UsrMusicTypeFavourite.Columns.UsrK);
			q.TableElement = new Join(
				j,
				new TableElement(TablesEnum.UsrPlaceVisit),
				QueryJoinType.Left,
				Usr.Columns.K,
				UsrPlaceVisit.Columns.UsrK);

			if (ThreadK > 0)
			{
				q.TableElement = new Join(
					q.TableElement,
					new TableElement(TablesEnum.ThreadUsr),
					QueryJoinType.Left,
					new And(
						new Q(Usr.Columns.K, ThreadUsr.Columns.UsrK, true),
						new Q(ThreadUsr.Columns.ThreadK, ThreadK)
					)
				);

			}
			else if (RestrictionGroupK > 0)
			{
				q.TableElement = new Join(
					q.TableElement,
					new TableElement(TablesEnum.GroupUsr),
					QueryJoinType.Left,
					new And(
						new Q(Usr.Columns.K, GroupUsr.Columns.UsrK, true),
						new Q(GroupUsr.Columns.GroupK, RestrictionGroupK)
					)
				);
			}

			Q placeQ = new Q(true);
			if (!AddAllPlaceDrop.SelectedValue.Equals("0"))
			{
				placeQ = new Or(
					new Q(Usr.Columns.HomePlaceK, int.Parse(AddAllPlaceDrop.SelectedValue)),
					new Q(UsrPlaceVisit.Columns.PlaceK, int.Parse(AddAllPlaceDrop.SelectedValue)));
			}
			int musicTypeK = int.Parse(AddAllMusicDrop.SelectedValue);
			Q musicQ = new Q(true);
			if (musicTypeK > 1)
			{
				ArrayList musicQs = new ArrayList();
				MusicType mt = new MusicType(musicTypeK);
				musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, 1));
				musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, 1));
				musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, musicTypeK));
				musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, musicTypeK));
				foreach (MusicType mtChild in mt.Children)
				{
					musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, mtChild.K));
					musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, mtChild.K));
				}
				musicQ = new Or((Q[])musicQs.ToArray(typeof(Q)));
			}

			Q restrictionQ = new Q(true);
			if (ThreadK > 0)
			{
				restrictionQ = new Q(ThreadUsr.Columns.UsrK, QueryOperator.IsNull, null);
			}
			else if (RestrictionGroupK > 0)
			{
				restrictionQ = RestrictionGroupQ;
			}

			q.QueryCondition = new And(
				new Q(Buddy.Columns.BuddyUsrK, Usr.Current.K),
				new Q(Buddy.Columns.FullBuddy, true),
				new Q(Buddy.Columns.CanBuddyInvite, true),
				restrictionQ,
				musicQ,
				placeQ);
			q.Columns = new ColumnSet(Usr.Columns.NickName, Usr.Columns.K, Usr.Columns.Pic, Usr.Columns.FacebookUID);
			q.Distinct = true;
			q.OrderBy = new OrderBy(Usr.Columns.NickName);
			q.DistinctColumn = Usr.Columns.K;
			UsrSet us = new UsrSet(q);
			int duplicate = 0;
			int done = 0;
			foreach (Usr u in us)
			{
				bool yes = this.AddUsr(u);
				if (yes)
					done++;
				else
					duplicate++;
			}
			string selectedDuplicate = "";
			if (duplicate > 0)
				selectedDuplicate = us.Count.ToString("#,##0") + " " + (us.Count == 1 ? "buddy" : "buddies") + " selected\n" + duplicate.ToString("#,##0") + " of them " + (duplicate == 1 ? "was" : "were") + " already in the list\n";

			AlertMessageAll(selectedDuplicate + done.ToString("#,##0") + " " + (done == 1 ? "buddy" : "buddies") + " added");

			if (done > 0)
			{
				MoreButton.InnerText = "More...";
				ShowMore = false;
				SetVisibility();
			}

			if (AnchorSkip.Length > 0)
				((Spotted.Master.DsiPage)Page).AnchorSkip(AnchorSkip);

		}
예제 #7
0
		public static TableElement UsrPageAttendedListPerformJoins(TableElement tIn)
		{
			TableElement t = new Join(tIn, Venue.Columns.K, Event.Columns.VenueK);
			t = new Join(t, Place.Columns.K, Venue.Columns.PlaceK);
			t = new Join(t, Country.Columns.K, Place.Columns.CountryK);
			return t;
		}
예제 #8
0
		public Dictionary<string, int> ResolveUsrsFromMultiBuddyChooserValues(IEnumerable<string> values, int restrictionGroupK, int threadK, Q restrictionGroupQ)
		{
			Dictionary<string, int> hash = new Dictionary<string, int>();

			foreach (var item in values)
			{
				if (item.StartsWith("{'email'"))
				{
					var esv = javaScriptSerializer.Deserialize<EmailSuggestionValue>(item);
					hash[esv.email] = CreateUsrFromEmail(esv.email, true);
					
				}else if (item.StartsWith("{'emails'"))
				{
					var esv = javaScriptSerializer.Deserialize<EmailsSuggestionValue>(item);
					string[] emails = GlobalObject.unescape(esv.emails).Split(' ');
					foreach (var email in emails)
					{
						hash[email] = CreateUsrFromEmail(email, esv.buddies);
					}
				}
				else if (item.StartsWith("{'MusicTypeK'"))
				{
					var musicTypeAndPlaceK = javaScriptSerializer.Deserialize<MusicTypeKAndPlaceK>(item);
					Query q = new Query();
					Join j = new Join(
						Usr.BuddyUsrJoin,
						new TableElement(TablesEnum.UsrMusicTypeFavourite),
						QueryJoinType.Left,
						Usr.Columns.K,
						UsrMusicTypeFavourite.Columns.UsrK);
					q.TableElement = new Join(
						j,
						new TableElement(TablesEnum.UsrPlaceVisit),
						QueryJoinType.Left,
						Usr.Columns.K,
						UsrPlaceVisit.Columns.UsrK);

					if (threadK > 0)
					{
						q.TableElement = new Join(
							q.TableElement,
							new TableElement(TablesEnum.ThreadUsr),
							QueryJoinType.Left,
							new And(
								new Q(Usr.Columns.K, ThreadUsr.Columns.UsrK, true),
								new Q(ThreadUsr.Columns.ThreadK, threadK)
							)
						);

					}
					else if (restrictionGroupK > 0)
					{
						q.TableElement = new Join(
							q.TableElement,
							new TableElement(TablesEnum.GroupUsr),
							QueryJoinType.Left,
							new And(
								new Q(Usr.Columns.K, GroupUsr.Columns.UsrK, true),
								new Q(GroupUsr.Columns.GroupK, restrictionGroupK)
							)
						);
					}

					Q placeQ = new Q(true);
					if (musicTypeAndPlaceK.PlaceK > 0)
					{
						placeQ = new Or(
							new Q(Usr.Columns.HomePlaceK, musicTypeAndPlaceK.PlaceK),
							new Q(UsrPlaceVisit.Columns.PlaceK, musicTypeAndPlaceK.PlaceK));
					}
					Q musicQ = new Q(true);
					if (musicTypeAndPlaceK.MusicTypeK > 1)
					{
						ArrayList musicQs = new ArrayList();
						MusicType mt = new MusicType(musicTypeAndPlaceK.MusicTypeK);
						musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, 1));
						musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, 1));
						musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, musicTypeAndPlaceK.MusicTypeK));
						musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, musicTypeAndPlaceK.MusicTypeK));
						foreach (MusicType mtChild in mt.Children)
						{
							musicQs.Add(new Q(Usr.Columns.FavouriteMusicTypeK, mtChild.K));
							musicQs.Add(new Q(UsrMusicTypeFavourite.Columns.MusicTypeK, mtChild.K));
						}
						musicQ = new Or((Q[])musicQs.ToArray(typeof(Q)));
					}

					Q restrictionQ = new Q(true);
					if (threadK > 0)
					{
						restrictionQ = new Q(ThreadUsr.Columns.UsrK, QueryOperator.IsNull, null);
					}
					else if (restrictionGroupK > 0)
					{
						restrictionQ = restrictionGroupQ;
					}

					q.QueryCondition = new And(
						new Q(Buddy.Columns.BuddyUsrK, Usr.Current.K),
						new Q(Buddy.Columns.FullBuddy, true),
						new Q(Buddy.Columns.CanBuddyInvite, true),
						musicQ,
						placeQ);
					if (restrictionGroupQ != null) q.QueryCondition = new And(q.QueryCondition, restrictionGroupQ);
					q.Columns = new ColumnSet(Usr.Columns.NickName, Usr.Columns.K, Usr.Columns.Pic, Usr.Columns.FacebookUID, Usr.Columns.Email);
					q.Distinct = true;
					q.OrderBy = new OrderBy(Usr.Columns.NickName);
					q.DistinctColumn = Usr.Columns.K;
					UsrSet us = new UsrSet(q);
					foreach (Usr u in us)
					{
						hash[u.NickName] = u.K;
					}

				}
				else if (item.IsNumeric())
				{
					int usrK = int.Parse(item);
					Usr usr = new Usr(usrK);
					if (usr.NickName == "")
					{
						hash["User" + usr.K] = usrK;
					}
					else
					{
						hash[usr.NickName] = usrK;
					}


				}
				else
				{
					throw new NotImplementedException();
				}
			}
			return hash;
		}
예제 #9
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);
			}

		}
예제 #10
0
			TableElement GetTableElement(bool outputOnly)
			{
				if (BuddyDisplay)
				{
					TableElement t;
					if (outputOnly)
					{
						t = new Join(Event.PlaceAndMusicTypeLeftJoin, Country.Columns.K, Place.Columns.CountryK);
					}
					else
					{
						t = new TableElement(TablesEnum.Event);
					}

					t = new Join(t,
						new TableElement(TablesEnum.UsrEventAttended),
						QueryJoinType.Left,
						new Q(Event.Columns.K, UsrEventAttended.Columns.EventK, true));

					t = new Join(t,
						new TableElement(TablesEnum.Buddy),
						QueryJoinType.Inner,
						new And(new Q(Buddy.Columns.FullBuddy, true), new Q(Buddy.Columns.UsrK, Usr.Current.K), new Q(UsrEventAttended.Columns.UsrK, Buddy.Columns.BuddyUsrK, true))
					);

					t = new Join(t,
						new TableElement(TablesEnum.Usr),
						QueryJoinType.Left,
						new Q(Buddy.Columns.BuddyUsrK, Usr.Columns.K, true)
					);

					t = new Join(t,
						new TableElement(new Column(Event.Columns.K, UsrEventAttended.Columns.EventK)),
						QueryJoinType.Left,
						new And(
							new Q(new Column(Event.Columns.K, UsrEventAttended.Columns.EventK), Event.Columns.K, true),
							new Q(new Column(Event.Columns.K, UsrEventAttended.Columns.UsrK), Usr.Current.K)
							)
					);

					return t;// Event.EventCountryJoin(t);
				}
				else if (FilterByUsrAttended)
				{
					return new Join(
						Event.CountryAllJoin,
						UsrEventAttended.Columns.EventK,
						Event.Columns.K);

				}
				else if (FilterByBrand)
					return new Join(
						new Join(Event.PlaceAndMusicTypeLeftJoin, Country.Columns.K, Place.Columns.CountryK),
						new TableElement(TablesEnum.EventBrand),
						QueryJoinType.Inner,
						Event.Columns.K,
						EventBrand.Columns.EventK
						);
				else if (FilterByGroup)
					return new Join(
						new Join(Event.PlaceAndMusicTypeLeftJoin, Country.Columns.K, Place.Columns.CountryK),
						new TableElement(TablesEnum.GroupEvent),
						QueryJoinType.Inner,
						Event.Columns.K,
						GroupEvent.Columns.EventK
						);
				else
					return new Join(Event.PlaceAndMusicTypeLeftJoin, Country.Columns.K, Place.Columns.CountryK);
			}
예제 #11
0
		public static TableElement EventCountryJoin(TableElement tIn)
		{
			TableElement t = tIn;
			t = new Join(t, Venue.Columns.K, Event.Columns.VenueK);
			t = new Join(t, Place.Columns.K, Venue.Columns.PlaceK);
			t = new Join(t, Country.Columns.K, Place.Columns.CountryK);
			return t;
		}