Example #1
0
		protected void Page_Load(object sender, EventArgs e)
		{
			Bobs.Log.Increment(Model.Entities.Log.Items.WhosGoingOutPage);
			if (Visit.HasCurrent && !Visit.Current.IsCrawler)
				Bobs.Log.Increment(Model.Entities.Log.Items.WhosGoingOutPageNoCrawlers);

			if (SexTypeFromUrl != SexType.NoneSpecified && LocationTypeFromUrl != LocationType.NoneSpecified)
			{
				
				UsrEventAttendedSet ueas = get(false);

				if (ueas.Count <= 1)
					ueas = get(true);

				if (ueas.Count > 1)
				{
					int tries = 0;
					int index = ContainerPage.Random.Next(ueas.Count);
					Usr newU = ueas[index].Usr;
					while (CurrentUsr != null && newU.K == CurrentUsr.K && tries < 10)
					{
						index = ContainerPage.Random.Next(ueas.Count);
						newU = ueas[index].Usr;
						tries++;
					}

					Next.HRef = GetUrl(SexTypeFromUrl, LocationTypeFromUrl, newU.K);
						//"/pages/out/" + (ContainerPage.Url[0] == "boys" ? "boys" : "girls") + "/" + newU.K.ToString();

					if (CurrentUsr == null)
						Response.Redirect(Next.HRef);
				}
			}
			else
			{
				TopP.Visible = false;
				TopPChoose.Visible = true;
			}

			if (CurrentUsr != null)
			{

				string mainPicPath = "";
				List<Photo> photos = new List<Photo>();
				List<int> photoKs = new List<int>();

				bool hasPic = false;
				if (CurrentUsr.HasPicNotFacebook)
				{
					hasPic = true;
					mainPicPath = CurrentUsr.PicPath;
					photos.Add(CurrentUsr.PicPhoto);
					photoKs.Add(CurrentUsr.PicPhotoK);
				}

				{
					Query q = new Query();
					q.TableElement = new Join(Photo.UsrMeJoin, UsrPhotoFavourite.Columns.PhotoK, Photo.Columns.K);
					if (photoKs.Count > 0)
					{
						q.QueryCondition = new And(new Q(Photo.Columns.MediaType, Photo.MediaTypes.Image), new Q(Usr.Columns.K, CurrentUsr.K), new Q(UsrPhotoFavourite.Columns.UsrK, CurrentUsr.K), new NotQ(new InListQ(Photo.Columns.K, photoKs)));
					}
					else
					{
						q.QueryCondition = new And(new Q(Photo.Columns.MediaType, Photo.MediaTypes.Image), new Q(Usr.Columns.K, CurrentUsr.K), new Q(UsrPhotoFavourite.Columns.UsrK, CurrentUsr.K));
					}
					q.OrderBy = Photo.DateTimeOrder(OrderBy.OrderDirection.Descending);
					q.TopRecords = 5;
					q.CacheDuration = new TimeSpan(1, 0, 0);
					PhotoSet ps = new PhotoSet(q);

					foreach (Photo p in ps)
					{
						if (photos.Count == 0)
							mainPicPath = p.IconPath;

						photos.Add(p);
						photoKs.Add(p.K);
					}
				}

				if (photos.Count < 5)
				{
					Query q = new Query();
					q.TableElement = Photo.UsrMeJoin;
					if (photoKs.Count > 0)
					{
						q.QueryCondition = new And(new Q(Photo.Columns.MediaType, Photo.MediaTypes.Image), new Q(Usr.Columns.K, CurrentUsr.K), new NotQ(new InListQ(Photo.Columns.K, photoKs)));
					}
					else
					{
						q.QueryCondition = new And(new Q(Photo.Columns.MediaType, Photo.MediaTypes.Image), new Q(Usr.Columns.K, CurrentUsr.K));
					}
					q.OrderBy = Photo.DateTimeOrder(OrderBy.OrderDirection.Descending);
					q.TopRecords = 5;
					q.CacheDuration = new TimeSpan(1, 0, 0);
					PhotoSet ps = new PhotoSet(q);

					foreach (Photo p in ps)
					{
						if (photos.Count == 0)
							mainPicPath = p.IconPath;

						photos.Add(p);
						photoKs.Add(p.K);
					}
				}

				if (photos.Count == 0)
				{
					WebHolder.Visible = false;
					Thumb1.Visible = false;
					Thumb2.Visible = false;
					Thumb3.Visible = false;
					Thumb4.Visible = false;
					Thumb5.Visible = false;
				}
				else
				{
					Thumb1.Src = mainPicPath;
					Web.Src = photos[0].WebPath;
					Web.Width = photos[0].WebWidth;
					Web.Height = photos[0].WebHeight;
					Link.HRef = photos[0].Url();
					Thumb1.Attributes["onmouseover"] = "change('" + photos[0].WebPath + "', " + photos[0].WebWidth + ", " + photos[0].WebHeight + ", '" + photos[0].Url() + "');";
					Thumb1.Attributes["onclick"] = "change('" + photos[0].WebPath + "', " + photos[0].WebWidth + ", " + photos[0].WebHeight + ", '" + photos[0].Url() + "');";

					if (photos.Count > 1)
					{
						Thumb2.Src = photos[1].IconPath;
						Thumb2.Attributes["onmouseover"] = "change('" + photos[1].WebPath + "', " + photos[1].WebWidth + ", " + photos[1].WebHeight + ", '" + photos[1].Url() + "');";
						Thumb2.Attributes["onclick"] = "change('" + photos[1].WebPath + "', " + photos[1].WebWidth + ", " + photos[1].WebHeight + ", '" + photos[1].Url() + "');";

						if (photos.Count > 2)
						{
							Thumb3.Src = photos[2].IconPath;
							Thumb3.Attributes["onmouseover"] = "change('" + photos[2].WebPath + "', " + photos[2].WebWidth + ", " + photos[2].WebHeight + ", '" + photos[2].Url() + "');";
							Thumb3.Attributes["onclick"] = "change('" + photos[2].WebPath + "', " + photos[2].WebWidth + ", " + photos[2].WebHeight + ", '" + photos[2].Url() + "');";

							if (photos.Count > 3)
							{
								Thumb4.Src = photos[3].IconPath;
								Thumb4.Attributes["onmouseover"] = "change('" + photos[3].WebPath + "', " + photos[3].WebWidth + ", " + photos[3].WebHeight + ", '" + photos[3].Url() + "');";
								Thumb4.Attributes["onclick"] = "change('" + photos[3].WebPath + "', " + photos[3].WebWidth + ", " + photos[3].WebHeight + ", '" + photos[3].Url() + "');";


								if (photos.Count > 4)
								{
									Thumb5.Src = photos[4].IconPath;
									Thumb5.Attributes["onmouseover"] = "change('" + photos[4].WebPath + "', " + photos[4].WebWidth + ", " + photos[4].WebHeight + ", '" + photos[4].Url() + "');";
									Thumb5.Attributes["onclick"] = "change('" + photos[4].WebPath + "', " + photos[4].WebWidth + ", " + photos[4].WebHeight + ", '" + photos[4].Url() + "');";
								}
								else
								{
									Thumb5.Visible = false;
								}
							}
							else
							{
								Thumb4.Visible = false;
								Thumb5.Visible = false;
							}
						}
						else
						{
							Thumb3.Visible = false;
							Thumb4.Visible = false;
							Thumb5.Visible = false;
						}
					}
					else
					{
						Thumb2.Visible = false;
						Thumb3.Visible = false;
						Thumb4.Visible = false;
						Thumb5.Visible = false;
					}

				}

				BottomPara.InnerHtml = "Showing ";

				BottomPara.InnerHtml += SexTypeFromUrl == SexType.Girls ? "girls " : "";
				BottomPara.InnerHtml += SexTypeFromUrl == SexType.Boys ? "boys " : "";
				BottomPara.InnerHtml += SexTypeFromUrl == SexType.All || SexTypeFromUrl == SexType.NoneSpecified ? "girls and boys " : "";

				BottomPara.InnerHtml += " going out ";

				BottomPara.InnerHtml += LocationTypeFromUrl == LocationType.Country ? ("in " + CountryFromUrl.FriendlyName + ".") : "";
				BottomPara.InnerHtml += LocationTypeFromUrl == LocationType.Worldwide || LocationTypeFromUrl == LocationType.NoneSpecified ? "worldwide." : "";

				BottomPara.InnerHtml += " Click for: ";

				BottomPara.InnerHtml += SexTypeFromUrl == SexType.Girls ? "" : ("<a href=\"" + GetUrl(SexType.Girls, LocationTypeFromUrl, 0) + "\">girls</a>, ");
				BottomPara.InnerHtml += SexTypeFromUrl == SexType.Boys ? "" : ("<a href=\"" + GetUrl(SexType.Boys, LocationTypeFromUrl, 0) + "\">boys</a>, ");
				BottomPara.InnerHtml += SexTypeFromUrl == SexType.All || SexTypeFromUrl == SexType.NoneSpecified ? "" : ("<a href=\"" + GetUrl(SexType.All, LocationTypeFromUrl, 0) + "\">girls and boys</a>, ");

				BottomPara.InnerHtml += LocationTypeFromUrl == LocationType.Country ? "" : ("<a href=\"" + GetUrl(SexTypeFromUrl, LocationType.Country, 0) + "\">going out in " + HomeCountryFromVisitor.FriendlyName + "</a>.");
				BottomPara.InnerHtml += LocationTypeFromUrl == LocationType.Worldwide || LocationTypeFromUrl == LocationType.NoneSpecified ? "" : ("going out <a href=\"" + GetUrl(SexTypeFromUrl, LocationType.Worldwide, 0) + "\">worldwide</a>.");

				PlaceHolder para = photos.Count > 0 ? Para : ParaTop;

				{
					Query q = new Query();
					q.TableElement = Event.UsrAttendedJoin;
					q.QueryCondition = new And(
						new Q(Usr.Columns.K, CurrentUsr.K),
						Event.FutureEventsQueryCondition);
					q.OrderBy = Event.FutureEventOrder;
					q.Columns = new ColumnSet(UsrEventAttended.Columns.EventK);
					q.CacheDuration = new TimeSpan(1, 0, 0);

					UsrEventAttendedSet ueas = new UsrEventAttendedSet(q);

					if (ueas.Count > 0)
					{
						UsrEventAttended uea = ueas[0];

						Event ev = uea.Event;

						para.Controls.Add(
							new LiteralControl(
								"<p" + (photos.Count > 0 ? " style=\"margin-top:15px;\"" : "") + "><center>" + CurrentUsr.Link() + " is going to " + ev.FriendlyHtml(true, true, true, true, false) + (photos.Count == 0 ? ", but has no photos." : "") + "</center></p>"
							)
						);

					}
					else
					{
						para.Controls.Add(
							new LiteralControl(
								"<p" + (photos.Count > 0 ? " style=\"margin-top:15px;\"" : "") + "><center>" + CurrentUsr.Link() + " isn't going out soon" + (photos.Count == 0 ? ", and has no photos." : "") + "</center></p>"							)
						);
					}
					para.Controls.Add(
						new LiteralControl(
							"<p><center>Want to say hi? <a href=\"" + CurrentUsr.Url() + "#PrivateMessage\">Send " + CurrentUsr.NickName + " a private message.</a></center></p>")
					);
				}
			}
			else
			{
				WebHolder.Visible = false;
				Thumb2.Visible = false;
				Thumb1.Visible = false;
				Thumb3.Visible = false;
			}

		}
