Ejemplo n.º 1
0
		public static bool EmailStyledTicket(IStyledEventHolder styledObject, Ticket ticket)
		{
			try
			{
				if (ticket.K == 0)
					throw new Exception("Ticket not saved. K=0");

				System.Net.Mail.SmtpClient c = new System.Net.Mail.SmtpClient();
				c.Host = Common.Properties.GetDefaultSmtpServer();

				System.Net.Mail.MailMessage m = new System.Net.Mail.MailMessage();
				string cancelledText = ticket.Cancelled ? "Cancelled " : "";

				m.Subject = cancelledText + "Ticket for " + Cambro.Misc.Utility.Snip(ticket.Event.Name, 40) + " on " + Utilities.DateToString(ticket.Event.DateTime);
				m.Body = cancelledText + "Ticket for " + ticket.Event.FriendlyName;
				if (!ticket.Cancelled)
				{
					m.Body += "\nThank you for buying " + (ticket.Quantity > 1 ? "tickets" : "a ticket") +
								"\n" + (ticket.Quantity > 1 ? Ticket.ETICKET_CARD_REMINDER_PLURAL : Ticket.ETICKET_CARD_REMINDER_SINGULAR) + "." +
								(ticket.Code.Length > 0 ? "\n" + Ticket.ETICKET_CODE_REMINDER_SINGULAR + "." : "") +
								"\n" + Ticket.ETICKET_CARD_REMINDER_NOT_LET_YOU_IN + " The card you paid with ends with the digits \""
								+ ticket.CardNumberEnd + "\".\nMake sure you take this card with you!";
				}
				else
				{
					m.Body += "\nYou recently bought " + (ticket.Quantity > 1 ? "tickets" : "a ticket") + ". Your " + (ticket.Quantity > 1 ? "tickets have" : "ticket has")
								+ " been cancelled and your card has been refunded.";
				}
				m.Body += "\n\nYour " + cancelledText.ToLower() + "ticket details";
				m.Body += "\nTicket ref: " + ticket.K.ToString() + "";
				m.Body += "\nTicket" + (ticket.Quantity > 1 ? "s" : "") + ": " + ticket.Quantity.ToString() + " x " + ticket.TicketRun.Price.ToString("c") + (ticket.Cancelled ? "" : " + booking fee (" + ticket.TicketRun.BookingFee.ToString("c") + ")");
				if (ticket.Code.Length > 0)
					m.Body += "\nTicket CODE: \"" + ticket.Code.ToString() + "\"";
				if (ticket.TicketRun.Name.Length > 0)
					m.Body += "\nTicket type: " + ticket.TicketRun.Name;
				if (ticket.TicketRun.Description.Length > 0)
					m.Body += "\nDescription: " + ticket.TicketRun.Description;
				m.Body += "\nYou can find details of all your tickets on http://" + Vars.DomainName + "/" + styledObject.UrlStyledApp("mytickets");

				m.Body += "\n\nTickets powered by Development Hell Limited\nwww.dontstayin.com";
			
				m.Body = m.Body.Replace("\n", "\n\r");

				m.From = new System.Net.Mail.MailAddress(Vars.AdminReplyAddress);
				

				m.IsBodyHtml = false;

				if (Vars.DevEnv)
				{
					m.Subject = m.Subject + " (to:" + m.To + ")";
					m.Subject += " (" + DateTime.Now.ToString() + ")";
					m.To.Add(Vars.EMAIL_ADDRESS_DEV_TEAM);
					m.To.Add("*****@*****.**");
					m.From = new System.Net.Mail.MailAddress("*****@*****.**");
					c.Send(m);
				}
				else if (Vars.IsBeta)
				{
					m.Subject = "BETA " + m.Subject;
					m.To.Add(new MailAddress(ticket.BuyerUsr.Email));
					m.Bcc.Add(Vars.EMAIL_ADDRESS_TICKETS);
					c.Send(m);
				}
				else
				{
					if (ticket.BuyerUsr.Email.EndsWith("@gmail.com") || ticket.BuyerUsr.Email.EndsWith("@dontstayin.com"))
						m.Subject += " (" + DateTime.Now.ToString() + ")";
					m.To.Add(new MailAddress(ticket.BuyerUsr.Email));
					m.Bcc.Add(Vars.EMAIL_ADDRESS_TICKETS);
					c.Send(m);
				}

				Log.Increment(Log.Items.EmailsSent);				
			}
			catch (Exception ex)
			{
				EmailException(ex, "Occurred in Utilities.EmailStyledTicket(ticket)", ticket);

				return false;
			}
			return true;
		}
Ejemplo n.º 2
0
		public EventSet EventsWithTickets(IStyledEventHolder styledObject, Utilities.DateRange dateRange, int pageNumber, int recordsPerPage)
		{
			Query query = EventsWithTicketsQuery(this, dateRange, pageNumber, recordsPerPage);
			if (styledObject is Brand)
			{
				query.TableElement = new Join(query.TableElement, new TableElement(TablesEnum.EventBrand), QueryJoinType.Inner, Event.Columns.K, EventBrand.Columns.EventK);
				query.QueryCondition = new And(query.QueryCondition,
											   new Q(EventBrand.Columns.BrandK, styledObject.K));
			}
			else if (styledObject is Venue)
			{
				query.QueryCondition = new And(query.QueryCondition,
											   new Q(Event.Columns.VenueK, styledObject.K));
			}
			return new EventSet(query);
		}