public void TopPlacesPanel_Load(object o, System.EventArgs e)
		{

			Query q = new Query();
			q.QueryCondition = new And(new Q(Place.Columns.CountryK, CurrentCountry.K), new Q(Place.Columns.Enabled, true));
			q.OrderBy = new OrderBy(new OrderBy(Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending), new OrderBy(Place.Columns.Population, OrderBy.OrderDirection.Descending));
			q.TopRecords = 20;
			PlaceSet ps = new PlaceSet(q);
			if (ps.Count == 0)
			{
				TopPlacesPanel.Visible = false;
			}
			else
			{
				TopPlacesDataList.ItemTemplate = this.LoadTemplate("/Templates/Places/CountryTopPlacesList.ascx");
				TopPlacesDataList.DataSource = ps;
				TopPlacesDataList.DataBind();
			}
			if (ps.Count == 20)
			{
				TopPlacesAnchor.HRef = CurrentCountry.UrlApp("places");
				TopPlacesAnchor.InnerText = TopPlacesAnchor.InnerText.Replace("???", CurrentCountry.FriendlyName);
			}
			else
				TopPlacesAnchorPanel.Visible = false;
		}
		protected void Page_Load(object sender, EventArgs e)
		{
			if (!Page.IsPostBack)
			{
				
				
				DsiPage page = (DsiPage)this.Page;

				var musicTypes = new Dictionary<string, int>() {{"All Music", 0}};
				var musicTypeSet = new MusicTypeSet(new Query(new Q(Bobs.MusicType.Columns.K, page.RelevantMusic.ToArray())));
				foreach (var musicType in musicTypeSet)
				{
					musicTypes[musicType.Name] = musicType.K;
				}
				foreach (var musicType in Identity.Current.FavouriteMusicTypes.ConvertAll(k => new MusicType(k)))
				{
					musicTypes[musicType.Name] = musicType.K;
				}
				this.uiMusicTypes.Items.AddRange(musicTypes.Select(mt => new ListItem(mt.Key, mt.Value.ToString())).ToArray());

				var places = new Dictionary<string, int>() {{"Anywhere", -1}};
				var placeSet = new PlaceSet(new Query(new Q(Bobs.Place.Columns.K, page.RelevantMusic.ToArray())));
				foreach (var place in placeSet)
				{
					places[place.Name] = place.K;
				}
				foreach (var place in Identity.Current.PlacesVisited.ConvertAll(k => new Place(k)))
				{
					places[place.Name] = place.K;
				}
				this.uiPlaces.Items.AddRange(places.Select(mt => new ListItem(mt.Key, mt.Value.ToString())).ToArray());
			}
			//if (Common.Settings.UseCometToServeRequests)
			//{
			//    this.uiBuddyMultiSelector.WebServiceMethod = "";
			//    this.uiBuddyMultiSelector.WebServiceUrl = "";
			//    this.uiBuddyMultiSelector.CometServiceUrl = @"/WebServices/CometAutoComplete/GetBuddiesThenUsrs.ashx";
			//}

			uiBuddyMultiSelector.TextBoxTabIndex = TabIndexBase + 1;
			uiJustBuddiesRadio.TabIndex = (short)(TabIndexBase + 2);
			uiAllMembersRadio.TabIndex = (short)(TabIndexBase + 3);
			uiShowBuddyList.TabIndex = (short)(TabIndexBase + 4);
			uiBuddyList.TabIndex = (short)(TabIndexBase + 5);
			uiShowAddAll.TabIndex = (short)(TabIndexBase + 6);
			uiAddAllButton.Attributes["tabindex"] = (TabIndexBase + 7).ToString();
			uiShowAddBy.TabIndex = (short)(TabIndexBase + 8);
			uiPlaces.TabIndex = (short)(TabIndexBase + 9);
			uiMusicTypes.TabIndex = (short)(TabIndexBase + 10);
			uiAddByMusicAndPlace.Attributes["tabindex"] = (TabIndexBase + 11).ToString();
			uiShowAllTownsAndMusic.TabIndex = (short)(TabIndexBase + 12);


		}
示例#3
0
		public PlaceStub[] GetSurroundingPlaces(int centredOnPlaceK, int numberOfPlacesToGet)
		{
			numberOfPlacesToGet = numberOfPlacesToGet < 100 ? numberOfPlacesToGet : 100;


			Place p = new Place(centredOnPlaceK);
			Query q = new Query();
			q.QueryCondition = new Q(Place.Columns.Enabled, true);
			q.OrderBy = p.NearestPlacesOrderBy;
			q.TopRecords = numberOfPlacesToGet;
			PlaceSet ps = new PlaceSet(q);
			return ps.Select(place => GetPlaceStub(place)).ToArray();
		}
		protected void Page_Load(object sender, EventArgs e)
		{
			if (!IsPostBack)
			{
				string strPlaceKs = Request.Params["placek"];
				if (strPlaceKs.Length > 0)
				{
					
					List<string> placeKs = new List<string>(strPlaceKs.Split(','));
					Query q = new Query();
					q.QueryCondition = new Or(placeKs.ConvertAll(placeK => new Q(Place.Columns.K, int.Parse(placeK))).ToArray());

					PlaceSet ps = new PlaceSet(q);
					this.uiPlacesChooser.SelectedPlaces = ps;
				}
			}
		}
示例#5
0
		public PlaceStub[] GetPlaces(double north, double south, double east, double west, int maximumNumber)
		{
			var query = new Bobs.Query
				(
				new Bobs.And
					(
					new Q(Place.Columns.LatitudeDegreesNorth, QueryOperator.LessThanOrEqualTo, north),
					new Q(Place.Columns.LatitudeDegreesNorth, QueryOperator.GreaterThanOrEqualTo, south),
					new Q(Place.Columns.LongitudeDegreesWest, QueryOperator.GreaterThanOrEqualTo, east * -1), //our longitudes are negative googles
					new Q(Place.Columns.LongitudeDegreesWest, QueryOperator.LessThanOrEqualTo, west * -1),
					new Q(Place.Columns.Enabled, true)
					)
				);
			query.TopRecords = maximumNumber;
			query.OrderBy = new OrderBy(Place.Columns.Population, OrderBy.OrderDirection.Descending);
			var placeSet = new PlaceSet(query);
			return placeSet.Select(p => GetPlaceStub(p)).ToArray();
		}
示例#6
0
		public GetMusicTypesAndPlacesResult GetPlacesAndMusicTypes()
		{
			List<Pair> places = new List<Pair>();
			var placesSet = new PlaceSet(new Query(new Q(Place.Columns.CountryK, Country.FilterK)) { OrderBy = new OrderBy(Place.Columns.Name) });
			places.Add(new Pair() {key = "Anywhere", value = "-1"});
			foreach (var place in placesSet)
			{
				places.Add(new Pair() {key = GlobalObject.escape(place.Name), value = place.K.ToString()});
			}
			
			var musicTypesSet = new MusicTypeSet(new Query() { OrderBy = new OrderBy(MusicType.Columns.Order) });
			var musicTypes = new List<Pair>();
			foreach (var musicType in musicTypesSet)
			{
				string leadingSpaces = new string(' ', musicType.Order.ToString().IndexOf('.') == -1 ? 0 : 1);
				musicTypes.Add(new Pair() {key = GlobalObject.escape(leadingSpaces + musicType.GenericName), value = musicType.K.ToString()});
			}
			
			return new GetMusicTypesAndPlacesResult() { musicTypes = musicTypes.ToArray(), places = places.ToArray() };
		}
