Ejemplo n.º 1
0
		public void Refund(int actionUsrK)
		{
			// get latest hits stats
			Query q = new Query();
			q.Columns = new ColumnSet(BannerStat.Columns.BannerK);
			string totalHitsExtraSelectElementName = "TotalHits";
			q.ExtraSelectElements.Add(totalHitsExtraSelectElementName, "SUM([Hits])");
			q.QueryCondition = new Q(BannerStat.Columns.BannerK, this.K);
			q.GroupBy = new GroupBy(BannerStat.Columns.BannerK);

			int totalImpressionsSoFar;
			BannerStatSet bss = new BannerStatSet(q);
			if (bss.Count == 0)
			{
				totalImpressionsSoFar = 0;
			}
			else
			{
				totalImpressionsSoFar = (int)bss[0].ExtraSelectElements[totalHitsExtraSelectElementName];
			}

			Refund(this.TotalRequiredImpressions - totalImpressionsSoFar, actionUsrK, 0);
		}
Ejemplo n.º 2
0
		public static List<BannerTotalStat> GetBannerStatTotalsBetweenDates(int[] bannerKs, DateTime dateTimeGreaterThanOrEqualTo, DateTime dateDimeLessThan)
		{
			Query q = new Query();
			q.Columns = new ColumnSet(Columns.BannerK);
			q.ExtraSelectElements.Add("TotalHits", "sum(isnull(" + GetColumnName(Columns.Hits) + ", 0))");
			q.ExtraSelectElements.Add("TotalClicks", "sum(isnull(" + GetColumnName(Columns.Clicks) + ", 0))");
			q.ExtraSelectElements.Add("TotalUniqueVisitors", "sum(isnull(UniqueVisitors, 0))");			

			q.QueryCondition = new And(
									new Q(Columns.BannerK, bannerKs),
									new Q(BannerStat.Columns.Date, QueryOperator.GreaterThanOrEqualTo, dateTimeGreaterThanOrEqualTo),
									new Q(BannerStat.Columns.Date, QueryOperator.LessThan, dateDimeLessThan));
			q.GroupBy = new GroupBy(Columns.BannerK);
			Dictionary<int, BannerStat> existingBannerStats = new Dictionary<int, BannerStat>();
			BannerStatSet set = new BannerStatSet(q);
			foreach (BannerStat stat in set)
			{
				existingBannerStats[stat.BannerK] = stat;
			}
			List<BannerTotalStat> results = new List<BannerTotalStat>();
			foreach (int bannerK in bannerKs)
			{
				if (existingBannerStats.ContainsKey(bannerK))
				{
					BannerStat stat = existingBannerStats[bannerK];
					results.Add(new BannerTotalStat() { 
									BannerK = bannerK, 
									Clicks = (int)stat.ExtraSelectElements["TotalClicks"], 
									Hits = (int) stat.ExtraSelectElements["TotalHits"],
									UniqueVisitors = (int)stat.ExtraSelectElements["TotalUniqueVisitors"],
								});
				}
				else
				{
					results.Add(new BannerTotalStat() { BannerK = bannerK, Clicks = 0, Hits = 0, UniqueVisitors= 0 });
				}
			}
			return results;
		}
