コード例 #1
0
		void uiSaveButton_Click(object sender, EventArgs e)
		{
			if (!uiPlacesChooser.SelectedPlaceKs.Any())
			{
				throw new Exception("You cannot visit nowhere. This should not have been an available option from the site");
			}
			using (var transaction = new Transaction())
			{
				Delete delete = new Delete(TablesEnum.UsrPlaceVisit, new Q(UsrPlaceVisit.Columns.UsrK, Usr.Current.K));
				delete.Run(transaction);
				foreach (var item in this.uiPlacesChooser.SelectedPlaceKs)
				{
					UsrPlaceVisit utv = new UsrPlaceVisit();
					utv.UsrK = Usr.Current.K;
					utv.PlaceK = item;
					utv.Update(transaction);
				}
				
				transaction.Commit();
				Usr.Current.UpdatePlacesVisitCount(true);
			}
			this.uiSaveButton.Attributes["disabled"] = "true";


		}
コード例 #2
0
ファイル: Flyer_Tests.cs プロジェクト: davelondon/dontstayin
		public void CountUsrs_PlaceConditions_NotIncludingIfUsrHasBeenToEventInTown()
		{
			new Delete(TablesEnum.Usr, new Q(true)).Run();

			Random r = new Random();
			List<int> placeKs = new List<int>() { 1, 2, 3, 4 };
			List<int> notPlaceKs = new List<int>() { 5, 6, 7, 8, 9, 10, 11 };

			int usrsToCreate = 15;
			int usrs = 0;
			usrsToCreate.Times(() =>
			{
				Usr u = new Usr()
				{
					Email = Guid.NewGuid().ToString(),
					IsSkeleton = false,
					IsEmailVerified = true,
					SendFlyers = true
				};
				u.Update();

				int i = r.Next(placeKs.Count + notPlaceKs.Count);
				int placeK;
				if (i < placeKs.Count)
				{
					usrs++;
					placeK = placeKs[i];
				}
				else
				{
					placeK = notPlaceKs[i - placeKs.Count];
				}
				UsrPlaceVisit up = new UsrPlaceVisit()
				{
					UsrK = u.K,
					PlaceK = placeK
				};
				up.Update();
			});

			Assert.AreEqual(usrs, Flyer.CountUsrs(placeKs, new List<int>(), false));
		}
コード例 #3
0
ファイル: Home.ascx.cs プロジェクト: davelondon/dontstayin
		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;
					}
				}
				
			}
		}
コード例 #4
0
ファイル: Home.ascx.cs プロジェクト: davelondon/dontstayin
		public void VisitCheckChange(object o, System.EventArgs e)
		{
			Usr.KickUserIfNotLoggedIn("");
			try
			{
				UsrPlaceVisit upv = new UsrPlaceVisit(Usr.Current.K, CurrentPlace.K);
				if (!VisitCheck.Checked)
				{
					upv.Delete();
					upv.Update();
					Usr.Current.UpdatePlacesVisitCount(true);
				}
			}
			catch
			{
				if (VisitCheck.Checked)
				{
					UsrPlaceVisit upvNew = new UsrPlaceVisit();
					upvNew.UsrK = Usr.Current.K;
					upvNew.PlaceK = CurrentPlace.K;
					upvNew.Update();
					Usr.Current.UpdatePlacesVisitCount(true);
				}
			}
		}
