public void Report_Click(object o, System.EventArgs e) { if (Usr.Current.AbuseReportsOverturned > 10 && Usr.Current.AbuseReportsOverturnedFraction > 0.5) { DonePanel.Visible = true; ReportPanel.Visible = false; ReportP.InnerHtml = "You have " + Usr.Current.AbuseReportsOverturned + " abuse reports that have been overturned by our moderators. You can't report any more photos! <a href=\"" + CurrentPhoto.Url() + "\">Click here to go back to the photo</a>"; return; } if (Usr.Current.AbuseReportsPending > 10) { DonePanel.Visible = true; ReportPanel.Visible = false; ReportP.InnerHtml = "You have " + Usr.Current.AbuseReportsPending + " abuse reports that are being investigated by our moderators. You can't report any more photos until these have been resolved. <a href=\"" + CurrentPhoto.Url() + "\">Click here to go back to the photo</a>"; return; } Query q = new Query(); q.QueryCondition = new And( new Q(Abuse.Columns.ReportUsrK, Usr.Current.K), new Q(Abuse.Columns.ObjectType, Model.Entities.ObjectType.Photo), new Q(Abuse.Columns.ObjectK, CurrentPhoto.K) ); AbuseSet abs = new AbuseSet(q); if (abs.Count > 0) { DonePanel.Visible = true; ReportPanel.Visible = false; ReportP.InnerHtml = "You have already reported this photo. Please wait for a response from our moderators. <a href=\"" + CurrentPhoto.Url() + "\">Click here to go back to the photo</a>"; return; } Abuse a = new Abuse(); a.ReportUsrK = Usr.Current.K; a.AbuseUsrK = CurrentPhoto.UsrK; a.ObjectType = Model.Entities.ObjectType.Photo; a.ObjectK = CurrentPhoto.K; if (CurrentPhoto.EventK > 0) a.ObjectString = "Photo in " + CurrentPhoto.Event.FriendlyName; else if (CurrentPhoto.ArticleK > 0) a.ObjectString = "Photo in " + CurrentPhoto.Article.FriendlyName; a.ReportDescription = Cambro.Web.Helpers.CleanHtml(ReportMessageTextBox.Text); a.ReportDateTime = DateTime.Now; a.Status = Abuse.StatusEnum.New; a.Update(); Usr.Current.UpdateAbuseTrackers(); CurrentPhoto.Usr.UpdateAbuseTrackers(); Bobs.Global.UpdatePhotoAbuseReports(); DonePanel.Visible = true; ReportPanel.Visible = false; ReportP.InnerHtml = "Thanks for reporting this. Our moderators will investigate, and you will receive an email when it's resolved. <a href=\"" + CurrentPhoto.Url() + "\">Click here to go back to the photo</a>"; }
private void PanelNone_Load(object sender, System.EventArgs e) { if (Mode.Equals(Modes.None)) { ChangePanel(PanelNone); Query q = new Query(); q.QueryCondition = new And( new Q(Abuse.Columns.Status, Abuse.StatusEnum.New), new Q(Abuse.Columns.ObjectType, Model.Entities.ObjectType.Photo) ); q.OrderBy = new OrderBy(OrderBy.OrderDirection.Random); q.TopRecords = 1; AbuseSet abs = new AbuseSet(q); if (abs.Count > 0) Response.Redirect(UrlInfo.PageUrl("abusereport", "k", abs[0].K)); } }
public void UpdateAbuseTrackers() { #region AbuseReportsPending if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.ReportUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.New) ); AbuseSet abs = new AbuseSet(q); this.AbuseReportsPending = abs.Count; } #endregion #region AbuseReportsUseful if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.ReportUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.Done), new Or(new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.Abuse), new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.NoAbuse)) ); AbuseSet abs = new AbuseSet(q); this.AbuseReportsUseful = abs.Count; } #endregion #region AbuseReportsOverturned if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.ReportUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.Done), new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.Overturned) ); AbuseSet abs = new AbuseSet(q); this.AbuseReportsOverturned = abs.Count; } #endregion #region AbuseAccusationsPending if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.AbuseUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.New) ); AbuseSet abs = new AbuseSet(q); this.AbuseAccusationsPending = abs.Count; } #endregion #region AbuseAccusationsAbuse if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.AbuseUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.Done), new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.Abuse) ); AbuseSet abs = new AbuseSet(q); this.AbuseAccusationsAbuse = abs.Count; } #endregion #region AbuseAccusationsNoAbuse if (true) { Query q = new Query(); q.ReturnCountOnly = true; q.QueryCondition = new And( new Q(Abuse.Columns.AbuseUsrK, this.K), new Q(Abuse.Columns.Status, Abuse.StatusEnum.Done), new Or(new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.NoAbuse), new Q(Abuse.Columns.ResolveStatus, Abuse.ResolveStatusEnum.Overturned)) ); AbuseSet abs = new AbuseSet(q); this.AbuseAccusationsNoAbuse = abs.Count; } #endregion this.Update(); }
public static void UpdatePhotoAbuseReports() { Query q = new Query(); q.ReturnCountOnly=true; q.QueryCondition=new And( new Q(Abuse.Columns.ObjectType, Model.Entities.ObjectType.Photo), new Q(Abuse.Columns.Status,Abuse.StatusEnum.New) ); AbuseSet abs = new AbuseSet(q); Global g = new Global(Global.Records.PendingPhotoAbuseReports); g.ValueInt=abs.Count; g.Update(); }