Ejemplo n.º 3
0
		void EditBuildTable(bool InitialisePaymentControl)
		{
			#region IntroEventOptionsAnchor
			if (CurrentBanner.EventK > 0 && CurrentBanner.Event != null)
			{
				IntroEventOptionsSpan.Visible = true;
				IntroEventOptionsAnchor.HRef = CurrentBanner.Promoter.UrlEventOptions(CurrentBanner.Event);
			}
			else
				IntroEventOptionsSpan.Visible = false;
			#endregion

			#region Payment cell
			this.AdminPriceEditP.Visible = false;
			if (CurrentBanner.StatusBooked == true)
			{
				EditPaymentTick.Src = "~/gfx/icon-tick-up.png";
				Payment.Visible = false;
				//EditPaymentButton.Visible=false; //Remove!!
				EditPaymentLabel.Text = "Received with thanks!";
			}
			else
			{
				this.AdminPriceEditP.Visible = Usr.Current.IsAdmin;
				if (CurrentBanner.CheckDates())
				{
					//Removed by DaveB 19/08 - to be updated when the payment control supportes IO items and buying with credits properly...

                    //string price = CurrentBanner.Price.ToString("0.00");

                    if (InitialisePaymentControl)
                    {
						Payment.Reset();
                        Payment.CampaignCredits.AddRange(CurrentBanner.ToCampaignCredits(Usr.Current, CurrentPromoter.K, true));
						//Payment.ApplyBulkCreditDiscount = !CurrentBanner.IsPriceFixed;
   
                        Payment.PromoterK = CurrentBanner.PromoterK;
                        Payment.Initialize();
                    }
					ContainerPage.SslPage = true;
				}
				else
				{
					Payment.Visible = false;
					//EditPaymentLabel.ForeColor=Color.Red;
					EditPaymentLabel.Font.Bold = true;
					EditPaymentLabel.Text = "You can't book your banner with invalid dates selected. Click \"Change...\" next to the dates to resolve this.";
					AdminPriceEditP.Visible = false;
				}
			}
			#endregion

			#region EditPreviewPanel
			if (CurrentBanner.Misc != null || CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.AutoEventBanner) || CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.CustomAutoEventBanner))
			{
				EditPreviewPanel.Visible = true;
				Spotted.Controls.Banners.GenericBanner b = (Spotted.Controls.Banners.GenericBanner)this.LoadControl("/Controls/Banners/GenericBanner.ascx");
				b.CurrentBanner = CurrentBanner;
				b.PlaceTargetted = true;
				b.MusicTargetted = true;
				b.Bind();
				EditPreviewDiv.Style["width"] = ((int)(CurrentBanner.Width + 2)).ToString() + "px";
				EditPreviewDiv.Style["height"] = ((int)(CurrentBanner.Height + 2)).ToString() + "px";
				EditPreviewDiv.Controls.Clear();
				EditPreviewDiv.Controls.Add(b);

				if (CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.AutoEventBanner) ||
					CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.CustomAutoEventBanner))
				{
					//	EditPreviewP.Style["background-color"]="#000000";
					//	EditPreviewP.Style["padding"]="1px;";
					//EditPreviewDiv.Style["border-left"] = "1px solid #000000";
					//EditPreviewDiv.Style["border-top"] = "1px solid #000000";
					//EditPreviewDiv.Style["border-bottom"] = "1px solid #000000";

				}
				if (CurrentBanner.Position.Equals(Banner.Positions.Leaderboard))
					EditPreviewOuterDiv.Style["padding-bottom"] = "35px";
				else
					EditPreviewOuterDiv.Style.Remove("padding-bottom");
			}
			else
				EditPreviewPanel.Visible = false;
			#endregion
			#region EditNewPreviewPanel
			if (CurrentBanner.NewMisc != null)
			{
				EditNewPreviewPanel.Visible = true;
				Spotted.Controls.Banners.GenericBanner b = (Spotted.Controls.Banners.GenericBanner)this.LoadControl("/Controls/Banners/GenericBanner.ascx");
				b.CurrentBanner = CurrentBanner;
				b.PlaceTargetted = true;
				b.MusicTargetted = true;
				b.UseNewMisc = true;
				b.Bind();
				EditNewPreviewDiv.Style["width"] = ((int)(CurrentBanner.Width + 2)).ToString() + "px";
				EditNewPreviewDiv.Style["height"] = ((int)(CurrentBanner.Height + 2)).ToString() + "px";
				EditNewPreviewDiv.Controls.Clear();
				EditNewPreviewDiv.Controls.Add(b);

				if (CurrentBanner.Position.Equals(Banner.Positions.Leaderboard))
					EditNewPreviewOuterDiv.Style["padding-bottom"] = "35px";
				else
					EditNewPreviewOuterDiv.Style.Remove("padding-bottom");
			}
			else
				EditNewPreviewPanel.Visible = false;
			#endregion
			#region BannerStatPanel
			if (CurrentBanner.TotalHits > 0 || CurrentBanner.TotalClicks>0)
			{
				BannerStatPanel.Visible = true;
				EditTotalHitsLabel.Text = CurrentBanner.TotalHits.ToString("#,##0");
				EditTotalClicksLabel.Text = CurrentBanner.TotalClicks.ToString("#,##0");
				EditTotalClicksPercentageLabel.Text = ((double)CurrentBanner.TotalClicks / (double)CurrentBanner.TotalHits).ToString("0.00%");
				Query q = new Query();
				q.NoLock = true;
				q.QueryCondition = new And(
					new Or(
						new Q(BannerStat.Columns.Clicks, QueryOperator.GreaterThan, 0),
						new And(
							new Q(BannerStat.Columns.Date, QueryOperator.GreaterThanOrEqualTo, CurrentBanner.FirstDay), 
							new Q(BannerStat.Columns.Date, QueryOperator.LessThanOrEqualTo, CurrentBanner.LastDay)
						)
					),
					new Q(BannerStat.Columns.BannerK, CurrentBanner.K));
				q.OrderBy = new OrderBy(BannerStat.Columns.Date, OrderBy.OrderDirection.Descending);
				BannerStatSet bss = new BannerStatSet(q);
				BannerStatDataGrid.DataSource = bss;
				BannerStatDataGrid.DataBind();
			}
			else
				BannerStatPanel.Visible = false;
			#endregion

			#region Info cells
			EditNameCell.InnerText = CurrentBanner.Name;
			EditKCell.InnerText = "banner-" + CurrentBanner.K;
			EditPositionCell.InnerText = CurrentBanner.PositionString(true);
			EditArtworkCell.InnerText = CurrentBanner.ArtworkString(true);
			EditLinkTargetCell.InnerHtml = CurrentBanner.LinkTargetHtml;
			EditDatesCell.InnerHtml = CurrentBanner.FirstDay.ToString("ddd dd MMM") + (CurrentBanner.FirstDay.Year != DateTime.Today.Year ? " " + CurrentBanner.FirstDay.Year : "") + " - " + CurrentBanner.LastDay.ToString("ddd dd MMM") + (CurrentBanner.LastDay.Year != DateTime.Today.Year ? " " + CurrentBanner.LastDay.Year : "");
			//EditExposureCell.InnerText = CurrentBanner.Weight.ToString("0.#") + " slot" + (CurrentBanner.Weight == 1.0 ? "" : "s");
			EditExposureCell.InnerText = CurrentBanner.ExposureDescription;
			#endregion

			#region IsPriceLocked?
			EditPositionChange.Visible = !CurrentBanner.IsPriceLocked;
			EditDatesChange.Visible = !CurrentBanner.IsPriceLocked;
			EditExposureChange.Visible = !CurrentBanner.IsPriceLocked;
			EditPositionLock.Visible = CurrentBanner.IsPriceLocked;
			EditDatesLock.Visible = CurrentBanner.IsPriceLocked;
			EditExposureLock.Visible = CurrentBanner.IsPriceLocked;
			EditArtworkLock.Visible = false;
			EditArtworkChange.Visible = true;
			EditArtworkCustomise.Visible = true;
			if (CurrentBanner.IsPriceLocked)
			{
				if (CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.AutoEventBanner) || CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.CustomAutoEventBanner))
				{
					EditArtworkLock.Visible = false;
					EditArtworkChange.Visible = false;
					EditArtworkCustomise.Visible = true;
				}
				else
				{
					EditArtworkLock.Visible = true;
					EditArtworkChange.Visible = false;
					EditArtworkCustomise.Visible = false;
				}
			}
			else
			{
				if (CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.AutoEventBanner) || CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.CustomAutoEventBanner))
					EditArtworkCustomise.Visible = true;
				else
					EditArtworkCustomise.Visible = false;
			}
			#endregion

			#region CheckDates
			if (CurrentBanner.CheckDates())
				EditDatesTick.Src = "~/gfx/icon-tick-up.png";
			else
				EditDatesTick.Src = "~/gfx/icon-cross-up.png";
			#endregion
			#region CheckExposure
			//if (CurrentBanner.CheckSlots())
				EditExposureTick.Src = "~/gfx/icon-tick-up.png";
			//else
			//	EditExposureTick.Src = "~/gfx/icon-cross-up.png";
			#endregion

			#region MusicTypes
			if (CurrentBanner.MusicTypesChosen.Count == 0)
				EditMusicCell.InnerText = "All music types";
			else
			{
				EditMusicCell.InnerHtml = "";
				foreach (MusicType mt in CurrentBanner.MusicTypesChosen)
					EditMusicCell.InnerHtml += (EditMusicCell.InnerHtml.Length > 0 ? "<br>" : "") + mt.Name;
			}
			#endregion
			#region Places
			if (CurrentBanner.Places.Count == 0)
				EditPlacesCell.InnerText = "All towns";
			else
			{
				EditPlacesCell.InnerHtml = "";
				foreach (Place p in CurrentBanner.Places)
					EditPlacesCell.InnerHtml += (EditPlacesCell.InnerHtml.Length > 0 ? "<br>" : "") + p.FriendlyName;
			}
			#endregion

			#region Price
			EditPaymentCell.InnerText = CurrentBanner.PriceString;
			if (!this.IsPostBack)
			{
				if (CurrentBanner.IsPriceFixed)
					FixPriceTextBox.Text = CurrentBanner.FixedDiscount.ToString("P2");
				else
					FixPriceTextBox.Text = "";
			}
			#endregion

			#region File upload
			EditFileBody.Visible = !(CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.AutoEventBanner) || CurrentBanner.DisplayType.Equals(Banner.DisplayTypes.CustomAutoEventBanner));
			if (CurrentBanner.Misc != null)
			{
				EditFileTick.Src = "~/gfx/icon-tick-up.png";
				EditAssignedCell.InnerHtml = HttpUtility.HtmlEncode(CurrentBanner.Misc.Name) + "<br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.Misc.ViewUrl() + "\">View details</a><br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.Misc.Url() + "\" target=\"_blank\">Preview</a>";
			}
			else
				EditAssignedCell.InnerHtml = "&nbsp;";
			#endregion
			#region File waiting for check
			EditWaitingRow.Visible = CurrentBanner.NewMisc != null;
			if (CurrentBanner.NewMisc != null)
				EditWaitingCell.InnerHtml = HttpUtility.HtmlEncode(CurrentBanner.NewMisc.Name) + "<br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.NewMisc.ViewUrl() + "\">View details</a><br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.NewMisc.Url() + "\" target=\"_blank\">Preview</a>";
			else
				EditWaitingCell.InnerHtml = "&nbsp;";
			#endregion

			#region File waiting for check
			EditFailedRow.Visible = CurrentBanner.FailedMisc != null;
			if (CurrentBanner.FailedMisc != null)
			{
				EditFailedCell.InnerHtml = HttpUtility.HtmlEncode(CurrentBanner.FailedMisc.Name) + "<br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.FailedMisc.ViewUrl() + "\">View details</a><br>&nbsp;-&nbsp;<a href=\"" + CurrentBanner.FailedMisc.Url() + "\" target=\"_blank\">Preview</a>";
				if (CurrentBanner.NewMisc == null)
					EditFailedRow.Attributes["class"] = "dataGridAltItem";
				else
					EditFailedRow.Attributes.Remove("class");
			}
			else
				EditFailedCell.InnerHtml = "&nbsp;";
			#endregion

		}