コード例 #5
0
ファイル: Login.ascx.cs プロジェクト: davelondon/dontstayin
		static void updateFromDetailsData(Usr u, Hashtable detailsPanelData)
		{

			Place p = new Place((int)detailsPanelData["PlaceK"]);
			u.HomePlaceK = p.K;
			u.AddressCountryK = p.CountryK;

			MusicType mt = new MusicType((int)detailsPanelData["MusicTypeK"]);
			u.FavouriteMusicTypeK = mt.K;

			#region update UsrMusicTypeFavourite table
			try
			{
				UsrMusicTypeFavourite umf = new UsrMusicTypeFavourite();
				umf.UsrK = u.K;
				umf.MusicTypeK = mt.K;
				umf.Update();

				u.UpdateMusicTypesFavouriteCount(false);
			}
			catch { }
			#endregion

			#region update UsrPlaceVisit table
			try
			{
				UsrPlaceVisit upv = new UsrPlaceVisit();
				upv.UsrK = u.K;
				upv.PlaceK = p.K;
				upv.Update();

				u.UpdatePlacesVisitCount(false);
			}
			catch { }
			#endregion

			#region Facebook
			u.FacebookStory = (bool)detailsPanelData["Facebook"];
			u.FacebookStory1 = (bool)detailsPanelData["Facebook"];

			u.FacebookEventAdd = (bool)detailsPanelData["Facebook"];
			u.FacebookEventAttend = (bool)detailsPanelData["Facebook"];

			u.FacebookStoryAttendEvent = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryBuyTicket = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryEventReview = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryFavourite = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryJoinGroup = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryLaugh = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryNewBuddy = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryNewTopic = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryPhotoFeatured = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryPostNews = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryPublishArticle = (bool)detailsPanelData["Facebook"];
			u.FacebookStorySpotted = (bool)detailsPanelData["Facebook"];
			u.FacebookStoryUploadPhoto = (bool)detailsPanelData["Facebook"];

			#endregion

			#region WeeklyEmail
			u.SendSpottedEmails = (bool)detailsPanelData["WeeklyEmail"];
			#endregion

			#region PartyInvites
			u.SendSpottedTexts = (bool)detailsPanelData["PartyInvites"];
			u.SendFlyers = (bool)detailsPanelData["PartyInvites"];
			u.SendInvites = (bool)detailsPanelData["PartyInvites"];
			#endregion

			u.AgreeTerms = true;
			u.LegalTermsUser2 = true;
			u.IsSkeleton = false;
			u.Update();

			#region update Prefs

			if (mt.K != 1)
				Prefs.Current["MusicPref"] = mt.K;

			if (p.CountryK != 224)
				Prefs.Current["HomeCountryK"] = p.CountryK;

			if (mt.K != 1 || p.CountryK != 224)
				Prefs.Current.Update();

			#endregion
		}
コード例 #6
0
ファイル: Flyer_Tests.cs プロジェクト: davelondon/dontstayin
		private void CreateUsr(int musicTypeK, int homePlaceK, int eventPlaceK, int visitPlaceK, bool isPromoter)
		{
			Usr u = new Usr()
			{
				Email = Guid.NewGuid().ToString(),
				IsSkeleton = false,
				IsEmailVerified = true,
				SendFlyers = true,
				HomePlaceK = homePlaceK,
				IsPromoter = isPromoter
			};
			u.Update();

			UsrMusicTypeFavourite um = new UsrMusicTypeFavourite()
			{
				UsrK = u.K,
				MusicTypeK = musicTypeK
			};
			um.Update();



			Venue v = new Venue()
			{
				PlaceK = eventPlaceK
			};
			v.Update();

			Event e = new Event()
			{
				VenueK = v.K
			};
			e.Update();

			UsrEventAttended ue = new UsrEventAttended()
			{
				UsrK = u.K,
				EventK = e.K
			};
			ue.Update();


			UsrPlaceVisit up = new UsrPlaceVisit()
			{
				UsrK = u.K,
				PlaceK = visitPlaceK
			};
			up.Update();
		}
