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; } }
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); }
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); }
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()); } } }
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(); } }