Example #1
0
		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));

			}
		}
Example #3
0
		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();
		}
Example #4
0
		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();
		}