Example #2
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);


		}
Example #3
0
		public void UpdateHasSpotter(Transaction transaction)
		{
			Query q = new Query();
			q.NoLock = true;
			q.TopRecords = 1;
			q.QueryCondition = new And(new Q(UsrEventAttended.Columns.EventK, this.K), new Q(UsrEventAttended.Columns.Spotter, true));
			UsrEventAttendedSet uess = new UsrEventAttendedSet(q);
			this.HasSpotter = uess.Count > 0;
			this.Update(transaction);
		}
Example #4
0
		public static void SendAfterEventReminders()
		{
			Random r = new Random();
			UsrEventAttendedSet ueas;
			{
				Query q = new Query();
				q.QueryCondition = new And(
					new Q(Event.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, DateTime.Today.AddDays(-1)),
					new Q(Event.Columns.DateTime, QueryOperator.LessThan, DateTime.Today),
					new Q(UsrEventAttended.Columns.SendUpdate, true)
				);
				q.TableElement = new Join(UsrEventAttended.Columns.EventK, Event.Columns.K);
				ueas = new UsrEventAttendedSet(q);
			}

			foreach (UsrEventAttended uea in ueas)
			{
				Console.Write(uea.Usr.NickName);
				try
				{
					
					string subject = "You attended \"" + uea.Event.Name.TruncateWithDots(40) + "\"";
					StringBuilder sb = new StringBuilder();

					sb.Append("<p>Hi ");
					sb.Append(uea.Usr.FirstName);
					sb.Append("</p>");


					sb.Append("<p>You recently attended ");
					uea.Event.AppendFriendlyHtml(sb, true, false, false, true, false, 30, true);
					sb.Append(".</p><p>Don't forget to:</p>");
					sb.Append("<ul>");
					
					sb.Append("<li><a href=\"[LOGIN(");
					sb.Append(uea.Event.UrlGalleryEdit);
					sb.Append(")]\">Upload your photos</a></li>");

					sb.Append("<li><a href=\"[LOGIN(");
					sb.Append(uea.Event.UrlApp("review", ""));
					sb.Append(")]\">Write a review</a></li>");

					sb.Append("<li><a href=\"[LOGIN(");
					sb.Append(uea.Event.UrlApp("chat", ""));
					sb.Append(")]\">Chat about the event</a></li>");

					sb.Append("</ul>");
					

						
					if (uea.Event.EventBrands.Count > 0)
					{
						if (uea.Event.EventBrands.Count == 1)
						{
							sb.Append("<p>You can keep up to date with future events by joining the ");
							sb.Append("<a href=\"[LOGIN(");
							sb.Append(uea.Event.EventBrands[0].Brand.Url());
							sb.Append(")]\">");
							sb.Append(uea.Event.EventBrands[0].Brand.Name);
							sb.Append("</a>");
							sb.Append(" group.</p>");
						}
						else
						{
							sb.Append("<p>You can keep up to date with future events by joining the following groups:</p>");
							sb.Append("<ul>");
							foreach (EventBrand eb in uea.Event.EventBrands)
							{
								sb.Append("<li>");
								sb.Append("<a href=\"[LOGIN(");
								sb.Append(eb.Brand.Url());
								sb.Append(")]\">");
								sb.Append(eb.Brand.Name);
								sb.Append("</a>");
								sb.Append("</li>");
							}
							sb.Append("</ul>");
						}
					}
					sb.Append("<p>We hope you enjoyed the event!</p>");

					Mailer m = new Mailer(r);
					m.Body = sb.ToString();
					m.Bulk = true;
					m.Subject = subject;
					m.UsrRecipient = uea.Usr;
					m.RedirectUrl = uea.Event.Url();
					m.Send();

						
					
					Console.Write("... done.");
					Console.WriteLine();
				}
				catch (Exception ex)
				{
					Console.WriteLine(ex.ToString());
				}
			}

			
		}
Example #5
0
		public void UpdateUsrAttendCount(bool update)
		{
			Query q = new Query();
			q.QueryCondition = new Q(UsrEventAttended.Columns.EventK, this.K);
			q.ReturnCountOnly = true;
			UsrEventAttendedSet uus = new UsrEventAttendedSet(q);

			if (uus.Count != this.UsrAttendCount)
			{
				this.UsrAttendCount = uus.Count;
				if (update)
					this.Update();
			}
		}