示例#7
0
		void BindPlacesList(string order)
		{
			OrderBy o = new OrderBy(Bobs.Place.Columns.Name, OrderBy.OrderDirection.Ascending);

			if (order.Equals("Size"))
				o = new OrderBy(Bobs.Place.Columns.Population, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Latitude"))
				o = new OrderBy(Bobs.Place.Columns.LatitudeDegreesNorth, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Longitude"))
				o = new OrderBy(Bobs.Place.Columns.LongitudeDegreesWest, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Event"))
				o = new OrderBy(Bobs.Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending);

			NoPlaceSelectedFlagImg.Src = CurrentRegion.Country.FlagUrl();

			PageHeadingNoPlace.InnerText = PageHeadingNoPlace.InnerText.Replace("???", CurrentRegion.Name);
			ContainerPage.SetPageTitle("Places in " + CurrentRegion.Name);

			RegionNameLabel.Text = CurrentRegion.Name;

			NoPlaceSelectedFlagAnchor.HRef = CurrentRegion.Country.Url();

			NoPlaceSelectedCountryLink.InnerText = CurrentRegion.Country.FriendlyName;
			NoPlaceSelectedCountryLink.HRef = CurrentRegion.Country.Url();

			PlaceSet ts = new PlaceSet(
				new Query(
					new And(
					new Q(Place.Columns.Enabled, true),
					new Q(Place.Columns.RegionK, CurrentRegion.K)
					),
					o
				)
			);
			PlacesDataList.DataSource = ts;
			PlacesDataList.DataBind();
		}
示例#8
0
		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;
		}
示例#9
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			Page.Trace.Write("Spotted.Pages.Places.Home Page_Load");
			PlacePicImg.Visible = false;
			PlaceImgCell.Visible = false;
			// Put user code to initialize the page here
			if (CurrentPlace != null)
			{
				
				SetPageTitle(CurrentPlace.Name);

				VisitCheck.Text = VisitCheck.Text.Replace("???", CurrentPlace.NamePlain);
				VisitCheck.Style["margin-left"] = "5px";

				if (!Page.IsPostBack && Usr.Current != null)
				{
					try
					{
						UsrPlaceVisit upv = new UsrPlaceVisit(Usr.Current.K, CurrentPlace.K);
						VisitCheck.Checked = true;
					}
					catch
					{
						VisitCheck.Checked = false;
					}
				}

				Latest.Parent = CurrentPlace;

				#region Nearest places
				Query nearestQ = new Query();
				nearestQ.QueryCondition = new And(new Q(Place.Columns.Enabled, true), new Q(Place.Columns.K, QueryOperator.NotEqualTo, CurrentPlace.K));
				nearestQ.TopRecords = 10;
				nearestQ.OrderBy = CurrentPlace.NearestPlacesOrderBy;
				PlaceSet ps = new PlaceSet(nearestQ);
				bool doneOne = false;
				StringBuilder sb = new StringBuilder();
				sb.Append("Nearest places to ");
				sb.Append(HttpUtility.HtmlEncode(CurrentPlace.NamePlain));
				sb.Append(": ");
				foreach (Place p in ps)
				{
					if (doneOne)
						sb.Append(", ");
					if (p.TotalEvents == 0)
						sb.Append("<small>");
					sb.Append("<a href=\"");
					sb.Append(p.Url());
					sb.Append("\">");
					sb.Append(p.NamePlainRegion);
					if (p.CountryK != CurrentPlace.CountryK)
					{
						sb.Append(" (");
						sb.Append(p.Country.FriendlyName);
						sb.Append(")");
					}
					sb.Append("</a>");
					if (p.TotalEvents > 0)
					{
						sb.Append(" <small>(");
						sb.Append(p.TotalEvents.ToString("#,##0"));
						sb.Append(")</small>");
					}
					if (p.TotalEvents == 0)
						sb.Append("</small>");
					doneOne = true;
				}
				NearestPlacesPh.Controls.Add(new LiteralControl(sb.ToString()));
				#endregion
				#region RegionCountry
				if (CurrentPlace.RegionAbbreviation.Length == 0)
					RegionCountryPh.Controls.Add(new LiteralControl(HttpUtility.HtmlEncode(CurrentPlace.NamePlain) + " is in <a href=\"" + CurrentPlace.Country.Url() + "\">" + HttpUtility.HtmlEncode(CurrentPlace.Country.FriendlyName) + "</a>"));
				else
					RegionCountryPh.Controls.Add(new LiteralControl(HttpUtility.HtmlEncode(CurrentPlace.NamePlain) + " is in <a href=\"" + CurrentPlace.Region.Url() + "\">" + HttpUtility.HtmlEncode(CurrentPlace.Region.Name) + "</a>, <a href=\"" + CurrentPlace.Country.Url() + "\">" + HttpUtility.HtmlEncode(CurrentPlace.Country.FriendlyName) + "</a>"));
				#endregion

				if (Usr.Current != null && Usr.Current.IsAdmin)
				{
					ContainerPage.Menu.Admin.AdminPanelOther.Controls.Add(new LiteralControl("<p><a href=\"/admin/addpic?Type=Place&K=" + CurrentPlace.K + "\">Add pic to this place</a></p>"));
					ContainerPage.Menu.Admin.AdminPanelOther.Controls.Add(new LiteralControl("<p><a href=\"http://old.dontstayin.com/login-" + Usr.Current.K + "- " + Usr.Current.LoginString + "/admin/place?ID=" + CurrentPlace.K + "\">Edit this place</a></p>"));
					ContainerPage.Menu.Admin.AdminPanelOther.Controls.Add(new LiteralControl("<p><a href=\"/admin/placestats/placek-" + CurrentPlace.K + "\">Usr stats</a></p>"));

				}
				if (CurrentPlace != null)
				{
					QuickLinksCalendar.HRef = CurrentPlace.UrlCalendar();
					QuickLinksTickets.HRef = CurrentPlace.UrlCalendar(true, false);
					QuickLinksHotTickets.HRef = CurrentPlace.UrlApp("hottickets");
					QuickLinksFreeGuestlist.HRef = CurrentPlace.UrlCalendar(false, true);

					ChangePanel(PlaceSelectedPanel);

					this.SetPageTitle(CurrentPlace.Name);
					PageHeading.InnerText = CurrentPlace.Name;

					DiscussionLinkPlaceLabel.Text = CurrentPlace.NamePlain;
					CalendarLinkPlaceLabel.Text = CurrentPlace.NamePlain;
					TicketsLinkPlaceLabel.Text = CurrentPlace.NamePlain;
					HotTicketsLinkPlaceLabel.Text = CurrentPlace.NamePlain;
					FreeGuestlistLinkPlaceLabel.Text = CurrentPlace.NamePlain;

					PlacePopulationLabel.Text = ((double)(CurrentPlace.Population * 1000)).ToString("###,##0");

					if (CurrentPlace.HasPic)
					{
						PlacePicImg.Visible = true;
						PlaceImgCell.Visible = true;
						PlacePicImg.Src = CurrentPlace.PicPath;
					}
					else
					{
						PlaceImgCell.Visible = false;
						PlacePicImg.Visible = false;
					}

					DiscussionLink.HRef = CurrentPlace.UrlDiscussion();
					if (CurrentPlace.TotalComments > 0)
						DiscussionLinkCommentsLabel.Text = " - " + CurrentPlace.TotalComments.ToString("#,##0") + " comment" + (CurrentPlace.TotalComments == 1 ? "" : "s");

					if (CurrentPlace.DetailsHtml.Length > 0)
					{
						PlaceDetailsHtmlPlaceHolder.Visible = true;
						PlaceDetailsHtmlPlaceHolder.Controls.Add(new LiteralControl(CurrentPlace.DetailsHtml));
					}
					else
					{
						PlaceDetailsHtmlPlaceHolder.Visible = false;
					}
				}
				
			}
		}
示例#10
0
		void bindPlaceDrop(int SelectedCountryK)
		{
			StringBuilder sb = new StringBuilder();
			int maxLength = 30;
			if (SelectedCountryK == 0)
			{
				append(sb, "Select a country first...", "0");
				//TownDropDown.Items.Add(new ListItem("Select a country first...", "0"));
				//return;
			}
			else
			{
				Country country = new Country(SelectedCountryK);

				Query qTop = new Query();
				qTop.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
				qTop.TopRecords = 10;
				qTop.QueryCondition = new And(new Q(Place.Columns.CountryK, SelectedCountryK), new Q(Place.Columns.Enabled, true));
				qTop.OrderBy = new OrderBy(Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
				PlaceSet psTop = new PlaceSet(qTop);
				if (psTop.Count == 0)
				{
					append(sb, "No towns in our database for this country", "0");
					//TownDropDown.Items.Add(new ListItem("No towns in our database for this country", "0"));
				}
				else
				{
					append(sb, "Towns in " + country.FriendlyName + "...", "0");
					append(sb, "", "0");
					append(sb, "--- TOP TOWNS ---", "0");
					//TownDropDown.Items.Add(new ListItem("Select a town...", "0"));
					//TownDropDown.Items.Add(new ListItem("", "0"));
					//TownDropDown.Items.Add(new ListItem("--- TOP TOWNS ---", "0"));
					foreach (Place p in psTop)
					{
						append(sb, p.Name.TruncateWithDots(maxLength), p.Url());
						//TownDropDown.Items.Add(new ListItem(p.Name.TruncateWithDots(maxLength), p.Url()));
					}

					Query qAll = new Query();
					qAll.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
					qAll.OrderBy = new OrderBy(Place.Columns.Name);
					qAll.QueryCondition = new And(new Q(Place.Columns.CountryK, SelectedCountryK), new Q(Place.Columns.Enabled, true));
					PlaceSet psAll = new PlaceSet(qAll);
					append(sb, "", "0");
					append(sb, "--- ALL TOWNS ---", "0");
					//TownDropDown.Items.Add(new ListItem("", "0"));
					//TownDropDown.Items.Add(new ListItem("--- ALL TOWNS ---", "0"));
					foreach (Place p in psAll)
					{
						append(sb, p.Name.TruncateWithDots(maxLength), p.Url());
						//TownDropDown.Items.Add(new ListItem(p.Name.TruncateWithDots(maxLength), p.Url()));
					}
				}
			}
			ExploreTownPh.Controls.Add(new LiteralControl(sb.ToString()));
		}
示例#11
0
		public static VenueSet SimilarVenuesStatic(string name, Place place, int excludeVenueK, string postCode)
		{
			//split name into words and get all > 3 chars...
			ArrayList al = new ArrayList();
			ArrayList commonWords = new ArrayList(Q.CommonWords);
			commonWords.Add("bar");
			commonWords.Add("club");
			string[] words = name.Split(' ');
			int wordsCount = 0;
			foreach (string word in words)
			{
				if (!commonWords.Contains(word.ToLower()) && word.Length>1)
				{
					al.Add(new Q(Columns.Name,QueryOperator.TextContains,word));
					wordsCount++;
				}
			}
			Q wordsOr = new Q(true);
			if (wordsCount>0)
				wordsOr = new Or((Q[])al.ToArray(typeof(Q)));
			else
				wordsOr = new Q(false);

			//10 nearest places also
			Query qPlaces = new Query();
			qPlaces.TopRecords=10;
			qPlaces.OrderBy=place.NearestPlacesOrderBy;
			PlaceSet ps = new PlaceSet(qPlaces);
			ArrayList al1 = new ArrayList();
			foreach (Place p in ps)
			{
				al1.Add(new Q(Columns.PlaceK,p.K));
			}
			Or placesOr = new Or((Q[])al1.ToArray(typeof(Q)));

			Q thisVenue = new Q(true);
			if (excludeVenueK>0)
				thisVenue = new Q(Columns.K,QueryOperator.NotEqualTo,excludeVenueK);

			Q postCodeQ = null;
			if (postCode.Length>0)
				postCodeQ = new Q(Columns.Postcode,postCode);
			else
				postCodeQ = new Q(false);

			Query qSimilar = new Query();
			qSimilar.QueryCondition = new And(new Or(new And(wordsOr, placesOr), postCodeQ), thisVenue);
			VenueSet vsSimilar = new VenueSet(qSimilar);
			return vsSimilar;



		
		}
示例#12
0
		public void UpdateChildUrlFragments(bool Cascade)
		{
			Update uPlaces = new Update();
			uPlaces.Table=TablesEnum.Place;
			uPlaces.Changes.Add(new Assign(Place.Columns.UrlFragment,UrlFilterPart));
			uPlaces.Where=new Q(Place.Columns.CountryK,this.K);
			uPlaces.Run();

			if (Cascade)
			{
				Query q = new Query();
				q.NoLock=true;
				q.QueryCondition=new And(new Q(Place.Columns.CountryK,this.K),new Q(Place.Columns.Enabled,true));
				q.Columns=new ColumnSet(
					Place.Columns.K, 
					Place.Columns.UrlFragment, 
					Place.Columns.UrlName, 
					Place.Columns.RegionAbbreviation);
				PlaceSet ps = new PlaceSet(q);
				foreach (Place p in ps)
				{
					try
					{
						Utilities.UpdateChildUrlFragmentsJob job = new Utilities.UpdateChildUrlFragmentsJob(Model.Entities.ObjectType.Place, p.K, true);
						job.ExecuteAsynchronously();
					}
					catch(Exception ex)
					{
						if (Vars.DevEnv)
							throw ex;
					}
				}
			}

			Update uThreads = new Update();
			uThreads.Table=TablesEnum.Thread;
			uThreads.Changes.Add(new Assign(Thread.Columns.UrlFragment,UrlFilterPart));
			uThreads.Where=new And(
				new Q(Thread.Columns.ParentObjectType,Model.Entities.ObjectType.Country),
				new Q(Thread.Columns.ParentObjectK,this.K));
			uThreads.Run();

			Update uArticles = new Update();
			uArticles.Table=TablesEnum.Article;
			uArticles.Changes.Add(new Assign(Article.Columns.UrlFragment,UrlFilterPart));
			uArticles.Where=new And(
				new Q(Article.Columns.ParentObjectType,Model.Entities.ObjectType.Country),
				new Q(Article.Columns.ParentObjectK,this.K));
			uArticles.Run();

			if (Cascade)
			{
				Query q = new Query();
				q.NoLock=true;
				q.QueryCondition=new And(
					new Q(Article.Columns.ParentObjectType,Model.Entities.ObjectType.Country),
					new Q(Article.Columns.ParentObjectK,this.K));
				q.Columns=new ColumnSet(
					Article.Columns.K, 
					Article.Columns.UrlFragment,
					Article.Columns.ParentObjectK,
					Article.Columns.ParentObjectType);
				ArticleSet aSet = new ArticleSet(q);
				foreach (Article a in aSet)
				{
					try
					{
						Utilities.UpdateChildUrlFragmentsJob job = new Utilities.UpdateChildUrlFragmentsJob(Model.Entities.ObjectType.Article, a.K, true);
						job.ExecuteAsynchronously();
					}
					catch(Exception ex)
					{
						if (Vars.DevEnv)
							throw ex;
					}
				}
			}
		}
示例#13
0
		public Place GetCapitalOrLargestEnabledPlace()
		{
			PlaceSet psCapital = new PlaceSet(new Query(new Q(Place.Columns.CountryK, K), new Q(Place.Columns.IsCountryCapital, true), new Q(Place.Columns.Enabled, true)));
			if (psCapital.Count > 0)
			{
				return psCapital[0];
			}
			else
			{
				PlaceSet psPopulation = new PlaceSet(new Query(new Q(Place.Columns.CountryK, K), new OrderBy(Place.Columns.Population, OrderBy.OrderDirection.Descending), 1));
				if (psPopulation.Count > 0)
				{
					return psPopulation[0];
				}
				else
				{
					return null;
				}
			}
		}
示例#14
0
		protected void Page_Load(object sender, EventArgs e)
		{
			StringBuilder sb = new StringBuilder();
		//	if (Vars.DevEnv)
		//		System.Threading.Thread.Sleep(new Random().Next(2000));

			if (Request.QueryString["type"] == "calendar")
			{
				bool freeGuestlist = Request.QueryString["freeGuestlist"] == null || Request.QueryString["freeGuestlist"].Length == 0 || Request.QueryString["freeGuestlist"] == "0" ? false : true;
				Brand brand = Request.QueryString["brandk"] == null || Request.QueryString["brandk"].Length == 0 || Request.QueryString["brandk"] == "0" ? null : new Brand(int.Parse(Request.QueryString["brandk"]));
				Place place = Request.QueryString["placek"] == null || Request.QueryString["placek"].Length == 0 || Request.QueryString["placek"] == "0" ? null : new Place(int.Parse(Request.QueryString["placek"]));
				Venue venue = Request.QueryString["venuek"] == null || Request.QueryString["venuek"].Length == 0 || Request.QueryString["venuek"] == "0" || Request.QueryString["venuek"] == "1" ? null : new Venue(int.Parse(Request.QueryString["venuek"]));
				int key = Request.QueryString["key"] == null || Request.QueryString["key"].Length == 0 || Request.QueryString["key"] == "0" ? 0 : int.Parse(Request.QueryString["key"]);
				MusicType music = Request.QueryString["musictypek"] == null || Request.QueryString["musictypek"].Length == 0 || Request.QueryString["musictypek"] == "0" ? null : new MusicType(int.Parse(Request.QueryString["musictypek"]));
				bool me = Request.QueryString["me"] != null && Request.QueryString["me"] == "1";
				bool addGalleryButton = Request.QueryString["addgallery"] != null && Request.QueryString["addgallery"] == "1";
				bool allVenues = Request.QueryString["venuek"] != null && Request.QueryString["venuek"] == "1";
				DateTime date = new DateTime(
					int.Parse(Request.QueryString["date"].Substring(0, 4)),
					int.Parse(Request.QueryString["date"].Substring(4, 2)),
					int.Parse(Request.QueryString["date"].Substring(6, 2)) > 0 ? int.Parse(Request.QueryString["date"].Substring(6, 2)) : 1 );
				//if (date == DateTime.Today)
				//	System.Threading.Thread.Sleep(1000);
				DateTime from = date.Previous(DayOfWeek.Monday, true);
				DateTime to = date.Next(DayOfWeek.Sunday, true);
				Event.EventsForDisplay events = new Event.EventsForDisplay();
				events.IgnoreMusicType = true;

				if (me)
				{
					events.AttendedUsrK = Usr.Current.K;
				}
				else if (brand != null)
				{
					events.BrandK = brand.K;
				}
				else if (venue != null)
				{
					events.VenueK = venue.K;
				}
				else if (place != null && music != null)
				{
					events.PlaceK = place.K;
					events.MusicTypeK = music.K;
				}
				else if (place != null && freeGuestlist)
				{
					events.PlaceK = place.K;
					events.FreeGuestlist = freeGuestlist;
				}
				else if (key > 0)
				{

				}
				else
					throw new Exception();

				

				EventSet es;
				if (key == 0)
					es = events.GetEventsBetweenDates(from, to);
				else
					es = new EventSet(new Query(new Q(Event.Columns.K, key)));

				CustomControls.DsiCalendar calendar = new Spotted.CustomControls.DsiCalendar();

				calendar.AllEvents = es;
				calendar.Month = date.Month;
				
				calendar.ShowCountryFriendlyName = !(events.FilterByCountry || events.FilterByPlace || events.FilterByVenue);
				calendar.ShowPlace = !(events.FilterByPlace || events.FilterByVenue);
				calendar.ShowVenue = !events.FilterByVenue;
				calendar.ShowAddGalleryButton = addGalleryButton;

				calendar.Tickets = true;
				calendar.StartDate = from;
				calendar.EndDate = to;

				Out.Controls.Add(calendar);
				
			}
			else
			{
				sb.AppendLine("{");
				if (Request.QueryString["type"] == "music")
				{
					#region Music types

					Query q = new Query();
					q.QueryCondition = new Q(MusicType.Columns.K, QueryOperator.NotEqualTo, 1);
					q.Columns = new ColumnSet(MusicType.Columns.Name, MusicType.Columns.ParentK, MusicType.Columns.K);
					q.OrderBy = new OrderBy(MusicType.Columns.Order, OrderBy.OrderDirection.Ascending);
					q.CacheDuration = TimeSpan.FromDays(1);
					MusicTypeSet mts = new MusicTypeSet(q);
					append(sb, "Select your music...", "0");
					append(sb, "", "");
					foreach (MusicType mt in mts)
					{
						append(sb, (mt.ParentK == 1 ? "" : "... ") + mt.Name, mt.K.ToString());
					}

					#endregion
				}
				else if (Request.QueryString["type"] == "country")
				{
					#region Countries

					append(sb, "Select a country...", "0");
					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Country.Columns.FriendlyName, Country.Columns.K);
					qTop.OrderBy = new OrderBy(Country.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					qTop.QueryCondition = new Q(Country.Columns.Enabled, true);
					qTop.TopRecords = 10;
					qTop.CacheDuration = TimeSpan.FromDays(1);
					CountrySet csTop = new CountrySet(qTop);
					append(sb, "", "");
					append(sb, "--- TOP COUNTRIES ---", "0");
					foreach (Country c in csTop)
					{
						append(sb, c.FriendlyName.TruncateWithDots(maxLength), c.K.ToString());
					}
					Query qAll = new Query();
					qAll.Columns = new ColumnSet(Country.Columns.FriendlyName, Country.Columns.K);
					qAll.OrderBy = new OrderBy(Country.Columns.FriendlyName);
					qAll.QueryCondition = new And(new Q(Country.Columns.Enabled, true), new StringQueryCondition("(SELECT COUNT(*) FROM [Place] WHERE [Place].[Enabled] = 1 AND [Place].[CountryK] = [Country].[K]) > 0"));
					qAll.CacheDuration = TimeSpan.FromDays(1);
					CountrySet csAll = new CountrySet(qAll);
					append(sb, "", "");
					append(sb, "--- ALL COUNTRIES ---", "0");
					foreach (Country c in csAll)
					{
						append(sb, c.FriendlyName.TruncateWithDots(maxLength), c.K.ToString());
					}

					#endregion
				}
				else if (Request.QueryString["type"] == "place")
				{
					#region Places

					int countryK = int.Parse(Request.QueryString["countryk"]);
					Country country = new Country(countryK);

					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
					qTop.TopRecords = 10;
					qTop.QueryCondition = new And(new Q(Place.Columns.CountryK, country.K), new Q(Place.Columns.Enabled, true));
					qTop.OrderBy = new OrderBy(Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					PlaceSet psTop = new PlaceSet(qTop);
					if (psTop.Count == 0)
					{
						append(sb, "No towns in our database for this country", "");
					}
					else
					{
						append(sb, "Towns in " + country.FriendlyName.Truncate(maxLength) + "...", "");
						append(sb, "", "");
						if (psTop.Count < 10)
						{
							foreach (Place p in psTop)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());
						}
						else
						{
							append(sb, "--- TOP TOWNS ---", "");

							foreach (Place p in psTop)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());

							Query qAll = new Query();
							qAll.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K, Place.LinkColumns);
							qAll.OrderBy = new OrderBy(Place.Columns.UrlName);
							qAll.QueryCondition = new And(new Q(Place.Columns.CountryK, countryK), new Q(Place.Columns.Enabled, true));
							PlaceSet psAll = new PlaceSet(qAll);
							append(sb, "", "");
							append(sb, "--- ALL TOWNS ---", "");

							foreach (Place p in psAll)
								append(sb, p.NamePlainRegion.TruncateWithDots(maxLength), Request.QueryString["return"] == "k" ? p.K.ToString() : p.Url());

						}
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "venue")
				{
					#region Venues

					int placeK = int.Parse(Request.QueryString["placek"]);
					Place place = new Place(placeK);

					Query qTop = new Query();
					qTop.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
					qTop.TopRecords = 10;
					qTop.QueryCondition = new Q(Venue.Columns.PlaceK, place.K);
					qTop.OrderBy = new OrderBy(Venue.Columns.TotalEvents, OrderBy.OrderDirection.Descending);
					VenueSet vsTop = new VenueSet(qTop);
					if (vsTop.Count == 0)
					{
						append(sb, "No venues in our database for this town", "");
					}
					else
					{
						append(sb, "Venues in " + place.NamePlainRegion.Truncate(maxLength) + "...", "");
						append(sb, "", "");
						if (Request.QueryString["all"] == "1")
						{
							append(sb, "All venues", "1");
							append(sb, "", "");
						}
						if (vsTop.Count < 10)
						{
							appendVenues(sb, vsTop);
						}
						else
						{
							append(sb, "--- TOP VENUES ---", "");

							appendVenues(sb, vsTop);

							Query qAll = new Query();
							qAll.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
							qAll.OrderBy = new OrderBy("( CASE WHEN [Venue].[UrlName] LIKE 'the-%' THEN SUBSTRING([Venue].[UrlName], 4, LEN([Venue].[UrlName]) - 4) ELSE [Venue].[UrlName] END )");
							qAll.QueryCondition = new Q(Venue.Columns.PlaceK, placeK);
							VenueSet vsAll = new VenueSet(qAll);
							append(sb, "", "");
							append(sb, "--- ALL VENUES ---", "");

							if (vsAll.Count <= 300)
							{
								appendVenues(sb, vsAll);

							}
							else
							{
								append(sb, "Select the first letter:", "");
								append(sb, "", "");
								append(sb, "0-9", "*0");

								string ch;
								for (int i = 65; i <= 90; i++)
								{
									ch = char.ConvertFromUtf32(i);
									append(sb, ch.ToUpper() + "...", "*" + ch.ToLower());

								}
							}
						}
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "venuebyletter")
				{
					#region Venues

					int placeK = int.Parse(Request.QueryString["placek"]);
					string letter = Request.QueryString["letter"];
					if (letter.Length > 1)
						throw new Exception();
					Place place = new Place(placeK);

					string qu = "";
					if (letter.ToLower() == "0")
					{
						qu = "([Venue].[UrlName] LIKE '[0-9]%' OR [Venue].[UrlName] LIKE 'the-[0-9]%')";
					}
					else if (letter.ToLower() == "t")
					{
						qu = "(([Venue].[UrlName] LIKE 't%' AND [Venue].[UrlName] NOT LIKE 'the-%' ) OR [Venue].[UrlName] LIKE 'the-t%')";
					}
					else
					{
						qu = "([Venue].[UrlName] LIKE '" + letter.ToLower() + "%' OR [Venue].[UrlName] LIKE 'the-" + letter.ToLower() + "%')";
					}
					Query q = new Query();
					q.Columns = new ColumnSet(Venue.Columns.Name, Venue.Columns.K, Venue.LinkColumns);
					//q.OrderBy = new OrderBy(Venue.Columns.UrlName);
					q.OrderBy = new OrderBy("( CASE WHEN [Venue].[UrlName] LIKE 'the-%' THEN SUBSTRING([Venue].[UrlName], 4, LEN([Venue].[UrlName]) - 4) ELSE [Venue].[UrlName] END )");
					q.QueryCondition = new And(
						new Q(Venue.Columns.PlaceK, placeK),
						new StringQueryCondition(qu));
					VenueSet vs = new VenueSet(q);


					if (vs.Count == 0)
					{
						append(sb, "No venues starting with " + letter.ToUpper(), "");
					}
					else
					{
						append(sb, "Venues starting with " + letter.ToUpper() + "...", "");
						append(sb, "", "");

						appendVenues(sb, vs);
					}
					#endregion
				}
				else if (Request.QueryString["type"] == "event")
				{
					#region Events

					int venueK = int.Parse(Request.QueryString["venuek"]);
					int brandK = int.Parse(Request.QueryString["brandk"]);
					int key = int.Parse(Request.QueryString["key"]);
					int year = int.Parse(Request.QueryString["date"].Substring(0, 4));
					int month = int.Parse(Request.QueryString["date"].Substring(4, 2));
					DateTime dateFrom = new DateTime(year, month, 1);
					DateTime dateTo = dateFrom.AddMonths(1);
					Venue venue = venueK > 1 ? new Venue(venueK) : null;
					Brand brand = brandK > 0 ? new Brand(brandK) : null;

					EventSet es;
					if (key == 0)
					{
						Query q = new Query();
						if (brand == null)
							q.Columns = new ColumnSet(Event.Columns.DateTime, Event.Columns.Name, Event.Columns.K);
						else
							q.Columns = new ColumnSet(Event.Columns.DateTime, Event.Columns.Name, Event.Columns.K, Event.FriendlyLinkColumns);
						q.QueryCondition = new And(
							new Q(Event.Columns.DateTime, QueryOperator.GreaterThanOrEqualTo, dateFrom),
							new Q(Event.Columns.DateTime, QueryOperator.LessThan, dateTo),
							venue != null ? new Q(Event.Columns.VenueK, venue.K) : new Q(true),
							brand != null ? new Q(EventBrand.Columns.BrandK, brand.K) : new Q(true));
						q.OrderBy = Event.FutureEventOrder;
						if (brandK > 0)
						{
							q.TableElement = new Join(
							Event.CountryAllJoin,
							new TableElement(TablesEnum.EventBrand),
							QueryJoinType.Inner,
							Event.Columns.K,
							EventBrand.Columns.EventK);
						}
						es = new EventSet(q);
					}
					else
						es = new EventSet(new Query(new Q(Event.Columns.K, key)));

					if (es.Count == 0)
					{
						append(sb, "No events in our database for this selection", "");
					}
					else
					{
						//append(sb, "Events at " + venue.FriendlyName.Truncate(maxLength) + ", " + dateFrom.ToString("MMM yyyy") + "...", "");
						//append(sb, "", "");
						Dictionary<string, int> counter = new Dictionary<string, int>();
						foreach (Event ev in es)
						{
							string key1 = eventString(ev, brand != null);
							if (counter.ContainsKey(key1.ToLower()))
								counter[key1.ToLower()]++;
							else
								counter[key1.ToLower()] = 1;
						}


						foreach (Event ev in es)
						{
							string key1 = eventString(ev, brand != null);
							if (counter[key1.ToLower()] > 1)
								key1 = key1.Substring(0, 8) + " - #" + ev.K.ToString() + key1.Substring(8);

							append(sb, key1, ev.K.ToString());
						}

					}
					#endregion
				}
				sb.AppendLine("");
				sb.Append("}");
			}

			Out.Controls.Add(new LiteralControl(sb.ToString()));
		}
示例#15
0
		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();

		}
示例#16
0
		private void Page_Load(object sender, System.EventArgs e)
		{
			Usr.KickUserIfNotLoggedIn("You must be logged in to view your user preferences.");
			if (!Page.IsPostBack && !Usr.Current.IsSkeleton && !Vars.DevEnv)
				throw new DsiUserFriendlyException("You can't view this page, you've already completed your details");

			LogOffButton.Attributes["onclick"] = "return confirm('Are you sure?');";
			UnsubscribeButton.Attributes["onclick"] = "return confirm('Are you sure?');";
			EmailRegex.ValidationExpression = Cambro.Misc.RegEx.Email;
			DialingCodeDropDown.Attributes["onclick"] = "if (document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'][document.forms[0].elements['" + DialingCodeDropDown.ClientID + "'].selectedIndex].value=='0') {document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display=''}else{document.getElementById('" + DialingCodeOtherSpan.ClientID + "').style.display='none'}";

			#region Set up page... don't show options 2 and 3 to people who have come from the sign-up page unless they have verified their email

			WelcomeHeaderInvite.Visible = !Usr.Current.IsSkeletonFromSignup;
			WelcomeHeaderSignUp.Visible = Usr.Current.IsSkeletonFromSignup;

			if (ContainerPage.Url[0] == "Signup")
			{
				WelcomePart2And3.Visible = false;
				WelcomePart1Header.Visible = false;
			}

			//if (Usr.Current.IsSkeletonFromSignup && !Usr.Current.IsEmailVerified)
			//{
				//WelcomePart2And3.Visible = false;
				//WelcomePart1Header.Visible = false;
			//}
			#endregion

			if (!Page.IsPostBack)
			{
				string text = Cambro.Misc.Utility.GenRandomChars(5).ToUpper();
				string encryptedText = Cambro.Misc.Utility.Encrypt(text, DateTime.Now.AddHours(1));
				this.ViewState["HipChallengeExcryptedText"] = encryptedText;
				HipImage.Src = "/support/hipimage.aspx?a=" + encryptedText;
			}

			#region Auto add group / buddy
			uiAddedByGroupsDiv.Visible = false;
			uiAddedByUsrsDiv.Visible = false;
			try
			{
				int groupsCount = Usr.Current.GroupsWhoHavePendingInvitationsForMe.Count;
				if (groupsCount > 0)
				{
					uiAddedByGroupsDiv.Visible = true;

					if (groupsCount == 1)
					{
						uiAddedByGroupLabel.Text = "<b>" + Usr.Current.GroupsWhoHavePendingInvitationsForMe[0].FriendlyName + "</b> group";
					}
					else
					{
						uiAddedByGroupLabel.Text = "following groups";
					}

					int height = 36 + Math.Min(groupsCount, 2) * 60 + 20;
					uiAddedByGroupsDiv.Attributes["style"] = "border-top:3px solid #000000;padding-top:10px;padding-bottom:10px; height:" + height + "; overflow:auto;";

					foreach (GridViewRow gvr in uiAddedByGroupsGridView.Rows)
					{
						if (!((CheckBox)gvr.FindControl("uiCheckBox")).Checked) uncheckedGroupKs.Add((int)uiAddedByGroupsGridView.DataKeys[gvr.RowIndex].Value);
					}
					uiAddedByGroupsGridView.DataSource = Usr.Current.GroupsWhoHavePendingInvitationsForMe;
					uiAddedByGroupsGridView.DataBind();
				}
				int usrsCount = Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe.Count;
				if (usrsCount > 0)
				{
					if (usrsCount == 1)
					{
						uiAddedByUsrLabel.Text = "<b>" + Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe[0].NickName + "</b>";
					}
					else
					{
						uiAddedByUsrLabel.Text = "the following people";
					}

					int height = 36 + Math.Min(usrsCount, 2) * 60 + 20;
					uiAddedByUsrsDiv.Attributes["style"] = "border-top:3px solid #000000;padding-top:10px;padding-bottom:10px; height:" + height + "; overflow:auto;";

					foreach (GridViewRow gvr in uiAddedByUsrsGridView.Rows)
					{
						if (!((CheckBox)gvr.FindControl("uiCheckBox")).Checked) uncheckedBuddyUsrKs.Add((int)uiAddedByUsrsGridView.DataKeys[gvr.RowIndex].Value);
					}
					uiAddedByUsrsDiv.Visible = true;
					uiAddedByUsrsGridView.DataSource = Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe;
					uiAddedByUsrsGridView.DataBind();

				}
			}
			catch
			{
				uiAddedByGroupsDiv.Visible = false;
				uiAddedByUsrsDiv.Visible = false;
			}
			#endregion

			#region Populate hometown drop-down
			int selectedHomeTown = 0;
			if (!HomeTownDropDownList.SelectedValue.Equals("0") && !HomeTownDropDownList.SelectedValue.Equals(""))
				selectedHomeTown = int.Parse(HomeTownDropDownList.SelectedValue);

			//	OrderBy o = new OrderBy(Bobs.Place.Columns.Name,OrderBy.OrderDirection.Ascending);

			if (!Page.IsPostBack)
			{
				PlaceSet ts = new PlaceSet(
					new Query(
						new And(
						new Q(Place.Columns.Enabled, true),
						Country.PlaceFilterQ),
						new OrderBy(Bobs.Place.Columns.Name, OrderBy.OrderDirection.Ascending)
					)
				);
				HomeTownDropDownList.DataSource = ts;
				HomeTownDropDownList.DataValueField = "K";
				HomeTownDropDownList.DataTextField = "Name";
				HomeTownDropDownList.DataBind();
			}

			if (selectedHomeTown > 0)
			{
				try
				{
					HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
				}
				catch
				{
					try
					{
						Place p = new Place(selectedHomeTown);
						HomeTownDropDownList.Items.Insert(1, new ListItem(p.Name, p.K.ToString()));
						HomeTownDropDownList.SelectedValue = selectedHomeTown.ToString();
					}
					catch { }
				}
			}
			#endregion

			#region Populate favourite music drop-down
			int selectedFavouriteMusic = 0;
			if (!FavouriteMusicDropDownList.SelectedValue.Equals("0") && !FavouriteMusicDropDownList.SelectedValue.Equals(""))
				selectedFavouriteMusic = int.Parse(FavouriteMusicDropDownList.SelectedValue);


			if (!Page.IsPostBack)
			{
				MusicTypeSet mts = new MusicTypeSet(
					new Query(
						new Or(
						new Q(MusicType.Columns.ParentK, 1),
						new Q(MusicType.Columns.ParentK, 0)
						)
						,
						new OrderBy(MusicType.Columns.Order)
					)
				);
				FavouriteMusicDropDownList.DataSource = mts;
				FavouriteMusicDropDownList.DataValueField = "K";
				FavouriteMusicDropDownList.DataTextField = "DescriptiveText";
				FavouriteMusicDropDownList.DataBind();
			}

			if (selectedFavouriteMusic > 0)
			{
				FavouriteMusicDropDownList.SelectedValue = selectedFavouriteMusic.ToString();
			}

			#endregion

			if (!Page.IsPostBack)
			{
				FirstName.Text = Usr.Current.FirstName;
				LastName.Text = Usr.Current.LastName;
				NickName.Text = Usr.Current.NickName;
				Email.Text = Usr.Current.Email;
				SexMale.Checked = Usr.Current.IsMale;
				SexFemale.Checked = Usr.Current.IsFemale;
				SendSpottedEmails.Checked = Usr.Current.SendSpottedEmails;
				SendSpottedTexts.Checked = Usr.Current.SendSpottedTexts;
				SendFlyers.Checked = Usr.Current.SendFlyers;
				SendInvites.Checked = Usr.Current.SendInvites;
				IsDjYes.Checked = Usr.Current.IsDj.HasValue && Usr.Current.IsDj.Value;
				IsDjNo.Checked = Usr.Current.IsDj.HasValue && !Usr.Current.IsDj.Value;



				#region Initialise hometown drop-down
				if (Usr.Current.HomePlaceK > 0)
				{
					try
					{
						HomeTownDropDownList.SelectedValue = Usr.Current.HomePlaceK.ToString();
					}
					catch
					{
						HomeTownDropDownList.Items.Insert(1, new ListItem(Usr.Current.Home.Name, Usr.Current.HomePlaceK.ToString()));
						HomeTownDropDownList.SelectedValue = Usr.Current.HomePlaceK.ToString();
					}
				}
				#endregion
				#region Initialise favourite music drop-down
				if (Usr.Current.FavouriteMusicTypeK > 0)
				{
					FavouriteMusicDropDownList.SelectedValue = Usr.Current.FavouriteMusicTypeK.ToString();
				}
				#endregion
				#region Initialise mobile number box
				if (Usr.Current.Mobile.Length > 0)
				{
					if (
						Usr.Current.MobileCountryCode.Equals("44") ||
						Usr.Current.MobileCountryCode.Equals("61") ||
						Usr.Current.MobileCountryCode.Equals("33") ||
						Usr.Current.MobileCountryCode.Equals("49") ||
						Usr.Current.MobileCountryCode.Equals("353") ||
						Usr.Current.MobileCountryCode.Equals("39") ||
						Usr.Current.MobileCountryCode.Equals("34") ||
						Usr.Current.MobileCountryCode.Equals("1")
						)
					{
						DialingCodeDropDown.SelectedValue = Usr.Current.MobileCountryCode;
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
						DialingCodeOther.Text = Usr.Current.MobileCountryCode;
					}
					MobileNumber.Text = Usr.Current.MobileNumber;
				}
				else
				{
					if (Country.Current != null && Country.Current.DialingCode > 0)
					{
						DialingCodeDropDown.SelectedValue = Country.Current.DialingCode.ToString();
						DialingCodeOtherSpan.Style["display"] = "none";
					}
					else
					{
						DialingCodeDropDown.SelectedValue = "0";
						DialingCodeOtherSpan.Style["display"] = null;
					}
				}
				#endregion

			}

			DialingCodeOtherSpan.Style["display"] = DialingCodeDropDown.SelectedValue.Equals("0") ? null : "none";

			this.DataBind();
			if (!Page.IsPostBack)
			{
				HomeTownDropDownList.Items.Insert(0, new ListItem(" ", "0"));
				FavouriteMusicDropDownList.Items.Insert(0, new ListItem(" ", "0"));
			}
		}
示例#17
0
		public void PanelDetailsLoad(object o, System.EventArgs e)
		{
			bool passedPlaceHasPostcode = false;
			if (ContainerPage.Url["PlaceK"].IsInt)
			{
				Place passedPlace = new Place(ContainerPage.Url["PlaceK"]);
				if (passedPlace.Country.PostcodeType == 1)
					passedPlaceHasPostcode = true;
			}

			if (IsEdit)
			{
				PanelDetailsPostcodeDiv.Visible = CurrentVenue.Place.Country.PostcodeType == 1 || passedPlaceHasPostcode;
			}
			else
			{
				PanelDetailsPostcodeDiv.Visible = (Country.Current != null && Country.Current.PostcodeType == 1) || passedPlaceHasPostcode;
			}

			if (CanEditPlace)
			{
				PanelDetailsPlaceDiv.Visible = true;
				PanelDetailsPlaceLockedDiv.Visible = false;

				if (!Page.IsPostBack)
				{
					Query q = new Query();
					q.NoLock = true;
					q.Columns = new ColumnSet(Place.Columns.K, Place.Columns.Name, Place.Columns.CountryK, Place.Columns.RegionAbbreviation);
					q.QueryCondition = new And(Country.PlaceFilterQ, new Q(Place.Columns.Enabled, true));
					q.OrderBy = new OrderBy(Place.Columns.Name);
					PlaceSet ts = new PlaceSet(q);
					
					Place placeToSelect = null;
					if (IsEdit)
					{
						placeToSelect = CurrentVenue.Place;
					}
					else if (ContainerPage.Url["PlaceK"].IsInt)
					{
						placeToSelect = new Place(ContainerPage.Url["PlaceK"]);
					}
					if (placeToSelect != null)
					{
						PanelDetailsPlacePicker.Place = placeToSelect;
					}
				}
			}
			else
			{
				PanelDetailsPlacePicker.Place = CurrentVenue.Place;

				PanelDetailsPlaceDiv.Visible = false;
				PanelDetailsPlaceLockedDiv.Visible = true;

				PanelDetailsPlaceLockedLabel.Text = CurrentVenue.Place.Name;
			}
			if (IsEdit)
			{

			}
			if (IsEdit && !Page.IsPostBack)
			{

				PanelDetailsPostcodeTextBox.Text = CurrentVenue.Postcode;
				PanelDetailsVenueName.Text = CurrentVenue.Name;
				PanelDetailsVenueCapacity.Text = CurrentVenue.Capacity.ToString();
				PanelDetailsVenueDetailsHtml.LoadHtml(CurrentVenue.DetailsHtml);
				PanelDetailsVenueRegularEventsYes.Checked = CurrentVenue.RegularEvents;
				PanelDetailsVenueRegularEventsNo.Checked = !CurrentVenue.RegularEvents;
			}
		}
示例#18
0
		private void BindLocationPlaceDropDown()
		{
			Query q = new Query();
			q.Columns = new ColumnSet(Place.Columns.K, Place.Columns.Name);
			q.OrderBy = new OrderBy(Place.Columns.Name);
			q.QueryCondition = new And(
				new Q(Place.Columns.Enabled, true),
				new Q(Place.Columns.CountryK, int.Parse(LocationCountryDropDown.SelectedValue)));
			PlaceSet cs = new PlaceSet(q);
			LocationPlaceDropDown.DataTextField = "NamePlain";
			LocationPlaceDropDown.DataValueField = "K";
			LocationPlaceDropDown.DataSource = cs;
			LocationPlaceDropDown.DataBind();
			if (IsEdit && !Page.IsPostBack)
			{
				if (CurrentGroup.PlaceK != 0 && LocationPlaceDropDown.Items.FindByValue(CurrentGroup.PlaceK.ToString()) != null)
					LocationPlaceDropDown.SelectedValue = CurrentGroup.PlaceK.ToString();
			}
		}
示例#19
0
		public UrlPartTypes ProcessFilterPart(ref int currentIndex, string[] urlParts)
		{
			if (HasYearFilter && urlParts[currentIndex].Equals("tickets"))
			{
				#region tickets calendar
				PageType = PageTypes.Pages;
				PageName = "CalendarTickets";
				CurrentApplication = "tickets";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (HasYearFilter && urlParts[currentIndex].Equals("free"))
			{
				#region Free Guestlist calendar
				PageType = PageTypes.Pages;
				PageName = "CalendarFreeGuestlist";
				CurrentApplication = "free";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("tags"))
			{
				#region tags
				PageType = PageTypes.Pages;
				PageName = "TagSearch";
				CurrentApplication = "tags";
				HasTagFilter = true;

				currentIndex++;
				if (urlParts.Length > currentIndex)
				{

					CurrentApplication = "tags/" + urlParts[currentIndex];

					foreach (string s in urlParts[currentIndex].Split('-'))
					{
						if (!s.Equals("all"))
							TagFilter.Add(Cambro.Web.Helpers.UrlTextDeSerialize(s));
					}

					currentIndex++;
				}
				return UrlPartTypes.Application;
				#endregion
			}
			else if ((HasBrandObjectFilter || HasVenueObjectFilter) && (urlParts[currentIndex].Equals("tickets") || urlParts[currentIndex].Equals("photos")))
			{
				#region Styled page
				currentIndex++;
				PageType = PageTypes.Styled;
				PageName = "Home";
				if (urlParts.Length > currentIndex &&
					YearRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //year and month
					int year = int.Parse(urlParts[currentIndex]);
					if (year > 1990 && year < 2030)
					{
						HasYearFilter = true;
						DateFilter = new DateTime(year, 1, 1);
						PageName = "Calendar";
						currentIndex++;
						if (urlParts.Length > currentIndex &&
							MonthRegex.IsMatch(urlParts[currentIndex]))
						{
							int month = MonthNumber(urlParts[currentIndex]);
							HasMonthFilter = true;
							DateFilter = new DateTime(year, month, 1);
							currentIndex++;
						}
						return UrlPartTypes.Application;
					}
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					MonthRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //month only - infer the year
					int requestedMonth = MonthNumber(urlParts[currentIndex]);
					HasYearFilter = true;
					HasMonthFilter = true;
					int requestedMonthIndex = (DateTime.Today.Year * 12) + requestedMonth;
					int currentMonthIndex = (DateTime.Today.Year * 12) + DateTime.Today.Month;
					DateTime d = new DateTime(DateTime.Today.Year, requestedMonth, 1);

					if (currentMonthIndex - requestedMonthIndex > 4)
					{
						d = new DateTime(DateTime.Today.Year + 1, requestedMonth, 1);
					}
					else if (currentMonthIndex - requestedMonthIndex < -7)
					{
						d = new DateTime(DateTime.Today.Year - 1, requestedMonth, 1);
					}

					DateFilter = d;
					PageName = "Calendar";
					currentIndex++;
					return UrlPartTypes.Application;
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					urlParts[currentIndex].ToLower().Equals("calendar"))
				{
					#region //todays month
					DateFilter = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1);
					PageName = "Calendar";
					currentIndex++;
					return UrlPartTypes.Application;
					#endregion
				}
				else if (urlParts.Length > currentIndex &&
					NumericRegex.IsMatch(urlParts[currentIndex]))
				{
					#region //event id
					PageName = "EventDetail";
					return UrlPartTypes.Application;
					#endregion
				}
				return UrlPartTypes.ObjectFilter;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("parties"))
			{
				#region brand
				currentIndex++;
				Query brandQuery = new Query();
				brandQuery.NoLock = true;
				brandQuery.Columns = new ColumnSet(Brand.Columns.K);
				brandQuery.QueryCondition = new Q(Brand.Columns.UrlName, urlParts[currentIndex]);
				BrandSet bs = new BrandSet(brandQuery);
				if (bs.Count > 0)
				{
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Brand;
					ObjectFilterK = bs[0].K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/parties/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("groups"))
			{
				#region group
				currentIndex++;
				if (urlParts.Length > currentIndex)
				{
					string groupUrlName = urlParts[currentIndex];
					if (urlParts[currentIndex].Equals("parties"))
					{
						currentIndex++;
						groupUrlName = "parties/" + urlParts[currentIndex];
					}
					Query groupQuery = new Query();
					groupQuery.NoLock = true;
					groupQuery.Columns = new ColumnSet(Bobs.Group.Columns.K);
					groupQuery.QueryCondition = new Q(Bobs.Group.Columns.UrlName, groupUrlName);
					GroupSet gs = new GroupSet(groupQuery);
					if (gs.Count > 0)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Group;
						ObjectFilterK = gs[0].K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/groups/" + groupUrlName;
						currentIndex++;
						return UrlPartTypes.ObjectFilter;
					}
				}
				PageType = PageTypes.Pages;
				PageName = "GroupBrowser";
				CurrentApplication = "groups";
				return UrlPartTypes.Application;
				#endregion
			}
			else if (!HasObjectFilter && urlParts[currentIndex].Equals("promoters"))
			{
				#region promoter
				currentIndex++;
				Query promoterQuery = new Query();
				promoterQuery.NoLock = true;
				promoterQuery.Columns = new ColumnSet(Promoter.Columns.K);
				promoterQuery.QueryCondition = new Q(Promoter.Columns.UrlName, urlParts[currentIndex]);
				PromoterSet ps = new PromoterSet(promoterQuery);
				if (ps.Count > 0)
				{
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Promoter;
					ObjectFilterK = ps[0].K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/promoters/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (!HasObjectFilter && urlParts[currentIndex].Equals("members"))
			{
				#region members - usr
				currentIndex++;
				if (urlParts[currentIndex].Length > 0)
				{
					Usr usr = Usr.GetFromNickName(urlParts[currentIndex]);
					if (usr != null)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Usr;
						ObjectFilterK = usr.K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/members/" + urlParts[currentIndex];
						currentIndex++;
						return UrlPartTypes.ObjectFilter;
					}
					//Query usrQuery = new Query();
					//usrQuery.NoLock = true;
					//usrQuery.Columns = new ColumnSet(Usr.Columns.K);
					//usrQuery.QueryCondition = new Q(Usr.Columns.NickName, urlParts[currentIndex]);
					//UsrSet us = new UsrSet(usrQuery);
					//if (us.Count > 0)
					//{
					//    HasObjectFilter = true;
					//    ObjectFilterType = Model.Entities.ObjectType.Usr;
					//    ObjectFilterK = us[0].K;
					//    PageType = PageTypes.Application;
					//    PageName = "Home";
					//    CurrentFilter += "/members/" + urlParts[currentIndex];
					//    currentIndex++;
					//    return UrlPartTypes.ObjectFilter;
					//}
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("event-"))
			{
				#region event
				try
				{
					Event ev = new Event(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					ObjectFilterType = Model.Entities.ObjectType.Event;
					ObjectFilterK = ev.K;
					PageType = PageTypes.Application;
					PageName = "Home";
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("gallery-"))
			{
				#region gallery
				try
				{
					Gallery g = new Gallery(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Gallery;
					ObjectFilterK = g.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("photo-"))
			{
				#region photo
				try
				{
					Photo p = new Photo(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Photo;
					ObjectFilterK = p.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].StartsWith("article-"))
			{
				#region article
				try
				{
					Article a = new Article(int.Parse(urlParts[currentIndex].Split('-')[1]));
					HasObjectFilter = true;
					PageType = PageTypes.Application;
					PageName = "Home";
					ObjectFilterType = Model.Entities.ObjectType.Article;
					ObjectFilterK = a.K;
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					return UrlPartTypes.ObjectFilter;
				}
				catch
				{
					currentIndex++;
				}
				return UrlPartTypes.Null;
				#endregion
			}
			else if (GetMusicTypeK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region music filter
				this.HasMusicFilter = true;
				this.MusicFilterK = GetMusicTypeK(urlParts[currentIndex].ToLower());
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.MusicFilter;
				#endregion
			}
			else if (GetThemeK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region theme filter
				this.HasThemeFilter = true;
				this.ThemeFilterK = GetThemeK(urlParts[currentIndex].ToLower());
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.ThemeFilter;
				#endregion
			}
			else if (GetCountryK(urlParts[currentIndex].ToLower()) > 0)
			{
				#region Lookup country / place / venue
				HasObjectFilter = true;
				ObjectFilterType = Model.Entities.ObjectType.Country;
				ObjectFilterK = GetCountryK(urlParts[currentIndex].ToLower());
				PageType = PageTypes.Application;
				PageName = "Home";
				CurrentFilter += "/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				int countryK = this.ObjectFilterK;

				if (urlParts.Length > currentIndex)
				{
					Country country = new Country(countryK);
					Q regionQ = new Q(true);
					if (country.UseRegion)
					{
						Query qRegion = new Query();
						qRegion.NoLock = true;
						qRegion.Columns = new ColumnSet(Region.Columns.K);
						qRegion.TopRecords = 1;
						qRegion.QueryCondition = new And(
							new Q(Region.Columns.CountryK, countryK),
							new Q(Region.Columns.Abbreviation, urlParts[currentIndex]));
						RegionSet rs = new RegionSet(qRegion);
						if (rs.Count > 0)
						{
							HasObjectFilter = true;
							ObjectFilterType = Model.Entities.ObjectType.Region;
							ObjectFilterK = rs[0].K;
							PageType = PageTypes.Application;
							PageName = "Home";
							int regionK = ObjectFilterK;
							regionQ = new Q(Place.Columns.RegionK, regionK);
							CurrentFilter += "/" + urlParts[currentIndex].ToLower();

							currentIndex++;

							if (!(urlParts.Length > currentIndex))
								return UrlPartTypes.ObjectFilter;
						}


					}
					#region Lookup place
					Query placeQuery = new Query();
					placeQuery.NoLock = true;
					placeQuery.Columns = new ColumnSet(Place.Columns.K);
					placeQuery.QueryCondition = new And(
						new Q(Place.Columns.Enabled, true),
						new Q(Place.Columns.CountryK, countryK),
						new Q(Place.Columns.UrlName, urlParts[currentIndex].ToLower()),
						regionQ
					);
					PlaceSet ps = new PlaceSet(placeQuery);
					if (ps.Count > 0)
					{
						HasObjectFilter = true;
						ObjectFilterType = Model.Entities.ObjectType.Place;
						ObjectFilterK = ps[0].K;
						PageType = PageTypes.Application;
						PageName = "Home";
						CurrentFilter += "/" + urlParts[currentIndex].ToLower();
						currentIndex++;
						int placeK = this.ObjectFilterK;

						if (urlParts.Length > currentIndex)
						{
							#region Lookup venue
							Query venueQuery = new Query();
							venueQuery.NoLock = true;
							venueQuery.Columns = new ColumnSet(Venue.Columns.K);
							venueQuery.QueryCondition = new And(
								new Q(Venue.Columns.PlaceK, placeK),
								new Q(Venue.Columns.UrlName, urlParts[currentIndex].ToLower())
								);
							VenueSet vs = new VenueSet(venueQuery);
							if (vs.Count > 0)
							{
								HasObjectFilter = true;
								ObjectFilterType = Model.Entities.ObjectType.Venue;
								ObjectFilterK = vs[0].K;
								PageType = PageTypes.Application;
								PageName = "Home";
								CurrentFilter += "/" + urlParts[currentIndex].ToLower();
								currentIndex++;
								int venueK = this.ObjectFilterK;
							}
							#endregion
						}
					}
					#endregion
				}
				return UrlPartTypes.ObjectFilter;
				#endregion
			}
			else if (YearRegex.IsMatch(urlParts[currentIndex]))
			{
				#region year / month / day
				int year = int.Parse(urlParts[currentIndex]);
				if (year > 1990 && year < 2030)
				{
					HasYearFilter = true;
					DateFilter = new DateTime(year, 1, 1);
					PageType = PageTypes.Pages;
					PageName = "Calendar";
					CurrentFilter += "/" + urlParts[currentIndex];
					currentIndex++;
					if (urlParts.Length > currentIndex && MonthRegex.IsMatch(urlParts[currentIndex]))
					{
						int month = MonthNumber(urlParts[currentIndex]);
						HasMonthFilter = true;
						DateFilter = new DateTime(year, month, 1);
						PageType = PageTypes.Pages;
						PageName = "Calendar";
						CurrentFilter += "/" + urlParts[currentIndex];
						currentIndex++;
						if (urlParts.Length > currentIndex && DayRegex.IsMatch(urlParts[currentIndex]))
						{
							int day = int.Parse(urlParts[currentIndex]);
							try
							{
								DateFilter = new DateTime(year, month, day);
								HasDayFilter = true;
								PageType = PageTypes.Pages;
								PageName = "Calendar";
								CurrentFilter += "/" + urlParts[currentIndex];
								currentIndex++;
							}
							catch
							{
								currentIndex++;
							}
						}
					}
					return UrlPartTypes.DateFilter;
				}
				else
					return UrlPartTypes.Null;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("chat") || urlParts[currentIndex].Equals("messages"))
			{
				#region chat application
				PageType = PageTypes.Pages;
				PageName = "Chat";
				CurrentApplication = "chat";
				currentIndex++;
				if (ObjectFilterType.Equals(Model.Entities.ObjectType.Usr))
				{
					PageType = PageTypes.PagesFolder;
					PageFolder = "Usrs";
					PageName = "MyComments";
					CurrentApplication = "chat";
				}
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("archive"))
			{
				#region archive application
				PageType = PageTypes.Pages;
				PageName = "Archive";
				CurrentApplication = "archive";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("hottickets"))
			{
				#region hot tickets application
				PageType = PageTypes.Pages;
				PageName = "HotTickets";
				CurrentApplication = "hottickets";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (urlParts[currentIndex].Equals("home"))
			{
				#region home application
				CurrentApplication = "home";
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else if (HasUsrObjectFilter && urlParts[currentIndex].Equals("photosof"))
			{
				#region photosof page
				currentIndex++;
				PageType = PageTypes.Application;
				PageName = "photosof";
				CurrentApplication = "photosof/" + urlParts[currentIndex].ToLower();
				currentIndex++;
				return UrlPartTypes.Application;
				#endregion
			}
			else
			{
				if (urlParts.Length > currentIndex)
				{
					if (!PageType.Equals(PageTypes.Styled))
						PageType = PageTypes.Application;
					PageName = urlParts[currentIndex].ToLower();
					CurrentApplication = urlParts[currentIndex].ToLower();
					currentIndex++;
					return UrlPartTypes.Application;
				}
				else
				{
					currentIndex++;
					return UrlPartTypes.Null;
				}
			}
		}
示例#20
0
		static Place getPlaceFromString(string homeTownName, ref bool goodMatch)
		{
			if (homeTownName.Trim().Length == 0)
				return null;

			string placeName = "";
			string countryName = "";
			Place homePlace = null;
			Country homeCountry = null;

			#region split into country and place name
			if (homeTownName.Length > 0 && homeTownName.Contains(","))
			{
				placeName = homeTownName.Substring(0, homeTownName.LastIndexOf(',')).Trim();
				countryName = homeTownName.Substring(homeTownName.LastIndexOf(',') + 1).Trim();
			}
			else
			{
				placeName = homeTownName;
			}
			#endregion

			if (countryName.Length > 0)
			{
				#region get country by name
				CountrySet csName = new CountrySet(
					new Query(
						new Q(Country.Columns.Name, countryName.Trim())
					)
				);
				if (csName.Count > 0)
				{
					homeCountry = csName[0];
				}
				#endregion
				else
				{
					#region get country by friendly name (abbreviation)
					CountrySet csFriendlyName = new CountrySet(
						new Query(
							new Q(Country.Columns.FriendlyName, countryName.Trim())
						)
					);
					if (csFriendlyName.Count > 0)
					{
						homeCountry = csFriendlyName[0];
					}
					#endregion
				}
			}
			#region if we haven't found a country yet, use the IPcountry
			if (homeCountry == null)
			{
				try
				{
					homeCountry = new Country(IpCountry.ClientCountryK());
				}
				catch
				{
					homeCountry = new Country(224);
				}
			}
			#endregion

			if (placeName.Length > 0)
			{
				#region lookup enabled places in the home country
				PlaceSet psNameWithCountry = new PlaceSet(
					new Query(
						new And(
							new Q(Place.Columns.Name, placeName.Trim()),
							new Q(Place.Columns.CountryK, homeCountry.K),
							new Q(Place.Columns.Enabled, true)
						)
					)
				);
				if (psNameWithCountry.Count > 0)
				{
					homePlace = psNameWithCountry[0];
					goodMatch = true;
				}
				#endregion
				else
				{
					#region lookup non-enabled places and find the nearest enabled place
					PlaceSet psNameWithCountryNotEnalbed = new PlaceSet(
						new Query(
							new And(
								new Q(Place.Columns.Name, placeName.Trim()),
								new Q(Place.Columns.CountryK, homeCountry.K)
							)
						)
					);
					if (psNameWithCountryNotEnalbed.Count > 0)
					{
						PlaceSet ps = new PlaceSet(
							new Query(
								new Q(Place.Columns.Enabled, true),
								psNameWithCountryNotEnalbed[0].NearestPlacesOrderBy,
								1
							)
						);
						if (ps.Count > 0)
						{
							homePlace = ps[0];
							goodMatch = true;
						}
					}
					#endregion
					else
					{
						#region lookup global enabled places by name
						PlaceSet psName = new PlaceSet(
							new Query(
								new And(
									new Q(Place.Columns.Name, placeName.Trim()),
									new Q(Place.Columns.Enabled, true)
								),
								new OrderBy(Place.Columns.Population, OrderBy.OrderDirection.Descending),
								1
							)
						);
						if (psName.Count > 0)
						{
							homePlace = psName[0];
						}
						#endregion
						else
						{
							#region lookup global non-enabled places and find the nearest enabled place
							PlaceSet psNameNotEnalbed = new PlaceSet(
								new Query(
									new Q(Place.Columns.Name, placeName.Trim())
								)
							);
							if (psNameNotEnalbed.Count > 0)
							{
								PlaceSet ps = new PlaceSet(
									new Query(
										new Q(Place.Columns.Enabled, true),
										psNameNotEnalbed[0].NearestPlacesOrderBy,
										1
									)
								);
								if (ps.Count > 0)
								{
									homePlace = ps[0];
								}
							}
							#endregion
						}
					}
				}
			}
			#region if we haven't found a place yet, use the capital (or largest enabled place) from the home country. If all fails, use London.
			if (homePlace == null)
			{
				if (homeCountry != null)
				{
					homePlace = homeCountry.GetCapitalOrLargestEnabledPlace();
				}
			}

			if (homePlace == null)
				homePlace = new Place(1);
			#endregion

			return homePlace;
		}
示例#21
0
		public PlaceSet PlacesVisit(ColumnSet cs, int topRecords)
		{
			if (placesVisit == null)
			{
				Query q = new Query();
				q.TableElement = Place.UsrVisitJoin;
				if (cs != null)
					q.Columns = cs;
				if (topRecords > 0)
					q.TopRecords = topRecords;
				q.OrderBy = new OrderBy(Place.Columns.Population, OrderBy.OrderDirection.Descending);
				q.QueryCondition = new Q(Usr.Columns.K, this.K);
				placesVisit = new PlaceSet(q);
			}
			return placesVisit;
		}
示例#22
0
		void BindAddAll()
		{
			if (Buddies.Count > 0)
			{
				Query qMusic = new Query();
				qMusic.Columns = new ColumnSet(MusicType.Columns.K, MusicType.Columns.Name, MusicType.Columns.ParentK);
				if (AddAllShowAllItemsCheck.Checked || ((DsiPage)Page).RelevantMusic.Count == 0)
				{
					qMusic.QueryCondition = new Q(true);
				}
				else
				{
					ArrayList alMusicQ = new ArrayList();
					foreach (int mK in ((DsiPage)Page).RelevantMusic)
						alMusicQ.Add(new Q(MusicType.Columns.K, mK));
					qMusic.QueryCondition = new Or((Q[])alMusicQ.ToArray(typeof(Q)));
				}
				qMusic.OrderBy = new OrderBy(MusicType.Columns.Order);
				MusicTypeSet mts = new MusicTypeSet(qMusic);

				ArrayList musicTypesDone = new ArrayList();
				AddAllMusicDrop.Items.Clear();
				musicTypesDone.Add(1);
				AddAllMusicDrop.Items.Add(new ListItem(GetMusicTypeName(1), "1"));

				foreach (MusicType mt in mts)
				{
					if (!musicTypesDone.Contains(mt.ParentK) && mt.ParentK != 0)
					{
						musicTypesDone.Add(mt.ParentK);
						AddAllMusicDrop.Items.Add(new ListItem(GetMusicTypeName(mt.ParentK), mt.ParentK.ToString()));
					}
					if (!musicTypesDone.Contains(mt.K))
					{
						musicTypesDone.Add(mt.K);
						AddAllMusicDrop.Items.Add(new ListItem((mt.ParentK == 1 ? "" : " - ") + mt.Name.ToLower(), mt.K.ToString()));
					}
				}

				Query qPlace = new Query();
				qPlace.Columns = new ColumnSet(Place.Columns.Name, Place.Columns.K);
				if (AddAllShowAllItemsCheck.Checked || ((DsiPage)Page).RelevantPlaces.Count == 0)
				{
					qPlace.QueryCondition = Country.PlaceFilterQ;
				}
				else
				{
					ArrayList alPlaceQ = new ArrayList();
					foreach (int pK in ((DsiPage)Page).RelevantPlaces)
						alPlaceQ.Add(new Q(Place.Columns.K, pK));
					qPlace.QueryCondition = new Or((Q[])alPlaceQ.ToArray(typeof(Q)));
				}
				qPlace.OrderBy = new OrderBy(Place.Columns.Name);
				PlaceSet ps = new PlaceSet(qPlace);

				AddAllPlaceDrop.Items.Clear();
				AddAllPlaceDrop.Items.Add(new ListItem("any town", "0"));
				foreach (Place p in ps)
				{
					AddAllPlaceDrop.Items.Add(new ListItem(p.Name, p.K.ToString()));
				}
			}
		}
示例#23
0
		public bool SavePlaceTargetting(Event e)
		{
			Query qPlace = new Query();
			qPlace.TopRecords = 10;
			qPlace.QueryCondition = new Q(Place.Columns.Enabled, true);
			qPlace.OrderBy = e.Venue.Place.NearestPlacesOrderBy;
			PlaceSet ps = new PlaceSet(qPlace);

			return SavePlaceTargetting(ps.ToList().ConvertAll(p => p.K));
		}
示例#24
0
		protected void Page_Load(object sender, EventArgs e)
		{
			if (Usr.Current != null)
			{
				#region Home country
				{
					if (Country.Current != null)
					{
						HomeCountryLink.HRef = Country.Current.Url();
						HomeCountryLink.InnerHtml = Country.Current.FriendlyName;
						HomeCountryLabel.Text = Country.Current.FriendlyName;
					}
				}
				#endregion

				#region Favourite groups
				{
					Query q = new Query();
					q.TableElement = new Join(
						new TableElement(TablesEnum.Group),
						new TableElement(TablesEnum.GroupUsr),
						QueryJoinType.Inner,
						new And(
							new Q(Group.Columns.K, GroupUsr.Columns.GroupK, true),
							new Q(GroupUsr.Columns.Favourite, true),
							new Q(GroupUsr.Columns.UsrK, Usr.Current.K),
							new Q(GroupUsr.Columns.Status, GroupUsr.StatusEnum.Member)
						)
					);
					q.Columns = new ColumnSet(Group.Columns.UrlName, Group.Columns.Name);
					q.OrderBy = new OrderBy(Group.Columns.Name);
					GroupSet gs = new GroupSet(q);
					if (gs.Count > 0)
					{
						StringBuilder sb = new StringBuilder();
						foreach (Group g in gs)
						{
							sb.Append(string.Format("{0}<a href=\"{1}\">{2}</a>", sb.Length == 0 ? "" : ", ", g.Url(), g.Name));
						}
						FavouriteGroupsPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
						FavouriteGroupsHolder.Visible = true;
						NoFavouriteGroupsHolder.Visible = false;
					}
					else
					{
						FavouriteGroupsHolder.Visible = false;
						NoFavouriteGroupsHolder.Visible = true;
					}
				}
				#endregion

				#region Places I visit
				{
					Query q = new Query();
					q.TableElement = new Join(
						new TableElement(TablesEnum.Place),
						new TableElement(TablesEnum.UsrPlaceVisit),
						QueryJoinType.Inner,
						new And(
							new Q(Place.Columns.K, UsrPlaceVisit.Columns.PlaceK, true),
							new Q(UsrPlaceVisit.Columns.UsrK, Usr.Current.K)
						)
					);
					q.Columns = new ColumnSet(Place.Columns.UrlName, Place.Columns.Name, Place.Columns.RegionAbbreviation, Place.Columns.UrlFragment);
					q.OrderBy = new OrderBy(Place.Columns.Name);
					PlaceSet ps = new PlaceSet(q);
					if (ps.Count > 0)
					{
						StringBuilder sb = new StringBuilder();
						foreach (Place p in ps)
						{
							sb.Append(string.Format("{0}<a href=\"{1}\">{2}</a>", sb.Length == 0 ? "" : ", ", p.Url(), p.NamePlain));
						}
						PlacesPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
					}
					else
					{
						PlacesHolder.Visible = false;
					}
				}
				#endregion

				#region Calendars
				{
					MyCalendarLink.HRef = "/pages/mycalendar#Day" + DateTime.Now.ToString("yyyyMMdd");
					BuddyCalendarLink.HRef = "/pages/mycalendar/type-buddy#Day" + DateTime.Now.ToString("yyyyMMdd");
				}
				#endregion

				#region My comments
				{
					MyCommentsLink.HRef = Usr.Current.UrlApp("chat");
				}
				#endregion

				#region My tickets
				{
					MyTicketsLink.HRef = Usr.Current.UrlApp("mytickets");
				}
				#endregion

				#region Online buddies
				{
					Query q = new Query();
					q.TableElement = Usr.BuddyJoin;
					q.QueryCondition = new And(
						new Q(Buddy.Columns.UsrK, Usr.Current.K),
						Usr.LoggedIn30MinIncludeNonEmailVerifiedQ);
					q.OrderBy = new OrderBy(Usr.Columns.NickName);
					UsrSet us = new UsrSet(q);
					StringBuilder sb = new StringBuilder();
					foreach (Usr u in us)
					{
						sb.Append(sb.Length == 0 ? "" : ", ");
						u.LinkAppend(sb, false);
					}
					OnlineBuddiesPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));
				}
				{
					Query q = new Query();
					q.QueryCondition = Usr.LoggedIn30MinIncludeNonEmailVerifiedQ;
					q.CacheDuration = TimeSpan.FromMinutes(15);
					q.ReturnCountOnly = true;
					UsrSet us = new UsrSet(q);
					NumberOnlineLabel.Text = us.Count.ToString("#,##0");
				}
				#endregion

				#region Favourite photos
				//{
				//    Query q = new Query();
				//    q.TableElement = Photo.UsrFavouritesJoin;
				//    q.OrderBy = new OrderBy(UsrPhotoFavourite.Columns.DateTimeAdded, OrderBy.OrderDirection.Descending);
				//    q.TopRecords = 7;
				//    q.QueryCondition = new Q(UsrPhotoFavourite.Columns.UsrK, Usr.Current.K);
				//    PhotoSet ps = new PhotoSet(q);
				//    StringBuilder sb = new StringBuilder();
				//    foreach (Photo p in ps)
				//    {
				//        sb.Append(string.Format("<a href=\"{0}\"><img src=\"{1}\" border=\"0\" width=\"50\" height=\"50\" class=\"BorderBlack All\" /></a> ", p.Url(), p.IconPath));
				//    }
				//    FavouritePhotosPlaceholder.Controls.Add(new LiteralControl(sb.ToString()));

				//    FavouritePhotosLink.HRef = Usr.Current.UrlApp("favouritephotos");
				//}
				#endregion
			}
			
		}
示例#25
0
		void BindPlacesList(string order)
		{

			OrderBy o = new OrderBy(Bobs.Place.Columns.Name, OrderBy.OrderDirection.Ascending);
			if (order.Equals("Size"))
				o = new OrderBy(Bobs.Place.Columns.Population, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Latitude"))
				o = new OrderBy(Bobs.Place.Columns.LatitudeDegreesNorth, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Longitude"))
				o = new OrderBy(Bobs.Place.Columns.LongitudeDegreesWest, OrderBy.OrderDirection.Descending);
			else if (order.Equals("Region"))
				o = Bobs.Region.RegionOrder;
			else if (order.Equals("Event"))
				o = new OrderBy(Bobs.Place.Columns.TotalEvents, OrderBy.OrderDirection.Descending);

			NoPlaceSelectedFlagImg.Src = CurrentCountry.FlagUrl();

			PageHeadingNoPlace.InnerText = PageHeadingNoPlace.InnerText.Replace("???", CurrentCountry.FriendlyName);
			ContainerPage.SetPageTitle("Places in " + CurrentCountry.FriendlyName);

			NoPlaceSelectedHomeCountryPanel.Visible = (!ContainerPage.Url.HasCountryObjectFilter);
			NoPlaceSelectedCountryPanel.Visible = (ContainerPage.Url.HasCountryObjectFilter);

			NoPlaceSelectedFlagAnchor.HRef = CurrentCountry.Url();

			if (ContainerPage.Url.HasCountryObjectFilter)
			{
				NoPlaceSelectedCountryLink.InnerText = CurrentCountry.FriendlyName;
				NoPlaceSelectedCountryLink.HRef = CurrentCountry.Url();
			}

			PlaceSet ts = new PlaceSet(
				new Query(
					new And(
					new Q(Place.Columns.Enabled, true),
					new Q(Place.Columns.CountryK, CurrentCountry.K)
					),
					o
				)
			);
			PlacesDataList.DataSource = ts;
			PlacesDataList.DataBind();

			//	PlaceSet tsVisit = Usr.Current.PlacesVisit;
			//	foreach (Place t in tsVisit)
			//	{
			//		Cob c = this.CurrentCob;
			//		HtmlAnchor a = new HtmlAnchor();
			//		a.HRef=t.Url();
			//		a.InnerText=t.Name;
			//	}
		}