コード例 #7
0
ファイル: Welcome.ascx.cs プロジェクト: davelondon/dontstayin
		public void PrefsUpdateClick(object o, System.EventArgs e)
		{
			Page.Validate();
			bool sendVerifyEmail = false;
			if (Page.IsValid)
			{
				#region Handle change of email address
				if (Usr.Current.Email != Email.Text)
				{
					//Check for duplicate email addresses in the database
					Query q = new Query();
					q.QueryCondition = new Q(Usr.Columns.Email, Email.Text);
					q.ReturnCountOnly = true;
					UsrSet ds = new UsrSet(q);

					if (ds.Count == 0)
					{
						//No duplicate - update email address
						Usr.Current.AdminNote += "\nThis user changed their email address from " + Usr.Current.Email + " to " + Email.Text + " on " + DateTime.Now.ToString();
						Usr.Current.Email = Email.Text;
						Usr.Current.EmailDateTime = DateTime.Now;
						if (HttpContext.Current != null)
							Usr.Current.EmailIp = Utilities.TruncateIp(HttpContext.Current.Request.ServerVariables["REMOTE_HOST"]);
						Usr.Current.IsEmailVerified = false;
						Usr.Current.IsEmailBroken = false;
						sendVerifyEmail = true;
					}
					else
					{
						//Duplicate - display error
						EmailDuplicateValidator.IsValid = false;
					}
				}
				#endregion
				#region Handle phone number entry
				System.Text.RegularExpressions.Regex rNumbers = new System.Text.RegularExpressions.Regex("[^0123456789]");
				string mobileNumber = rNumbers.Replace(MobileNumber.Text.Trim(), "");
				string dialingCode = rNumbers.Replace(DialingCodeDropDown.SelectedValue, "");
				string dialingCodeOther = rNumbers.Replace(DialingCodeOther.Text.Trim(), "");
				string fullMobile = "";
				if (mobileNumber.StartsWith("0"))
				{
					mobileNumber = mobileNumber.Substring(1);
				}
				if (dialingCode.Equals("0"))
				{
					dialingCode = dialingCodeOther;
				}
				if (mobileNumber.Length > 0)
				{
					fullMobile = dialingCode + mobileNumber;
				}
				if (MobileNumber.Text != mobileNumber)
					MobileNumber.Text = mobileNumber;
				if (DialingCodeDropDown.SelectedValue.Equals("0") && DialingCodeOther.Text != dialingCode)
					DialingCodeOther.Text = dialingCode;
				#endregion

				//Database will only update if all validators are valid
				if (Page.IsValid)
				{
					Usr.Current.FirstName = Cambro.Web.Helpers.StripHtml(FirstName.Text).Trim();
					Usr.Current.LastName = Cambro.Web.Helpers.StripHtml(LastName.Text).Trim();
					string nick = Usr.GetCompliantNickName(NickName.Text);
					Usr.Current.NickName = nick;
					Usr.Current.IsSkeleton = false;

					if (!Usr.Current.Mobile.Equals(fullMobile))
						Usr.Current.AdminNote += "\n\nUsr has changed mobile number from " + Usr.Current.Mobile + " to: " + fullMobile + " on " + DateTime.Now.ToString() + ".\n";

					Usr.Current.Mobile = fullMobile;
					Usr.Current.MobileCountryCode = dialingCode;
					Usr.Current.MobileNumber = mobileNumber;
					Usr.Current.IsMale = SexMale.Checked;
					Usr.Current.IsFemale = SexFemale.Checked;
					Usr.Current.DateOfBirth = new DateTime(int.Parse(DateOfBirthYear.Text), int.Parse(DateOfBirthMonth.Text), int.Parse(DateOfBirthDay.Text));
					Usr.Current.SendSpottedEmails = SendSpottedEmails.Checked;
					Usr.Current.SendSpottedTexts = SendSpottedTexts.Checked;
					Usr.Current.SendFlyers = SendFlyers.Checked;
					Usr.Current.SendInvites = SendInvites.Checked;
					Usr.Current.LegalTermsUser2 = true;
					Usr.Current.IsDj = IsDjYes.Checked;

					#region Update hometown and add UsrPlaceVisit record for this place
					Place p = new Place(int.Parse(HomeTownDropDownList.SelectedValue));
					if (Usr.Current.HomePlaceK != p.K)
					{
						Usr.Current.HomePlaceK = p.K;

						try
						{
							UsrPlaceVisit upv = new UsrPlaceVisit(Usr.Current.K, p.K);
						}
						catch
						{
							UsrPlaceVisit upv = new UsrPlaceVisit();
							upv.UsrK = Usr.Current.K;
							upv.PlaceK = p.K;
							upv.Update();
						}
					}
					Usr.Current.UpdatePlacesVisitCount(false);
					#endregion

					#region Update favourite music and add UsrMusicTypeFavourite record for this musictype
					MusicType mt = new MusicType(int.Parse(FavouriteMusicDropDownList.SelectedValue));
					if (Usr.Current.FavouriteMusicTypeK != mt.K)
					{
						Usr.Current.FavouriteMusicTypeK = mt.K;

						Prefs.Current["MusicPref"] = mt.K;

						try
						{
							UsrMusicTypeFavourite newMtf = new UsrMusicTypeFavourite(Usr.Current.K, mt.K);
						}
						catch
						{
							UsrMusicTypeFavourite newMtf = new UsrMusicTypeFavourite();
							newMtf.UsrK = Usr.Current.K;
							newMtf.MusicTypeK = mt.K;
							newMtf.Update();
						}
					}
					Usr.Current.UpdateMusicTypesFavouriteCount(false);
					#endregion

					if (!Usr.Current.IsSkeletonFromSignup && Password2.Text.Length > 0)
					{
						//Remove all saved cards...
						Usr.Current.DeleteAllSavedCards();
						Usr.Current.SetPassword(Password2.Text.Trim(), false);
					}

					Usr.Current.Update();

					if (Usr.Current.GroupsWhoHavePendingInvitationsForMe.Count > 0)
					{
						foreach (GridViewRow gvr in uiAddedByGroupsGridView.Rows)
						{
							if (((CheckBox)gvr.FindControl("uiCheckBox")).Checked)
							{
								int groupK = (int)uiAddedByGroupsGridView.DataKeys[gvr.RowIndex].Value;
								try
								{
									Group g = new Group(groupK);
									GroupUsr gu = g.GetGroupUsr(Usr.Current);
									if (Bobs.Group.AllowJoinRequest(Usr.Current, g, gu))
										g.Join(Usr.Current, gu);
								}
								catch { }
							}
						}
					}
					if (Usr.Current.UsrsWhoHavePendingBuddyRequestsForMe.Count > 0)
					{
						foreach (GridViewRow gvr in uiAddedByUsrsGridView.Rows)
						{
							if (((CheckBox)gvr.FindControl("uiCheckBox")).Checked)
							{
								int buddyUsrK = (int)uiAddedByUsrsGridView.DataKeys[gvr.RowIndex].Value;
								try
								{
									Usr.Current.AddBuddy(new Usr(buddyUsrK), Usr.AddBuddySource.WelcomePage, Buddy.BuddyFindingMethod.Nickname, null);
								}
								catch (Exception ex) { SpottedException.TryToSaveExceptionAndChildExceptions(ex, HttpContext.Current, Usr.Current, Visit.Current, "", "Welcome page", "", 0, null); }
							}
						}
					}

					#region Send email verify email, if needed
					if (sendVerifyEmail)
					{
						Mailer mail = new Mailer();
						mail.SendEvenIfUnverifiedOrBroken = true;
						mail.Subject = "You changed your DontStayIn email address...";
						mail.Body = @"<h1>You changed your email address...</h1><p>Please click the following link to verify your email address and allow posting to our discussion boards:</p>
<p align=""center"" style=""padding:8px 0px 9px 0px;""><a href=""[LOGIN]"" style=""font-size:14px;font-weight:bold;"">Click here to verify your email</a></p>";
						mail.To = Usr.Current.Email;
						mail.UsrRecipient = Usr.Current;
						mail.TemplateType = Mailer.TemplateTypes.AnotherSiteUser;
						mail.Send();
					}
					#endregion

					Log.Increment(Log.Items.WelcomeSignUp);

					if (Usr.Current.AddedByGroupK > 0)
					{
						if (Request.QueryString["Url"] != null && Request.QueryString["Url"].Length > 0)
							Response.Redirect(Request.QueryString["Url"]);
						else
							Response.Redirect(Usr.Current.AddedByGroup.Url());
					}
					else
					{
						if (Request.QueryString["Url"] != null && Request.QueryString["Url"].Length > 0)
							Response.Redirect("/popup/mixmag?url=" + HttpUtility.UrlEncode(Request.QueryString["Url"]));
						else
							Response.Redirect("/popup/mixmag");
					}
				}
			}
		}
