public void ThreadFinished() { _finished.Add(RunningThreadId); _enabled.Remove(RunningThreadId); _priority.RemovePriorityOf(RunningThreadId); if (!AllThreadsFinished) { if (_deadlock) { // If there is a deadlock, manually schedule the threads // in turn, so they have the opportunity to throw an exception and exit. // Calling MaybeSwitch() here isn't possible, because there are no // enabled threads to schedule. var unfinished = new ThreadSet(_numThreads); for (int i = 0; i < _numThreads; ++i) { if (!_finished[i]) { RunningThreadId = i; } } } else { MaybeSwitch(); } } }
public void GivePriorityOver(int x, ThreadSet threads) { for (int i = 0; i < _numThreads; ++i) { if (threads[i] && i != x) { _hasPriority[x, i] = true; } } }
private void PrepareForScheduling() { _finished = new ThreadSet(_numThreads); _enabled = new ThreadSet(_numThreads); _disabledSince = new ThreadSet[_numThreads]; _scheduledSince = new ThreadSet[_numThreads]; _enabledSince = new ThreadSet[_numThreads]; for (int i = 0; i < _numThreads; ++i) { _disabledSince[i] = new ThreadSet(_numThreads); _enabledSince[i] = new ThreadSet(_numThreads); _scheduledSince[i] = new ThreadSet(_numThreads); _enabled.Add(i); } _waitingOnLock = new object[_numThreads]; _priority = new PriorityRelation(_numThreads); _currentYieldPenalty = 0; _deadlock = false; }
void Bind() { Query q = new Query(); q.NoLock = true; q.QueryCondition = new Q(Usr.Columns.AdminLevel, Usr.AdminLevels.Super); q.OrderBy = new OrderBy(Usr.Columns.NickName); q.Columns = new ColumnSet(Usr.LinkColumns, Usr.Columns.DateTimeLastPageRequest, Usr.Columns.IsLoggedOn, Usr.Columns.FirstName, Usr.Columns.LastName, Usr.Columns.IsSkeleton); UsrSet us = new UsrSet(q); ModeratorsDataGrid.DataSource = us; ModeratorsDataGrid.DataBind(); if (ContainerPage.Url["usrk"].IsInt) { int UsrK = ContainerPage.Url["usrk"]; if (ContainerPage.Url["type"] == 1) { Query tsq = new Query(); tsq.QueryCondition = new And( new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.NewsModeratorUsrK, UsrK)); tsq.TopRecords = 10; tsq.NoLock = true; ThreadSet ts = new ThreadSet(tsq); if (ts.Count == 0) ItemsPanel.Visible = false; else { ItemsRepeater.DataSource = ts; ItemsRepeater.ItemTemplate = this.LoadTemplate("/Templates/Threads/NewsAdmin.ascx"); ItemsRepeater.DataBind(); } } else { ItemsPanel.Visible = false; } } else { ItemsPanel.Visible = false; } }
public ThreadSet GetSchedulableThreads(ThreadSet enabled) { var admissable = new ThreadSet(_numThreads); admissable.ReplaceWith(enabled); for (int i = 0; i < _numThreads; ++i) { if (!admissable[i]) { continue; } for (int j = 0; j < _numThreads; ++j) { // Thread i cannot be scheduled if an enabled thread // has priority over it. if (_hasPriority[i, j] && enabled[j]) { admissable.Remove(i); break; } } } return(admissable); }
public void ReviewsPanel_Load(object o, System.EventArgs e) { if (OnlyShowThreads) { ReviewsPanel.Visible = false; return; } Query q = new Query(); Q RelevanceQ = new Q(false); if (Discussable == null) RelevanceQ = new Q(true); else if (Discussable.UsedDiscussable is Country) RelevanceQ = new Q(Thread.Columns.CountryK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Place) RelevanceQ = new Q(Thread.Columns.PlaceK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Venue) RelevanceQ = new Q(Thread.Columns.VenueK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Event) RelevanceQ = new Q(Thread.Columns.EventK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Brand) { RelevanceQ = new Q(EventBrand.Columns.BrandK, Discussable.UsedDiscussable.K); q.TableElement = Thread.EventBrandJoin; } else if (Discussable.UsedDiscussable is Group) { RelevanceQ = new Q(GroupEvent.Columns.GroupK, Discussable.UsedDiscussable.K); q.TableElement = Thread.EventGroupJoin; } q.TableElement = Templates.Threads.ReviewLatest.PerformJoins(q.TableElement); q.Columns = Templates.Threads.ReviewLatest.Columns; q.QueryCondition = new And( new Q(Thread.Columns.IsReview, true), RelevanceQ, new Q(Thread.Columns.Private, false), new Q(Thread.Columns.GroupPrivate, false), new Q(Thread.Columns.PrivateGroup, false) ); q.OrderBy = new OrderBy(Thread.Columns.DateTime, OrderBy.OrderDirection.Descending); q.TopRecords = Items; ThreadSet ts = new ThreadSet(q); if (ts.Count == 0) ReviewsPanel.Visible = false; else { ReviewsDataList.DataSource = ts; ReviewsDataList.ItemTemplate = this.LoadTemplate("/Templates/Threads/ReviewLatest.ascx"); ReviewsDataList.DataBind(); if (Discussable == null) ReviewsArchiveAnchor.HRef = Archive.GetUrl(ts[0].DateTime.Year, ts[0].DateTime.Month, 0, ArchiveObjectType.Review, new string[] { }, ""); else if (Discussable.UsedDiscussable is IHasArchive && ts.Count == Items) ReviewsArchiveAnchor.HRef = ((IHasArchive)Discussable.UsedDiscussable).UrlArchiveDate(ts[0].DateTime.Year, ts[0].DateTime.Month, 0, ArchiveObjectType.Review); else { ReviewsArchiveDiv.Visible = false; ReviewsPanelInner.Attributes["class"] = "LatestPanel Big CleanLinks"; } } }
public void SortArticleThreadK(object o, System.EventArgs e) { Cambro.Web.Helpers.WriteAlertHeader(); Cambro.Web.Helpers.WriteAlert("Selecting articles...", 1); Query q = new Query(); ArticleSet bs = new ArticleSet(q); for (int count = 0; count < bs.Count; count++) { Article c = bs[count]; try { Query q1 = new Query(); q1.TopRecords=1; q1.OrderBy=new OrderBy(Thread.Columns.TotalComments, OrderBy.OrderDirection.Descending); q1.QueryCondition=new And( new Q(Thread.Columns.ArticleK, c.K), new Q(Thread.Columns.Private, false), new Q(Thread.Columns.GroupK, 0)); ThreadSet ts = new ThreadSet(q1); if (ts.Count == 0) { c.ThreadK = 0; } else { c.ThreadK = ts[0].K; } // Do work here! c.Update(); if (count % 10 == 0) Cambro.Web.Helpers.WriteAlert("Done " + count + "/" + bs.Count, 2); } catch(Exception ex) { Cambro.Web.Helpers.WriteAlert("Exception " + count + "/" + bs.Count + " - " + ex.ToString(), 3); } bs.Kill(count); } Cambro.Web.Helpers.WriteAlert("Done!", 3); Cambro.Web.Helpers.WriteAlertFooter(); }
private void NewsPanel_Load(object o, EventArgs e) { if (OnlyShowThreads) { NewsPanel.Visible = false; return; } Q RelevanceQ = null; if (Discussable == null) { RelevanceQ = new Q(true); } else if (Discussable.UsedDiscussable is Country) RelevanceQ = new Q(Thread.Columns.CountryK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Place) RelevanceQ = new Q(Thread.Columns.PlaceK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Venue) RelevanceQ = new Q(Thread.Columns.VenueK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Event) RelevanceQ = new Q(Thread.Columns.EventK, Discussable.UsedDiscussable.K); else if (Discussable.UsedDiscussable is Brand) RelevanceQ = Group.ThreadsQ(((Brand)Discussable.UsedDiscussable).GroupK); else if (Discussable.UsedDiscussable is Group) RelevanceQ = Group.ThreadsQWithLinkedEvents((Group)Discussable.UsedDiscussable); Query q = new Query(); if (Discussable != null && Discussable.UsedDiscussable is Group) q.TableElement = Thread.EventGroupLeftJoin; q.TableElement = Templates.Threads.NewsLatest.PerformJoins(q.TableElement); q.Columns = Templates.Threads.NewsLatest.Columns; q.QueryCondition = new And( RelevanceQ, new Q(Thread.Columns.IsNews, true), new Q(Thread.Columns.GroupPrivate, false), new Q(Thread.Columns.PrivateGroup, false)); q.OrderBy = Thread.NewsOrder; q.TopRecords = Items; ThreadSet tsNews = new ThreadSet(q); if (tsNews.Count == 0) NewsPanel.Visible = false; else { NewsDataList.DataSource = tsNews; NewsDataList.ItemTemplate = this.LoadTemplate("/Templates/Threads/NewsLatest.ascx"); NewsDataList.DataBind(); if (Discussable == null) NewsArchiveAnchor.HRef = Archive.GetUrl(tsNews[0].DateTime.Year, tsNews[0].DateTime.Month, 0, ArchiveObjectType.News, new string[] { }, ""); else if (Discussable.UsedDiscussable is IHasArchive && tsNews.Count == Items) NewsArchiveAnchor.HRef = ((IHasArchive)Discussable.UsedDiscussable).UrlArchiveDate(tsNews[0].DateTime.Year, tsNews[0].DateTime.Month, 0, ArchiveObjectType.News); else { NewsArchiveDiv.Visible = false; NewsPanelInner.Attributes["class"] = "LatestPanel Big CleanLinks"; } } }
public void DeleteAll(Transaction transaction) { if (!this.Bob.DbRecordExists) return; this.ContentDisabled = false; this.Update(transaction); try { UsrSet usPhotoPic = new UsrSet(new Query(new Q(Usr.Columns.PicPhotoK, this.K))); foreach (Usr u in usPhotoPic) { try { Guid picToDelete = u.Pic; u.Pic = Guid.Empty; u.PicPhotoK = 0; u.PicState = ""; u.Update(transaction); Storage.RemoveFromStore(Storage.Stores.Pix, picToDelete, "jpg"); } catch { } } } catch { } try { if (this.Gallery.MainPhotoK == this.K) { Query q = new Query(); q.QueryCondition = new And( new Q(Photo.Columns.GalleryK, this.GalleryK), Photo.EnabledQueryCondition ); q.OrderBy = new OrderBy(Photo.Columns.DateTime); q.Columns = new ColumnSet(Photo.Columns.K, Photo.Columns.Status); PhotoSet psMain = new PhotoSet(q); int firstDisabled = 0; foreach (Photo p in psMain) { if (p.K != this.K) { if (p.Status == StatusEnum.Enabled) { this.Gallery.MainPhotoK = p.K; break; } else if (firstDisabled == 0) firstDisabled = p.K; } } if (firstDisabled > 0) this.Gallery.MainPhotoK = firstDisabled; this.Gallery.Update(transaction); //PhotoSet psMain = new PhotoSet( // new Query( // new And( // new Q(Photo.Columns.K, QueryOperator.NotEqualTo, this.K), // new Q(Photo.Columns.GalleryK, this.GalleryK), // Photo.EnabledQueryCondition), // new OrderBy(Photo.Columns.DateTime), // 1 // ) // ); //if (psMain.Count > 0) //{ // this.Gallery.MainPhotoK = psMain[0].K; //} //else //{ // PhotoSet psMain1 = new PhotoSet( // new Query( // new And( // new Q(Photo.Columns.K, QueryOperator.NotEqualTo, this.K), // new Q(Photo.Columns.GalleryK, this.GalleryK) // ), // new OrderBy(Photo.Columns.DateTime), // 1 // ) // ); // if (psMain1.Count > 0) // { // this.Gallery.MainPhotoK = psMain1[0].K; // } // else // { // this.Gallery.MainPhotoK = 0; // } //} //this.Gallery.Update(transaction); } } catch { } try { Delete UsrPhotoFavouriteDelete = new Delete( TablesEnum.UsrPhotoFavourite, new Q(UsrPhotoFavourite.Columns.PhotoK, this.K) ); UsrPhotoFavouriteDelete.Run(transaction); } catch { } try { Delete UsrPhotoMeDelete = new Delete( TablesEnum.UsrPhotoMe, new Q(UsrPhotoMe.Columns.PhotoK, this.K) ); UsrPhotoMeDelete.Run(transaction); } catch { } try { Delete CommentAlertDelete = new Delete( TablesEnum.CommentAlert, new And( new Q(CommentAlert.Columns.ParentObjectK, this.K), new Q(CommentAlert.Columns.ParentObjectType, Model.Entities.ObjectType.Photo) ) ); CommentAlertDelete.Run(transaction); } catch { } try { if (this.ThreadK.HasValue && this.ThreadK.Value > 0) this.Thread.DeleteAll(transaction); } catch { } try { ThreadSet ts = new ThreadSet(new Query(new Q(Thread.Columns.PhotoK, this.K))); foreach (Thread t in ts) { t.DeleteAll(transaction); } } catch { } try { Delete PhotoReviewDelete = new Delete( TablesEnum.PhotoReview, new Q(PhotoReview.Columns.PhotoK, this.K) ); PhotoReviewDelete.Run(transaction); } catch { } try { ParaSet ps = new ParaSet(new Query(new Q(Para.Columns.PhotoK, this.K))); foreach (Para p in ps) { if (p.Type.Equals(Para.TypeEnum.Photo)) p.DeleteAll(transaction); else { Guid oldPic = p.Pic; p.Pic = Guid.Empty; p.PhotoK = 0; p.Update(transaction); if (oldPic != Guid.Empty) Storage.RemoveFromStore(Storage.Stores.Pix, oldPic, "jpg"); } } } catch { } try { foreach (var tagPhoto in this.ChildTagPhotos()) { foreach (var tagPhotoHistory in tagPhoto.ChildTagPhotoHistorys()) { tagPhotoHistory.Delete(transaction); } tagPhoto.Delete(transaction); } } catch { } Guid uploadTemporary = this.UploadTemporary; string uploadTemporaryExtention = this.UploadTemporaryExtention; Guid master = this.Master; Guid web = this.Web; Guid thumb = this.Thumb; Guid icon = this.Icon; bool isVideo = this.MediaType == MediaTypes.Video; Guid videoMaster = this.VideoMaster; string videoFileExtention = this.VideoFileExtention; Guid videoMed = this.VideoMed; bool hasCrop = this.HasCrop; Guid crop = this.HasCrop ? this.Crop : Guid.Empty; try { this.Delete(transaction); } catch { } try { Storage.RemoveFromStore(Storage.Stores.Temporary, uploadTemporary, uploadTemporaryExtention); Storage.RemoveFromStore(Storage.Stores.Master, master, "jpg"); Storage.RemoveFromStore(Storage.Stores.Pix, web, "jpg"); Storage.RemoveFromStore(Storage.Stores.Pix, thumb, "jpg"); Storage.RemoveFromStore(Storage.Stores.Pix, icon, "jpg"); if (isVideo) { Storage.RemoveFromStore(Storage.Stores.Master, videoMaster, videoFileExtention); Storage.RemoveFromStore(Storage.Stores.Pix, videoMed, "flv"); } if (hasCrop) Storage.RemoveFromStore(Storage.Stores.Pix, crop, "jpg"); } catch { } try { this.Usr.UpdateTotalPhotos(transaction); } catch { } try { this.Gallery.UpdateStats(transaction, true); } catch { } try { this.Gallery.UpdatePhotoOrder(transaction); } catch { } try { if (this.Event != null) this.Event.UpdateTotalPhotos(transaction); } catch { } }
public void DeleteAll(Transaction transaction) { if (!this.Bob.DbRecordExists) return; Query qUsrEventGuestlist = new Query(); qUsrEventGuestlist.QueryCondition = new Q(UsrEventGuestlist.Columns.UsrK, this.K); UsrEventGuestlistSet uegs = new UsrEventGuestlistSet(qUsrEventGuestlist); foreach (UsrEventGuestlist ueg in uegs) { ueg.Delete(transaction); ueg.Event.UpdateGuestlistCount(transaction); } //Promoters Query PromoterQ = new Query(); PromoterQ.TableElement = Promoter.UsrJoin; PromoterQ.QueryCondition = new Q(Usr.Columns.K, this.K); PromoterSet promoters = new PromoterSet(PromoterQ); Delete PromoterUsrDelete = new Delete( TablesEnum.PromoterUsr, new Q(PromoterUsr.Columns.UsrK, this.K) ); PromoterUsrDelete.CommandTimeout = 3600; PromoterUsrDelete.Run(transaction); foreach (Promoter p in promoters) { p.AdminUsrs = null; if (p.AdminUsrs.Count == 0) { p.DeleteAll(transaction); } else if (p.PrimaryUsrK == this.K) { p.PrimaryUsrK = p.AdminUsrs[0].K; p.Update(transaction); } } //UsrPlaceVisit Delete UsrPlaceVisitDelete = new Delete( TablesEnum.UsrPlaceVisit, new Q(UsrPlaceVisit.Columns.UsrK, this.K) ); UsrPlaceVisitDelete.CommandTimeout = 3600; UsrPlaceVisitDelete.Run(transaction); //UsrEventAttended Delete UsrEventAttendedDelete = new Delete( TablesEnum.UsrEventAttended, new Q(UsrEventAttended.Columns.UsrK, this.K) ); UsrEventAttendedDelete.CommandTimeout = 3600; UsrEventAttendedDelete.Run(transaction); //UsrPhotoFavourite Delete UsrPhotoFavouriteDelete = new Delete( TablesEnum.UsrPhotoFavourite, new Q(UsrPhotoFavourite.Columns.UsrK, this.K) ); UsrPhotoFavouriteDelete.CommandTimeout = 3600; UsrPhotoFavouriteDelete.Run(transaction); //UsrPhotoMe PhotoSet psMe = this.PhotosMe(new ColumnSet(Photo.Columns.K, Photo.Columns.EventK, Photo.Columns.FirstUsrK, Photo.Columns.UsrCount), 0); foreach (Photo p in psMe) { this.PhotoMe(p, false, transaction); } //UsrMusicTypeFavourite Delete UsrMusicTypeFavouriteDelete = new Delete( TablesEnum.UsrMusicTypeFavourite, new Q(UsrMusicTypeFavourite.Columns.UsrK, this.K) ); UsrMusicTypeFavouriteDelete.CommandTimeout = 3600; UsrMusicTypeFavouriteDelete.Run(transaction); //Buddy / Buddy reverse; BuddySet bs = new BuddySet(new Query(new Or(new Q(Buddy.Columns.UsrK, this.K), new Q(Buddy.Columns.BuddyUsrK, this.K)))); foreach (Buddy b in bs) b.DeleteAll(transaction); //ChatMessageFrom // Delete ChatMessageFromDelete = new Delete( // TablesEnum.ChatMessage, // new Q(ChatMessage.Columns.FromUsrK,this.K) // ); // ChatMessageFromDelete.Run(transaction); //ChatMessageTo // Delete ChatMessageToDelete = new Delete( // TablesEnum.ChatMessage, // new Q(ChatMessage.Columns.ToUsrK, this.K) // ); // ChatMessageToDelete.Run(transaction); //UsrDate Delete UsrDateDelete = new Delete( TablesEnum.UsrDate, new Or(new Q(UsrDate.Columns.UsrK, this.K), new Q(UsrDate.Columns.DateUsrK, this.K)) ); UsrDateDelete.CommandTimeout = 3600; UsrDateDelete.Run(transaction); //Owners - Event EventSet esOwner = new EventSet(new Query(new Q(Event.Columns.OwnerUsrK, this.K))); foreach (Event e in esOwner) { e.OwnerUsrK = 8; e.Update(transaction); } BrandSet bsOwner = new BrandSet(new Query(new Q(Brand.Columns.OwnerUsrK, this.K))); foreach (Brand b in bsOwner) { b.OwnerUsrK = 8; b.Update(transaction); } //Owners - Venue VenueSet vsOwner = new VenueSet(new Query(new Q(Venue.Columns.OwnerUsrK, this.K))); foreach (Venue v in vsOwner) { v.OwnerUsrK = 8; v.Update(transaction); } //Remove EnabledByUsrK in Photos that this usr has enabled PhotoSet pEnableds = new PhotoSet(new Query(new Q(Photo.Columns.EnabledByUsrK, this.K))); foreach (Photo p in pEnableds) { p.EnabledByUsrK = 0; p.Update(transaction); } //ThreadUsr Delete ThreadUsrDelete = new Delete( TablesEnum.ThreadUsr, new Or(new Q(ThreadUsr.Columns.UsrK, this.K), new Q(ThreadUsr.Columns.InvitingUsrK, this.K)) ); ThreadUsrDelete.CommandTimeout = 3600; ThreadUsrDelete.Run(transaction); //CommentAlert Delete CommentAlertDelete = new Delete( TablesEnum.CommentAlert, new Q(CommentAlert.Columns.UsrK, this.K) ); CommentAlertDelete.CommandTimeout = 3600; CommentAlertDelete.Run(transaction); //GroupUsr Delete GroupUsrDelete = new Delete( TablesEnum.GroupUsr, new Q(GroupUsr.Columns.UsrK, this.K) ); GroupUsrDelete.CommandTimeout = 3600; GroupUsrDelete.Run(transaction); //Threads? ThreadSet ts = new ThreadSet(new Query(new Q(Thread.Columns.UsrK, this.K))); foreach (Thread t in ts) t.DeleteAll(transaction); Bobs.Update uLastPostUsrK = new Bobs.Update(); uLastPostUsrK.Changes.Add(new Assign(Thread.Columns.LastPostUsrK, 0)); uLastPostUsrK.Table = TablesEnum.Thread; uLastPostUsrK.Where = new Q(Thread.Columns.LastPostUsrK, this.K); uLastPostUsrK.CommandTimeout = 3600; uLastPostUsrK.Run(transaction); Bobs.Update uFirstParticipantUsrK = new Bobs.Update(); uFirstParticipantUsrK.Changes.Add(new Assign(Thread.Columns.FirstParticipantUsrK, 0)); uFirstParticipantUsrK.Table = TablesEnum.Thread; uFirstParticipantUsrK.Where = new Q(Thread.Columns.FirstParticipantUsrK, this.K); uFirstParticipantUsrK.CommandTimeout = 3600; uFirstParticipantUsrK.Run(); //Comments? CommentSet cs = new CommentSet(new Query(new Q(Comment.Columns.UsrK, this.K))); foreach (Comment c in cs) c.DeleteAll(transaction); //PhotoReview ??? PhotoReviewSet prs = new PhotoReviewSet(new Query(new Q(PhotoReview.Columns.UsrK, this.K))); foreach (PhotoReview pr in prs) { pr.Delete(transaction); pr.Photo.UpdateStats(transaction); } //Galleries GallerySet gs = new GallerySet(new Query(new Q(Gallery.Columns.OwnerUsrK, this.K))); foreach (Gallery g in gs) g.DeleteAll(transaction); //Photos PhotoSet ps = new PhotoSet(new Query(new Q(Photo.Columns.UsrK, this.K))); foreach (Photo p in ps) p.DeleteAll(transaction); //Aticles ArticleSet ars = new ArticleSet(new Query(new Q(Article.Columns.OwnerUsrK, this.K))); foreach (Article a in ars) a.DeleteAll(transaction); int k = this.K; //Usr-AddedByUsrK UsrSet usrsAddedByUsr = new UsrSet(new Query(new Q(Usr.Columns.AddedByUsrK, this.K))); foreach (Usr u in usrsAddedByUsr) { u.AddedByUsrK = 0; u.Update(transaction); } Guid oldPic = this.Pic; //Usr this.Delete(transaction); if (oldPic != Guid.Empty) Storage.RemoveFromStore(Storage.Stores.Pix, oldPic, "jpg"); }
void NewsListBind() { if (EnsureSecure) { Query q = new Query(); q.QueryCondition = new And(new Q(Thread.Columns.EventK, CurrentEvent.K), new Q(Thread.Columns.IsNews, true), new Q(Brand.Columns.PromoterK, CurrentPromoter.K)); q.TableElement = new Join( new TableElement(TablesEnum.Thread), new Join(Group.Columns.BrandK, Brand.Columns.K), QueryJoinType.Inner, new Q(Thread.Columns.GroupK, Group.Columns.K, true) ); q.OrderBy = new OrderBy(Thread.Columns.DateTime, OrderBy.OrderDirection.Descending); ThreadSet ts = new ThreadSet(q); NewsPanel.Visible = ts.Count > 0; NoNewsPanel.Visible = ts.Count == 0; if (ts.Count > 0) { NewsDataGrid.AllowPaging = ts.Count > NewsDataGrid.PageSize; NewsDataGrid.DataSource = ts; NewsDataGrid.DataBind(); } } }
private void Page_Load(object sender, System.EventArgs e) { if (this.Visible) { string name = ""; if (Type.Equals(ArchiveObjectType.Gallery)) { name = "Galleries"; TitleSpan.InnerHtml = "galleries"; } else if (Type.Equals(ArchiveObjectType.Article)) { if (IsMixmagArchive) { name = "Mixmag articles"; TitleSpan.InnerHtml = " <a href=\"/pages/mixmag\"><img src=\"/gfx/logo-mixmag-small.png\" border=\"0\" align=\"absmiddle\" width=\"100\" height=\"22\"></a> articles"; } else { name = "Articles"; TitleSpan.InnerHtml = "articles"; } } else if (Type.Equals(ArchiveObjectType.Comp)) { name = "Competitions"; TitleSpan.InnerHtml = "competitions"; } else if (Type.Equals(ArchiveObjectType.News)) { name = "News"; TitleSpan.InnerHtml = "news"; } else if (Type.Equals(ArchiveObjectType.Review)) { name = "Reviews"; TitleSpan.InnerHtml = "reviews"; } else if (Type.Equals(ArchiveObjectType.Guestlist)) { name = "Guestlists"; TitleSpan.InnerHtml = "guestlists"; } name += " archive"; TitleSpan.InnerHtml += " archive"; if (ContainerPage.Url.HasObjectFilter && ContainerPage.Url.ObjectFilterBob is IHasArchive) name += " for " + ((IName)ContainerPage.Url.ObjectFilterBob).FriendlyName; if (ContainerPage.Url.HasCountryObjectFilter) { TitleSpan.InnerHtml += " for <a href=\"" + ContainerPage.Url.ObjectFilterCountry.Url() + "\">" + ContainerPage.Url.ObjectFilterCountry.FriendlyName + "</a>"; } else if (ContainerPage.Url.HasPlaceObjectFilter) { TitleSpan.InnerHtml += " for <a href=\"" + ContainerPage.Url.ObjectFilterPlace.Url() + "\">" + ContainerPage.Url.ObjectFilterPlace.Name + "</a>"; } else if (ContainerPage.Url.HasVenueObjectFilter) { TitleSpan.InnerHtml += " for <a href=\"" + ContainerPage.Url.ObjectFilterVenue.Url() + "\">" + ContainerPage.Url.ObjectFilterVenue.Name + "</a> in <a href=\"" + ContainerPage.Url.ObjectFilterVenue.Place.Url() + "\">" + ContainerPage.Url.ObjectFilterVenue.Place.Name + "</a>"; } else if (ContainerPage.Url.HasObjectFilter && ContainerPage.Url.ObjectFilterBob is IPage && ContainerPage.Url.ObjectFilterBob is IName) { TitleSpan.InnerHtml += " for <a href=\"" + ((IPage)ContainerPage.Url.ObjectFilterBob).Url() + "\">" + ((IName)ContainerPage.Url.ObjectFilterBob).Name + "</a>"; } name += " - " + ContainerPage.Url.DateFilter.ToString("MMMM") + " " + ContainerPage.Url.DateFilter.Year.ToString(); Header.InnerText = name; ContainerPage.SetPageTitle(name); #region firstCellDate, lastCellDate DateTime firstOfMonth = new DateTime(ContainerPage.Url.DateFilter.Year, ContainerPage.Url.DateFilter.Month, 1); DateTime firstCellDate = firstOfMonth.AddDays(-(int)firstOfMonth.DayOfWeek + 1); if (firstOfMonth.DayOfWeek.Equals(DayOfWeek.Sunday)) firstCellDate = firstOfMonth.AddDays(-6); DateTime lastOfMonth = firstOfMonth.AddDays(System.DateTime.DaysInMonth(ContainerPage.Url.DateFilter.Year, ContainerPage.Url.DateFilter.Month) - 1); int daysToAdd = 7 - (int)lastOfMonth.DayOfWeek; if (daysToAdd == 7) daysToAdd = 0; DateTime lastCellDate = lastOfMonth.AddDays(daysToAdd); if (lastOfMonth.DayOfWeek.Equals(DayOfWeek.Sunday)) lastCellDate = lastOfMonth; #endregion Query queryAll = new Query(); queryAll.QueryCondition = new And( ObjectFilter, GeneralFilter, new Q(DateColumn, QueryOperator.GreaterThanOrEqualTo, firstCellDate), new Q(DateColumn, QueryOperator.LessThan, lastCellDate.AddDays(1)) ); queryAll.OrderBy = OrderBy; queryAll.TableElement = TableElement; BobSet bs = null; if (Type.Equals(ArchiveObjectType.Gallery)) bs = new GallerySet(queryAll); else if (Type.Equals(ArchiveObjectType.Article)) bs = new ArticleSet(queryAll); else if (Type.Equals(ArchiveObjectType.Comp)) bs = new CompSet(queryAll); else if (Type.Equals(ArchiveObjectType.News) || Type.Equals(ArchiveObjectType.Review)) bs = new ThreadSet(queryAll); else if (Type.Equals(ArchiveObjectType.Guestlist)) bs = new EventSet(queryAll); ItemsHiddenP.Visible = bs.Count > 150; if (ContainerPage.Url.HasDayFilter) { Query queryDay = new Query(); queryDay.QueryCondition = new And( ObjectFilter, GeneralFilter, new Q(DateColumn, QueryOperator.GreaterThanOrEqualTo, ContainerPage.Url.DateFilter), new Q(DateColumn, QueryOperator.LessThan, ContainerPage.Url.DateFilter.AddDays(1)) ); queryDay.OrderBy = OrderBy; queryDay.TableElement = TableElement; if (Type.Equals(ArchiveObjectType.Gallery)) DayRepeater.DataSource = new GallerySet(queryDay); else if (Type.Equals(ArchiveObjectType.Article)) DayRepeater.DataSource = new ArticleSet(queryDay); else if (Type.Equals(ArchiveObjectType.Comp)) DayRepeater.DataSource = new CompSet(queryDay); else if (Type.Equals(ArchiveObjectType.News) || Type.Equals(ArchiveObjectType.Review)) DayRepeater.DataSource = new ThreadSet(queryDay); else if (Type.Equals(ArchiveObjectType.Guestlist)) DayRepeater.DataSource = new EventSet(queryDay); DayRepeater.DataBind(); } else DayItemsP.Visible = false; Arch.ShowCountry = ShowCountry; Arch.ShowPlace = ShowPlace; Arch.ShowVenue = ShowVenue; Arch.ShowEvent = ShowEvent; Arch.Objects = bs; Arch.Type = Type; Arch.Month = ContainerPage.Url.DateFilter.Month; Arch.StartDate = firstCellDate; Arch.EndDate = lastCellDate; MonthNameLabel.Text = firstOfMonth.ToString("MMMM") + " " + ContainerPage.Url.DateFilter.Year.ToString(); MonthNameLabel1.Text = firstOfMonth.ToString("MMMM") + " " + ContainerPage.Url.DateFilter.Year.ToString(); BackLink.InnerHtml = "< " + firstOfMonth.AddDays(-1).ToString("MMMM"); BackLink1.InnerHtml = "< " + firstOfMonth.AddDays(-1).ToString("MMMM"); BackLink.HRef = Link(firstOfMonth.AddDays(-1).Year, firstOfMonth.AddDays(-1).Month, 0, Type); BackLink1.HRef = Link(firstOfMonth.AddDays(-1).Year, firstOfMonth.AddDays(-1).Month, 0, Type); NextLink.InnerHtml = lastOfMonth.AddDays(1).ToString("MMMM") + " >"; NextLink1.InnerHtml = lastOfMonth.AddDays(1).ToString("MMMM") + " >"; NextLink.HRef = Link(lastOfMonth.AddDays(1).Year, lastOfMonth.AddDays(1).Month, 0, Type); NextLink1.HRef = Link(lastOfMonth.AddDays(1).Year, lastOfMonth.AddDays(1).Month, 0, Type); #region Set up back / next buttons if (bs.Count == 0) { #region moreFutureBs Query moreFutureQuery = new Query(); moreFutureQuery.QueryCondition = new And( ObjectFilter, GeneralFilter, new Q(DateColumn, QueryOperator.GreaterThanOrEqualTo, new DateTime(lastOfMonth.AddDays(1).Year, lastOfMonth.AddDays(1).Month, 1)) ); moreFutureQuery.TopRecords = 1; moreFutureQuery.OrderBy = new OrderBy(DateColumn, OrderBy.OrderDirection.Ascending); moreFutureQuery.TableElement = TableElement; BobSet moreFutureBs = null; if (Type.Equals(ArchiveObjectType.Gallery)) moreFutureBs = new GallerySet(moreFutureQuery); else if (Type.Equals(ArchiveObjectType.Article)) moreFutureBs = new ArticleSet(moreFutureQuery); else if (Type.Equals(ArchiveObjectType.Comp)) moreFutureBs = new CompSet(moreFutureQuery); else if (Type.Equals(ArchiveObjectType.News) || Type.Equals(ArchiveObjectType.Review)) moreFutureBs = new ThreadSet(moreFutureQuery); else if (Type.Equals(ArchiveObjectType.Guestlist)) moreFutureBs = new EventSet(moreFutureQuery); #endregion #region morePastBs Query morePastQuery = new Query(); morePastQuery.QueryCondition = new And( ObjectFilter, GeneralFilter, new Q(DateColumn, QueryOperator.LessThan, new DateTime(ContainerPage.Url.DateFilter.Year, ContainerPage.Url.DateFilter.Month, 1)) ); morePastQuery.TopRecords = 1; morePastQuery.OrderBy = new OrderBy(DateColumn, OrderBy.OrderDirection.Descending); morePastQuery.TableElement = TableElement; BobSet morePastBs = null; if (Type.Equals(ArchiveObjectType.Gallery)) morePastBs = new GallerySet(morePastQuery); else if (Type.Equals(ArchiveObjectType.Article)) morePastBs = new ArticleSet(morePastQuery); else if (Type.Equals(ArchiveObjectType.Comp)) morePastBs = new CompSet(morePastQuery); else if (Type.Equals(ArchiveObjectType.News) || Type.Equals(ArchiveObjectType.Review)) morePastBs = new ThreadSet(morePastQuery); else if (Type.Equals(ArchiveObjectType.Guestlist)) morePastBs = new EventSet(morePastQuery); #endregion if (morePastBs.Count == 0) { BackLink.HRef = ""; BackLink1.HRef = ""; BackLink.Disabled = true; BackLink1.Disabled = true; } else { IArchive latest = (IArchive)morePastBs.GetFromIndex(0); BackLink.HRef = Link(latest.ArchiveDateTime.Year, latest.ArchiveDateTime.Month, 0, Type); BackLink1.HRef = Link(latest.ArchiveDateTime.Year, latest.ArchiveDateTime.Month, 0, Type); BackLink.InnerHtml = "< " + latest.ArchiveDateTime.ToString("MMMM"); BackLink1.InnerHtml = "< " + latest.ArchiveDateTime.ToString("MMMM"); if (latest.ArchiveDateTime.Year != ContainerPage.Url.DateFilter.Year) { BackLink.InnerHtml = "< " + latest.ArchiveDateTime.ToString("MMMM") + " " + latest.ArchiveDateTime.Year.ToString(); BackLink1.InnerHtml = "< " + latest.ArchiveDateTime.ToString("MMMM") + " " + latest.ArchiveDateTime.Year.ToString(); } } if (moreFutureBs.Count == 0) { NextLink.HRef = ""; NextLink1.HRef = ""; NextLink.Disabled = true; NextLink1.Disabled = true; } else { IArchive first = (IArchive)moreFutureBs.GetFromIndex(0); NextLink.HRef = Link(first.ArchiveDateTime.Year, first.ArchiveDateTime.Month, 0, Type); NextLink1.HRef = Link(first.ArchiveDateTime.Year, first.ArchiveDateTime.Month, 0, Type); NextLink.InnerHtml = first.ArchiveDateTime.ToString("MMMM") + " >"; NextLink1.InnerHtml = first.ArchiveDateTime.ToString("MMMM") + " >"; if (first.ArchiveDateTime.Year != ContainerPage.Url.DateFilter.Year) { NextLink.InnerHtml = first.ArchiveDateTime.ToString("MMMM") + " " + first.ArchiveDateTime.Year.ToString() + " >"; NextLink1.InnerHtml = first.ArchiveDateTime.ToString("MMMM") + " " + first.ArchiveDateTime.Year.ToString() + " >"; } } if (BackLink.Disabled) BackLink.Attributes["class"] = "DisabledAnchor"; if (BackLink1.Disabled) BackLink1.Attributes["class"] = "DisabledAnchor"; if (NextLink.Disabled) NextLink.Attributes["class"] = "DisabledAnchor"; if (NextLink1.Disabled) NextLink1.Attributes["class"] = "DisabledAnchor"; } #endregion } }
public void DeleteAll(Transaction transaction) { if (!this.Bob.DbRecordExists) return; // TicketRuns and Tickets this.ticketRuns = null; if (this.TicketRuns != null && this.TicketRuns.Count > 0) { foreach (TicketRun tr in this.TicketRuns) { if (tr.Status != TicketRun.TicketRunStatus.Ended) throw new DsiUserFriendlyException("Cannot delete an event that has ticket runs that have not ended."); if (tr.SoldTickets > 0 || tr.Tickets.Count > 0) throw new DsiUserFriendlyException("Cannot delete an event that has ticket runs that have sold tickets."); } Delete TicketRunDelete = new Delete(TablesEnum.TicketRun, new Q(TicketRun.Columns.EventK, this.K)); TicketRunDelete.Run(transaction); } //EventBrands Delete BrandDelete = new Delete( TablesEnum.EventBrand, new Q(EventBrand.Columns.EventK, this.K) ); BrandDelete.Run(transaction); //UsrEventAttended Delete UsrEventAttendedDelete = new Delete( TablesEnum.UsrEventAttended, new Q(UsrEventAttended.Columns.EventK, this.K) ); UsrEventAttendedDelete.Run(transaction); //Galleries foreach (Gallery g in this.AllGalleries) g.DeleteAll(transaction); //Threads ThreadSet ts = new ThreadSet(new Query(new And(new Q(Thread.Columns.ParentObjectType, Model.Entities.ObjectType.Event), new Q(Thread.Columns.ParentObjectK, this.K)))); foreach (Thread t in ts) t.DeleteAll(transaction); //EventMusicType Delete EventMusicTypeDelete = new Delete( TablesEnum.EventMusicType, new Q(EventMusicType.Columns.EventK, this.K) ); EventMusicTypeDelete.Run(transaction); //delete CommentAlerts Delete CommentAlertDelete = new Delete( TablesEnum.CommentAlert, new And( new Q(CommentAlert.Columns.ParentObjectK, this.K), new Q(CommentAlert.Columns.ParentObjectType, Model.Entities.ObjectType.Event) ) ); CommentAlertDelete.Run(transaction); //Articles ArticleSet ars = new ArticleSet(new Query(new Q(Article.Columns.EventK, this.K))); foreach (Article a in ars) a.DeleteAll(transaction); Guid oldPic = this.HasPic ? this.Pic : Guid.Empty; int oldPicMiscK = this.PicMisc != null ? this.PicMiscK : 0; this.Delete(transaction); if (oldPic != Guid.Empty) Storage.RemoveFromStore(Storage.Stores.Pix, oldPic, "jpg"); if (oldPicMiscK > 0) { Misc m = new Misc(oldPicMiscK); m.DeleteAll(transaction); } this.Venue.UpdateTotalEvents(transaction); this.Owner.UpdateEventCount(transaction); }
private void NewsAdminPanel_Load(object sender, System.EventArgs e) { NewsAdminPanel.Visible = ShowNewsAdmin; if (ShowNewsAdmin) { NewsDisableAllLinkButton.Attributes["onclick"] = "return confirm('Are you sure?');"; BindNewsDataGrid(); if (NewsThreadK > 0 && NewsThread.NewsStatus.Equals(Thread.NewsStatusEnum.Recommended)) { ThreadSet ts = new ThreadSet(new Query(new Q(Thread.Columns.K, NewsThreadK))); NewsThreadRepeater.ItemTemplate = this.LoadTemplate("/Templates/Threads/GroupNewsAdmin.ascx"); NewsThreadRepeater.DataSource = ts; NewsThreadRepeater.DataBind(); } else NewsThreadPanel.Visible = false; } }
public string PromoterHtmlNews(Promoter p) { Query q = new Query(); q.QueryCondition = new And(new Q(Thread.Columns.EventK, this.K), new Q(Thread.Columns.IsNews, true), new Q(Brand.Columns.PromoterK, p.K)); q.TableElement = new Join( new TableElement(TablesEnum.Thread), new Join(Group.Columns.BrandK, Brand.Columns.K), QueryJoinType.Inner, new Q(Thread.Columns.GroupK, Group.Columns.K, true) ); q.ReturnCountOnly = true; ThreadSet ts = new ThreadSet(q); return TickCrossHtml(ts.Count > 0); }
public MakerReturn Post() { MakerReturn r = new MakerReturn(); #region look for duplicate Query qDup = new Query(); qDup.TopRecords = 1; qDup.Columns = new ColumnSet(Bobs.Comment.Columns.K, Bobs.Comment.Columns.ThreadK); qDup.QueryCondition = new Q(Bobs.Comment.Columns.DuplicateGuid, (Guid)DuplicateGuid); CommentSet csDup = new CommentSet(qDup); if (csDup.Count > 0) { r.Success = false; r.MessageHtml = "Duplicate thread detected"; r.Thread = csDup[0].Thread; r.Duplicate = true; return r; } #endregion #region ensure two parents are different types... if (ParentType.Equals(Model.Entities.ObjectType.Group) && GroupK != ParentK) { r.Success = false; r.MessageHtml = "Posting to group, but GroupK!=ParentK"; return r; } #endregion #region Make sure Group and ParentType are syncronised if (GroupK > 0 && ParentType.Equals(Model.Entities.ObjectType.None)) { ParentType = Model.Entities.ObjectType.Group; ParentK = GroupK; } if (GroupK == 0 && ParentType.Equals(Model.Entities.ObjectType.Group)) { GroupK = ParentK; } #endregion #region if we're posting in a group, make sure we are a member if (GroupK > 0) { GroupUsr gu = ParentGroup.GetGroupUsr(PostingUsr); if (!PostingUsr.CanGroupMember(gu)) { r.Success = false; r.MessageHtml = "You have tried to post a message in the " + ParentGroup.Link() + " group, but you're not currently a member of this group. Check out the group homepage for more information."; return r; } } #endregion #region ensure both parents map to real objects if (!ParentType.Equals(Model.Entities.ObjectType.None)) { if (ParentBob == null) { r.Success = false; r.MessageHtml = "You've tried to post a message in a non-existant chat. Maybe it's been deleted."; return r; } } if (GroupK > 0) { if (ParentGroup == null) { r.Success = false; r.MessageHtml = "You've tried to post a message in a non-existant group. Maybe it's been deleted."; return r; } } #endregion #region Private bool tPrivate = false; bool gPrivate = false; if (Private) { if (GroupK == 0) tPrivate = true; else gPrivate = true; } #endregion #region News tNews = false; tNewsStatus = NewsStatusEnum.None; int tNewsLevel = 0; int tNewsUsrK = 0; int tNewsModeratorUsrK = 0; if (News) { if (tPrivate) { r.Success = false; r.MessageHtml = "You've tried to post private news! How did this happen?"; return r; } else if (GroupK == 0) { r.Success = false; r.MessageHtml = "You've tried to post public non-group news. How did this happen?"; return r; //if (PostingUsr.NewsPermissionLevel >= 10 || PostingUsr.IsSuper) //{ // tNews = true; // tNewsStatus = NewsStatusEnum.Recommended; // tNewsModeratorUsrK = Usr.GetNewsModeratorUsrK(); // tNewsLevel = 10; // tNewsUsrK = PostingUsr.K; //} //else //{ // tNews = false; // tNewsStatus = NewsStatusEnum.Recommended; // tNewsModeratorUsrK = Usr.GetNewsModeratorUsrK(); // tNewsLevel = 0; // tNewsUsrK = PostingUsr.K; //} } else { GroupUsr gu = ParentGroup.GetGroupUsr(PostingUsr); if (PostingUsr.CanGroupNewsAdmin(gu)) { tNews = true; tNewsStatus = NewsStatusEnum.Done; tNewsLevel = 10; tNewsUsrK = PostingUsr.K; } else { tNews = false; tNewsStatus = NewsStatusEnum.Recommended; tNewsLevel = 10; tNewsUsrK = PostingUsr.K; } } } #endregion #region Sealed bool tSealed = false; if (Sealed) { if (tPrivate) tSealed = true; } #endregion #region Closed bool tClosed = false; if (Closed) { tClosed = true; } #endregion #region Review bool tReview = false; if (Review) { if (ParentType.Equals(Model.Entities.ObjectType.Event) && GroupK == 0) { Query qReviews = new Query(); qReviews.QueryCondition = new And( new Q(Columns.UsrK, PostingUsr.K), new Q(Columns.ParentObjectType, Model.Entities.ObjectType.Event), new Q(Columns.ParentObjectK, ParentK), new Q(Columns.IsReview, true) ); qReviews.TopRecords = 1; qReviews.Columns = new ColumnSet(Thread.Columns.K); ThreadSet tsReviews = new ThreadSet(qReviews); if (tsReviews.Count > 0) { r.Success = false; r.MessageHtml = "You've already posted a review. You can only post one review per event."; r.Duplicate = true; r.Thread = tsReviews[0]; return r; } else tReview = true; } else { r.Success = false; r.MessageHtml = "You must post a review in an event chat board."; return r; } } #endregion if (GroupK > 0) CurrentGroupUsr = ParentGroup.GetGroupUsr(PostingUsr); Transaction trans = null;//new Transaction(); NewThread = new Thread(); try { #region Create thread NewThread.DateTime = DateTime.Now; NewThread.Enabled = true; NewThread.UsrK = PostingUsr.K; NewThread.LastPostUsrK = PostingUsr.K; NewThread.Subject = Helpers.Strip(Subject, true, true, true, true); NewThread.ParentObjectType = ParentType; NewThread.ParentObjectK = ParentK; if (GroupK > 0) NewThread.GroupK = ParentGroup.K; else NewThread.GroupK = 0; NewThread.Private = tPrivate; NewThread.GroupPrivate = gPrivate; if (GroupK > 0) NewThread.PrivateGroup = ParentGroup.PrivateChat; else NewThread.PrivateGroup = false; NewThread.IsNews = tNews; NewThread.NewsStatus = tNewsStatus; NewThread.NewsLevel = tNewsLevel; NewThread.NewsModeratorUsrK = tNewsModeratorUsrK; NewThread.NewsUsrK = tNewsUsrK; NewThread.Sealed = tSealed; NewThread.Closed = tClosed; NewThread.IsReview = tReview; NewThread.UpdateAncestorLinksNoUpdate(); NewThread.Update(trans); #endregion #region Add PostingUsr ThreadUsr CurrentThreadUsr = new ThreadUsr(); CurrentThreadUsr.DateTime = DateTime.Now; CurrentThreadUsr.InvitingUsrK = PostingUsr.K; CurrentThreadUsr.UsrK = PostingUsr.K; CurrentThreadUsr.ThreadK = NewThread.K; CurrentThreadUsr.ChangeStatus(ThreadUsr.StatusEnum.Archived, NewThread.DateTime); CurrentThreadUsr.StatusChangeObjectK = PostingUsr.K; CurrentThreadUsr.StatusChangeObjectType = Model.Entities.ObjectType.Usr; CurrentThreadUsr.Update(trans); #endregion #region Make the comment Comment.Maker cMaker = new Comment.Maker(); cMaker.Body = Body; cMaker.ParentThread = NewThread; cMaker.DuplicateGuid = DuplicateGuid; cMaker.PostingUsr = PostingUsr; cMaker.InviteKs = InviteKs; cMaker.AlertedUsrs = AlertedUsrs; cMaker.NewThread = true; cMaker.CurrentThreadUsr = CurrentThreadUsr; cMaker.CurrentGroupUsr = CurrentGroupUsr; cMaker.RunAsync = RunAsync; cMaker.DisableLiveChatMessage = DisableLiveChatMessage; Comment.MakerReturn cReturn = null; try { cReturn = cMaker.Post(trans); } catch (Exception ex) { NewThread.DeleteAll(null); throw ex; } #endregion //SendThreadAlertsJob sendThreadsAlert = new SendThreadAlertsJob(NewThread.K, AlertedUsrs, PostingUsr.K, Subject, InviteKs); //if (this.RunAsync) //{ // sendThreadsAlert.ExecuteAsynchronously(); //} //else //{ // sendThreadsAlert.ExecuteSynchronously(); //} r.Success = true; r.Thread = NewThread; r.Comment = cReturn.Comment; return r; } catch (Exception ex) { //trans.Rollback(); NewThread.DeleteAll(null); throw ex; } finally { //trans.Close(); } }
private void Page_Load(object sender, System.EventArgs e) { Response.ContentType = "text/xml"; Response.Clear(); Response.Buffer = false; XmlTextWriter x = new XmlTextWriter(Response.OutputStream, Encoding.UTF8); x.Formatting = Formatting.Indented; x.WriteRaw("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"); string dateFormat = "yyyy-MM-ddTHH:mm:sszzz"; if (Request.QueryString[0].Equals("index")) { #region sitemapindex x.WriteStartElement("sitemapindex"); x.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84"); if (true) { #region sitemap - countries x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?country"); Query q = new Query(); q.QueryCondition = new And( new Q(Thread.Columns.Private, false), new Q(Thread.Columns.PrivateGroup, false), new Q(Thread.Columns.GroupPrivate, false) ); q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; ThreadSet bobset = new ThreadSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - place x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?place"); Query q = new Query(); q.OrderBy = new OrderBy(Place.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; PlaceSet bobset = new PlaceSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - venue x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?venue"); Query q = new Query(); q.OrderBy = new OrderBy(Venue.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; VenueSet bobset = new VenueSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - event x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?event"); Query q = new Query(); q.OrderBy = new OrderBy(Event.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; EventSet bobset = new EventSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - thread x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?thread"); Query q = new Query(); q.QueryCondition = new And( new Q(Thread.Columns.Private, false), new Q(Thread.Columns.PrivateGroup, false), new Q(Thread.Columns.GroupPrivate, false) ); q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; ThreadSet bobset = new ThreadSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - photo x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?photo"); Query q = new Query(); q.QueryCondition = Photo.EnabledQueryCondition; q.OrderBy = new OrderBy(Photo.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending); q.TopRecords = 1; PhotoSet bobset = new PhotoSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].EnabledDateTime.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - usr x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?usr"); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - article x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?article"); Query q = new Query(); q.QueryCondition = Article.EnabledQueryCondition; q.OrderBy = new OrderBy(Article.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending); q.TopRecords = 1; ArticleSet bobset = new ArticleSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].EnabledDateTime.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - comp x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?comp"); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - brand x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?brand"); Query q = new Query(); q.OrderBy = new OrderBy(Brand.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; BrandSet bobset = new BrandSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } if (true) { #region sitemap - group x.WriteStartElement("sitemap"); x.WriteElementString("loc", "http://www.dontstayin.com/sitemapxml?group"); Query q = new Query(); q.QueryCondition = new And( new Q(Group.Columns.BrandK, 0), new Q(Group.Columns.PrivateGroupPage, false)); q.OrderBy = new OrderBy(Group.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; GroupSet bobset = new GroupSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.Value.ToString(dateFormat)); x.WriteEndElement(); //sitemap #endregion } x.WriteEndElement(); //sitemapindex #endregion } else { #region urlset x.WriteStartElement("urlset"); x.WriteAttributeString("xmlns", "http://www.google.com/schemas/sitemap/0.84"); #region Countries if (Request.QueryString[0].Equals("country")) { if (true) { #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com/"); Query q = new Query(); q.QueryCondition = new And( new Q(Thread.Columns.Private, false), new Q(Thread.Columns.PrivateGroup, false), new Q(Thread.Columns.GroupPrivate, false) ); q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending); q.TopRecords = 1; ThreadSet bobset = new ThreadSet(q); if (bobset.Count > 0) x.WriteElementString("lastmod", bobset[0].LastPost.ToString(dateFormat)); x.WriteElementString("changefreq", "hourly"); x.WriteEndElement(); //url #endregion } if (true) { Query q = new Query(); q.QueryCondition = new Q(Country.Columns.TotalEvents, QueryOperator.GreaterThan, 0); q.OrderBy = new OrderBy(Country.Columns.TotalEvents, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Country.LinkColumns, Country.Columns.TotalEvents); if (Vars.DevEnv) q.TopRecords = 10; CountrySet bobset = new CountrySet(q); for (int i = 0; i < bobset.Count; i++) { Country p = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url()); if (p.TotalEvents > 100) x.WriteElementString("changefreq", "hourly"); else if (p.TotalEvents > 20) x.WriteElementString("changefreq", "daily"); else if (p.TotalEvents > 10) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } } #endregion #region Places if (Request.QueryString[0].Equals("place")) { Query q = new Query(); q.QueryCondition = new Or( new Q(Place.Columns.TotalComments, QueryOperator.GreaterThan, 0), new Q(Place.Columns.TotalEvents, QueryOperator.GreaterThan, 0)); q.OrderBy = new OrderBy(Place.Columns.TotalComments, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Place.LinkColumns, Place.Columns.LastPost); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; PlaceSet bobset = new PlaceSet(q); for (int i = 0; i < bobset.Count; i++) { Place p = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url()); if (p.LastPost != DateTime.MinValue) { x.WriteElementString("lastmod", p.LastPost.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(p.LastPost); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); } else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Venues if (Request.QueryString[0].Equals("venue")) { Query q = new Query(); q.OrderBy = new OrderBy(Venue.Columns.TotalEvents, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Venue.LinkColumns, Venue.Columns.LastPost, Venue.Columns.TotalEvents); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; VenueSet bobset = new VenueSet(q); for (int i = 0; i < bobset.Count; i++) { Venue v = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + v.Url()); if (v.LastPost != DateTime.MinValue) { x.WriteElementString("lastmod", v.LastPost.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(v.LastPost); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); } else if (v.TotalEvents > 10) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Events if (Request.QueryString[0].Equals("event")) { Query q = new Query(); q.OrderBy = new OrderBy(Event.Columns.LastPost, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Event.LinkColumns, Event.Columns.LastPost, Event.Columns.DateTime); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; EventSet bobset = new EventSet(q); for (int i = 0; i < bobset.Count; i++) { Event ev = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + ev.Url()); if (ev.LastPost != DateTime.MinValue) { x.WriteElementString("lastmod", ev.LastPost.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(ev.LastPost); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); } else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Threads if (Request.QueryString[0].Equals("thread")) { Query q = new Query(); q.QueryCondition = new And( new Q(Thread.Columns.Private, false), new Q(Thread.Columns.PrivateGroup, false), new Q(Thread.Columns.GroupPrivate, false) ); q.Columns = new ColumnSet(Thread.Columns.K, Thread.Columns.UrlFragment, Thread.Columns.TotalComments, Thread.Columns.LastPost); q.OrderBy = new OrderBy(Thread.Columns.LastPost, OrderBy.OrderDirection.Descending); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; ThreadSet bobset = new ThreadSet(q); for (int i = 0; i < bobset.Count; i++) { Thread t = bobset[i]; #region url x.WriteStartElement("url"); if (t.LastPage == 1) x.WriteElementString("loc", "http://www.dontstayin.com" + t.Url()); else x.WriteElementString("loc", "http://www.dontstayin.com" + t.Url("c", t.LastPage.ToString())); x.WriteElementString("lastmod", t.LastPost.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(t.LastPost); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Photos if (Request.QueryString[0].Equals("photo")) { Query q = new Query(); q.QueryCondition = Photo.EnabledQueryCondition; q.Columns = new ColumnSet(Photo.Columns.K, Photo.Columns.UrlFragment, Photo.Columns.EventK, Photo.Columns.ArticleK); q.OrderBy = new OrderBy(Photo.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 50000; PhotoSet bobset = new PhotoSet(q); for (int i = 0; i < bobset.Count; i++) { Photo p = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + p.Url()); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Usrs if (Request.QueryString[0].Equals("usr")) { Query q = new Query(); q.QueryCondition = new And( new Q(Usr.Columns.IsSkeleton, false), new Q(Usr.Columns.IsEmailVerified, true), new Or( new Q(Usr.Columns.Pic, QueryOperator.NotEqualTo, Guid.Empty), new Q(Usr.Columns.CommentCount, QueryOperator.NotEqualTo, 0) ) ); q.Columns = new ColumnSet(Usr.Columns.NickName); q.OrderBy = new OrderBy(Usr.Columns.DateTimeLastPageRequest, OrderBy.OrderDirection.Descending); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 50000; UsrSet bobset = new UsrSet(q); for (int i = 0; i < bobset.Count; i++) { Usr u = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + u.Url()); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Articles if (Request.QueryString[0].Equals("article")) { Query q = new Query(); q.QueryCondition = Article.EnabledQueryCondition; q.Columns = new ColumnSet(Article.Columns.UrlFragment, Article.Columns.ParentObjectK, Article.Columns.ParentObjectType, Article.Columns.K); q.OrderBy = new OrderBy(Article.Columns.EnabledDateTime, OrderBy.OrderDirection.Descending); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 50000; ArticleSet bobset = new ArticleSet(q); for (int i = 0; i < bobset.Count; i++) { Article a = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + a.Url()); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Competitions if (Request.QueryString[0].Equals("comp")) { Query q = new Query(); q.QueryCondition = new Q(Comp.Columns.Status, Comp.StatusEnum.Enabled); q.Columns = new ColumnSet(Comp.Columns.K); q.OrderBy = new OrderBy(Comp.Columns.DateTimeClose, OrderBy.OrderDirection.Descending); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 50000; CompSet bobset = new CompSet(q); for (int i = 0; i < bobset.Count; i++) { Comp c = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + c.Url()); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Brands if (Request.QueryString[0].Equals("brand")) { Query q = new Query(); q.OrderBy = new OrderBy(Brand.Columns.LastPost, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Brand.LinkColumns, Brand.Columns.LastPost); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; BrandSet bobset = new BrandSet(q); for (int i = 0; i < bobset.Count; i++) { Brand b = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + b.Url()); if (b.LastPost > DateTime.MinValue) { x.WriteElementString("lastmod", b.LastPost.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(b.LastPost); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); } else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion #region Groups if (Request.QueryString[0].Equals("group")) { Query q = new Query(); q.QueryCondition = new And( new Q(Group.Columns.BrandK, 0), new Q(Group.Columns.PrivateGroupPage, false)); q.OrderBy = new OrderBy(Group.Columns.LastPost, OrderBy.OrderDirection.Descending); q.Columns = new ColumnSet(Group.Columns.BrandK, Group.Columns.UrlName, Group.Columns.LastPost); if (Vars.DevEnv) q.TopRecords = 10; else q.TopRecords = 40000; GroupSet bobset = new GroupSet(q); for (int i = 0; i < bobset.Count; i++) { Group g = bobset[i]; #region url x.WriteStartElement("url"); x.WriteElementString("loc", "http://www.dontstayin.com" + g.Url()); if (g.LastPost.HasValue && g.LastPost > DateTime.MinValue) { x.WriteElementString("lastmod", g.LastPost.Value.ToString(dateFormat)); TimeSpan ts = DateTime.Now.Subtract(g.LastPost.Value); if (ts.TotalHours < 24) x.WriteElementString("changefreq", "hourly"); else if (ts.TotalDays < 7) x.WriteElementString("changefreq", "daily"); else if (ts.TotalDays < 30) x.WriteElementString("changefreq", "weekly"); else x.WriteElementString("changefreq", "monthly"); } else x.WriteElementString("changefreq", "monthly"); x.WriteEndElement(); //url #endregion bobset.Kill(i); } } #endregion x.WriteEndElement(); //urlset #endregion } x.Flush(); x.Close(); Response.End(); }
public void BindNewsDataGrid() { int perPage = 10; Query q = new Query(); q.Paging.RecordsPerPage = perPage; q.Paging.RequestedPage = NewsThreadsPage; q.Columns = new ColumnSet( Thread.Columns.K, Thread.Columns.Private, Thread.Columns.GroupPrivate, Thread.Columns.PrivateGroup, Thread.Columns.Subject, Thread.Columns.LastPost, Thread.Columns.TotalComments, Thread.Columns.TotalParticipants, Thread.Columns.TotalWatching, Thread.Columns.IsNews, Thread.Columns.IsReview, Thread.Columns.ParentObjectType, Thread.Columns.ParentObjectK, Thread.Columns.GroupK, Thread.Columns.UsrK, new JoinedColumnSet(Thread.Columns.UsrK, Usr.LinkColumns), Thread.Columns.LastPostUsrK, new JoinedColumnSet(Thread.Columns.LastPostUsrK, Usr.LinkColumns) ); q.OrderBy = new OrderBy(Thread.Columns.DateTime); q.TableElement = new TableElement(TablesEnum.Thread); q.TableElement = new Bobs.Join( q.TableElement, new TableElement(new Column(Thread.Columns.UsrK, Usr.Columns.K)), QueryJoinType.Left, Thread.Columns.UsrK, new Column(Thread.Columns.UsrK, Usr.Columns.K)); q.TableElement = new Bobs.Join( q.TableElement, new TableElement(new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K)), QueryJoinType.Left, Thread.Columns.LastPostUsrK, new Column(Thread.Columns.LastPostUsrK, Usr.Columns.K)); q.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K)); ThreadSet ts = new ThreadSet(q); if (ts.Count > 0) { NewsThreadsPage = ts.Paging.ReturnedPage; NewsDataGrid.DataSource = ts; NewsDataGrid.DataBind(); Query qTot = new Query(); qTot.QueryCondition = new And(new Q(Thread.Columns.NewsStatus, Thread.NewsStatusEnum.Recommended), new Q(Thread.Columns.GroupK, CurrentGroup.K)); qTot.ReturnCountOnly = true; ThreadSet tCount = new ThreadSet(qTot); int endLinks = 4; int midLinks = 4; PageLinkWriter p = new PageLinkWriter(); p.SetLastPage(perPage, tCount.Count); p.CurrentPageForLinks = NewsThreadsPage; p.Zones.Add(new PageLinkWriter.Zone(1, endLinks)); p.Zones.Add(new PageLinkWriter.Zone(p.LastPage - endLinks + 1, p.LastPage)); p.Zones.Add(new PageLinkWriter.Zone(NewsThreadsPage - midLinks, NewsThreadsPage + midLinks)); StringBuilder sb = new StringBuilder(); sb.Append("Pages: "); p.Build(new PageLinkWriter.LinkWriter(NewsPageLinkWriter), new PageLinkWriter.SeperatorWriter(NewsPageSeperatorWriter), sb); NewsPageP.Controls.Clear(); if (p.LastPage > 1) NewsPageP.Controls.Add(new LiteralControl(sb.ToString())); else NewsPageP.Visible = false; } else { NewsDataGrid.Visible = false; NewsPageP.InnerHtml = "<small>No news suggestions</small>"; } }
public void DeleteAll(Transaction transaction) { if (!this.Bob.DbRecordExists) return; //Events EventSet es = new EventSet(new Query(new Q(Event.Columns.VenueK,this.K))); foreach(Event e in es) e.DeleteAll(transaction); Delete CommentAlertDelete = new Delete( TablesEnum.CommentAlert, new And( new Q(CommentAlert.Columns.ParentObjectK,this.K), new Q(CommentAlert.Columns.ParentObjectType,Model.Entities.ObjectType.Venue) ) ); CommentAlertDelete.Run(transaction); //Threads ThreadSet ts = new ThreadSet( new Query( new And( new Q(Thread.Columns.ParentObjectType,Model.Entities.ObjectType.Venue), new Q(Thread.Columns.ParentObjectK,this.K) ) ) ); foreach (Thread t in ts) t.DeleteAll(transaction); //Articles ArticleSet ars = new ArticleSet(new Query(new Q(Article.Columns.VenueK, this.K))); foreach (Article a in ars) a.DeleteAll(transaction); Guid oldPic = this.HasPic ? this.Pic : Guid.Empty; int oldPicMiscK = this.PicMisc != null ? this.PicMiscK : 0; this.Delete(transaction); if (oldPic != Guid.Empty) Storage.RemoveFromStore(Storage.Stores.Pix, oldPic, "jpg"); if (oldPicMiscK > 0) { Misc m = new Misc(oldPicMiscK); m.DeleteAll(transaction); } this.Place.UpdateTotalEvents(transaction); }
void BindBoards() { if (HotTopicsCountry == null) { HotTopicsHomeCountryLink.InnerText = HotTopicsHomeCountryLink.InnerText.Replace("???", Country.Current.FriendlyName); HotTopicsHomeCountryLink.HRef = Country.Current.UrlHotTopics(); HotTopicsCountryPanel.Visible = false; HotTopicsWorldwidePanel.Visible = true; SetPageTitle("Hot forums worldwide"); } else { HotTopicsCountryLink.InnerText = HotTopicsCountry.FriendlyName; HotTopicsCountryLink.HRef = HotTopicsCountry.Url(); HotTopicsCountryPanel.Visible = true; HotTopicsWorldwidePanel.Visible = false; SetPageTitle("Hot forums in " + HotTopicsCountry.FriendlyName); } Q HotTopicsCountryPlaceFilter = new Q(true); Q HotTopicsCountryThreadFilter = new Q(true); if (HotTopicsCountry != null) { HotTopicsCountryPlaceFilter = new Q(Place.Columns.CountryK, HotTopicsCountry.K); HotTopicsCountryThreadFilter = new Q(Thread.Columns.CountryK, HotTopicsCountry.K); } Query qPlace = new Query(); qPlace.TopRecords = 20; qPlace.QueryCondition = new And( new Q(Place.Columns.TotalComments, QueryOperator.GreaterThan, 0), HotTopicsCountryPlaceFilter ); qPlace.OrderBy = new OrderBy("(TotalComments - (Population/12.0)) DESC"); PlaceSet ts = new PlaceSet(qPlace); if (ts.Count > 0) { BoardPlaceDataGrid.DataSource = ts; BoardPlaceDataGrid.DataBind(); } else BoardPlacePanel.Visible = false; Query qEvent = new Query(); qEvent.TopRecords = 20; qEvent.TableElement = Event.PlaceAllJoin; qEvent.QueryCondition = new And( new Q(Event.Columns.TotalComments, QueryOperator.GreaterThan, 0), HotTopicsCountryPlaceFilter ); qEvent.OrderBy = new OrderBy("(Event.TotalComments - (CASE SIGN(DATEDIFF(day, Event.DateTime, GetDate())*2) WHEN 1 THEN DATEDIFF(day, Event.DateTime, GetDate())*2 WHEN 0 THEN 0 ELSE 0 END)) DESC"); EventSet es = new EventSet(qEvent); if (es.Count > 0) { BoardEventDataGrid.DataSource = es; BoardEventDataGrid.DataBind(); } else BoardEventPanel.Visible = false; Query qThread = new Query(); qThread.TopRecords = 20; qThread.QueryCondition = new And( new Q(Thread.Columns.TotalComments, QueryOperator.GreaterThan, 2), new Q(Thread.Columns.Enabled, true), new Q(Thread.Columns.Private, false), new Q(Thread.Columns.GroupPrivate, false), new Q(Thread.Columns.PrivateGroup, false), HotTopicsCountryThreadFilter, new Q(Thread.Columns.HideFromHighlights, false) ); qThread.OrderBy = Thread.HotTopicsOrderBy; ThreadSet threadSet = new ThreadSet(qThread); if (threadSet.Count > 0) { BoardThreadDataGrid.DataSource = threadSet; BoardThreadDataGrid.DataBind(); } else BoardThreadPanel.Visible = false; }
public void DeleteAll(Transaction transaction) { if (!this.Bob.DbRecordExists) return; //GroupUsrs Delete GroupUsrDelete = new Delete( TablesEnum.GroupUsr, new Q(GroupUsr.Columns.GroupK, this.K) ); GroupUsrDelete.Run(transaction); //GroupUsrs Delete GroupPhotoDelete = new Delete( TablesEnum.GroupPhoto, new Q(GroupPhoto.Columns.GroupK, this.K) ); GroupPhotoDelete.Run(transaction); //GroupEvents Delete GroupEventDelete = new Delete( TablesEnum.GroupEvent, new Q(GroupEvent.Columns.GroupK, this.K) ); GroupEventDelete.Run(transaction); ThreadSet ts = new ThreadSet(new Query(new Q(Thread.Columns.GroupK,this.K))); foreach (Thread t in ts) t.DeleteAll(transaction); Guid oldPic = this.HasPic ? this.Pic : Guid.Empty; int oldPicMiscK = this.PicMisc != null ? this.PicMiscK : 0; this.Delete(transaction); if (oldPic != Guid.Empty) Storage.RemoveFromStore(Storage.Stores.Pix, oldPic, "jpg"); if (oldPicMiscK > 0) { Misc m = new Misc(oldPicMiscK); m.DeleteAll(transaction); } }