コード例 #8
0
ファイル: Edit.ascx.cs プロジェクト: davelondon/dontstayin
        public void PrefsUpdateClick(object o, System.EventArgs e)
		{
			string PreviousUrlFilterPart = ThisUsr.UrlFilterPart;
			ChangePanel(PrefsUpdatePanel);
			Page.Validate();
			//bool doUpdate = false;
			bool sendVerifyEmail = false;
			if (Page.IsValid)
			{
				if (ThisUsr.Email != Email.Text)
				{
					//Email has changed - check email

					//Check for duplicates email addresses in the database
					UsrSet ds = new UsrSet(new Query(new Q(Usr.Columns.Email, Email.Text)));

					if (ds.Count == 0)
					{
						//No duplicate - update email address
						ThisUsr.AdminNote += "\nThis user changed their email address from " + ThisUsr.Email + " to " + Email.Text + " on " + DateTime.Now.ToString();
						ThisUsr.Email = Email.Text;
						ThisUsr.EmailDateTime = DateTime.Now;
						if (HttpContext.Current != null)
							ThisUsr.EmailIp = Utilities.TruncateIp(HttpContext.Current.Request.ServerVariables["REMOTE_HOST"]);
						ThisUsr.IsEmailVerified = false;
						ThisUsr.IsEmailBroken = false;
						sendVerifyEmail = true;
						//doUpdate = true;
					}
					else
					{
						//Duplicate - display error
						emailDuplicateValidator.IsValid = false;
					}
				}
				Regex rNumbers = new Regex("[^0123456789]");
				string mobileNumber = rNumbers.Replace(MobileNumber.Text.Trim(), "");
				string dialingCode = rNumbers.Replace(DialingCodeDropDown.SelectedValue, "");
				string dialingCodeOther = rNumbers.Replace(DialingCodeOther.Text.Trim(), "");
				string fullMobile = "";
				if (mobileNumber.StartsWith("0"))
				{
					mobileNumber = mobileNumber.Substring(1);
				}
				if (dialingCode.Equals("0"))
				{
					dialingCode = dialingCodeOther;
				}
				if (mobileNumber.Length > 0)
				{
					fullMobile = dialingCode + mobileNumber;
				}
				if (MobileNumber.Text != mobileNumber)
					MobileNumber.Text = mobileNumber;
				if (DialingCodeDropDown.SelectedValue.Equals("0") && DialingCodeOther.Text != dialingCode)
					DialingCodeOther.Text = dialingCode;

				string nick = Usr.GetCompliantNickName(NickName.Text);
                if (ThisUsr.NickName != nick && nick.ToUpper().Contains("-DSI") && !ThisUsr.IsAdmin)
                {
                    throw new DsiUserFriendlyException("Invalid user name. Please try another.");
                }

				//Database will only update if all validators are valid and doUpdate has been set to true by a change
				if (Page.IsValid)
				{
					ThisUsr.FirstName = Cambro.Web.Helpers.StripHtml(FirstName.Text);
					ThisUsr.LastName = Cambro.Web.Helpers.StripHtml(LastName.Text);
					if (NickName.Text.Length > 20)
                        throw new DsiUserFriendlyException("Nickname must be 20 chars or less!");

					ThisUsr.NickName = nick;

					if (!ThisUsr.Mobile.Equals(fullMobile))
						ThisUsr.AdminNote += "\n\nUsr has changed mobile number from " + ThisUsr.Mobile + " to: " + fullMobile + " on " + DateTime.Now.ToString() + ".\n";

					ThisUsr.Mobile = fullMobile;
					ThisUsr.MobileCountryCode = dialingCode;
					ThisUsr.MobileNumber = mobileNumber;

					ThisUsr.AddressArea = Cambro.Web.Helpers.StripHtml(AddressAreaTextBox.Text);
					ThisUsr.AddressPostcode = Cambro.Web.Helpers.StripHtml(AddressPostcodeTextBox.Text);
					ThisUsr.AddressCountryK = Convert.ToInt32(AddressCountryDropDownList.SelectedValue);
					ThisUsr.AddressCounty = Cambro.Web.Helpers.StripHtml(AddressCountyTextBox.Text);
					ThisUsr.AddressStreet = Cambro.Web.Helpers.StripHtml(AddressStreetTextBox.Text);
					ThisUsr.AddressTown = Cambro.Web.Helpers.StripHtml(AddressTownTextBox.Text);
					
					ThisUsr.IsMale = SexMale.Checked;
					ThisUsr.IsFemale = SexFemale.Checked;
					ThisUsr.IsDj = IsDjYes.Checked;
					ThisUsr.DateOfBirth = new DateTime(int.Parse(DateOfBirthYear.Text), int.Parse(DateOfBirthMonth.Text), int.Parse(DateOfBirthDay.Text));
					
					//Place p = new Place(int.Parse(HomeTownDropDownList.SelectedValue));
					Place p = HomeTownPlacePicker.Place;
					if (ThisUsr.HomePlaceK != p.K)
					{
						ThisUsr.HomePlaceK = p.K;

						ThisUsr.Home = null;

						try
						{
							UsrPlaceVisit upv = new UsrPlaceVisit(ThisUsr.K, p.K);
						}
						catch
						{
							UsrPlaceVisit upv = new UsrPlaceVisit();
							upv.UsrK = ThisUsr.K;
							upv.PlaceK = p.K;
							upv.Update();
						}
						ThisUsr.UpdatePlacesVisitCount(false);
					}
					
					if (ThisUsr.K == Usr.Current.K && !ThisUsr.IsOfLegalDrinkingAgeInHomeCountry)
						Prefs.Current.Remove("Drink");

					bool changeMusicPref = false;
					MusicType mt = new MusicType(int.Parse(FavouriteMusicDropDownList.SelectedValue));
					if (ThisUsr.FavouriteMusicTypeK != mt.K)
					{
						changeMusicPref = true;
						ThisUsr.FavouriteMusicTypeK = mt.K;
					}

					if (sendVerifyEmail)
					{
						ThisUsr.LoginString = Cambro.Misc.Utility.GenRandomText(6);
					}

					ThisUsr.Update();
					Usr.Current = null;

					if (changeMusicPref)
					{
						if (ThisUsr.K == Usr.Current.K)
							Prefs.Current["MusicPref"] = mt.K;

						try
						{
							UsrMusicTypeFavourite newMtf = new UsrMusicTypeFavourite(ThisUsr.K, mt.K);
						}
						catch
						{
							UsrMusicTypeFavourite newMtf = new UsrMusicTypeFavourite();
							newMtf.UsrK = ThisUsr.K;
							newMtf.MusicTypeK = mt.K;
							newMtf.Update();
						}
						ThisUsr.UpdateMusicTypesFavouriteCount(true);
					}


					SuccessDiv.Visible = true;
					if (sendVerifyEmail)
					{
						Mailer mail = new Mailer();
						mail.Subject = "You changed your DontStayIn registered email address...";
						mail.Body = @"<h1>You changed your email address...</h1><p>Please click the following link to verify your email address and allow posting to our discussion boards:</p>
<p align=""center"" style=""padding:8px 0px 9px 0px;""><a href=""[LOGIN]"" style=""font-size:14px;font-weight:bold;"">Click here to verify your email</a></p>";
						mail.To = ThisUsr.Email;
						mail.UsrRecipient = ThisUsr;
						mail.TemplateType = Mailer.TemplateTypes.AnotherSiteUser;
						mail.SendEvenIfUnverifiedOrBroken = true;
						mail.Send();
					}
					if (Request.QueryString["Url"] != null && Request.QueryString["Url"].Length > 0)
						Response.Redirect(Request.QueryString["Url"]);
					else
						Response.Redirect(ThisUsr.UrlApp("edit") + "?done=1");

					//if (!PreviousUrlFilterPart.Equals(ThisUsr.UrlFilterPart))
						//Response.Redirect(ThisUsr.UrlApp("edit"));
				}
			}
		}