public override void Execute(object parameter)
		{
			var urlParser = new UrlParser("/edit");
			var friendly = (parameter as FriendlyDocument);
			if (friendly != null)
			{
				urlParser.SetQueryParam(friendly.IsProjection ? "projection" : "id", friendly.Id);
				
				if (friendly.NeighborsIds != null)
					urlParser.SetQueryParam("neighbors", string.Join(",", friendly.NeighborsIds));
			}

			UrlUtil.Navigate(urlParser.BuildUrl());
		}
Пример #2
0
		public override void Execute(object parameter)
		{
			var urlParser = new UrlParser("/edit");

			if (string.IsNullOrEmpty(viewableDocument.Id))
			{
				var key = ProjectionData.Projections.First(x => x.Value == viewableDocument).Key;
				urlParser.SetQueryParam("projection", key);
			}
			else
			{
				urlParser.SetQueryParam("id", viewableDocument.Id);
			}

			UrlUtil.Navigate(urlParser.BuildUrl());
		}
Пример #3
0
		public override void Execute(object parameter)
		{
			var urlParser = new UrlParser("/edit");

			if (string.IsNullOrEmpty(viewableDocument.Id))
			{
				var projection = viewableDocument.InnerDocument.ToJson().ToString(Formatting.None);
				urlParser.SetQueryParam("projection", projection);
			}
			else
			{
				urlParser.SetQueryParam("id", viewableDocument.Id);
			}

			UrlUtil.Navigate(urlParser.BuildUrl());
		}
Пример #4
0
		public override void Execute(object parameter)
		{
			bool shouldRedirect = true;

			var urlParser = new UrlParser(UrlUtil.Url);
			if (urlParser.GetQueryParam("database") == databaseName)
				shouldRedirect = false;

			urlParser.SetQueryParam("database", databaseName);

			var server = ApplicationModel.Current.Server.Value;
			server.SetCurrentDatabase(urlParser);
			server.SelectedDatabase.Value.AsyncDatabaseCommands
				.EnsureSilverlightStartUpAsync()
				.Catch();

			var updateAllFromServer = View.UpdateAllFromServer();
			refreshStaticModels
				.Except(updateAllFromServer.Select(x=>x.GetType()))
				.Select(model => (Model) Activator.CreateInstance(model))
				.ForEach(model => model.ForceTimerTicked());
			
			
			if (shouldRedirect)
			{
				UrlUtil.Navigate(urlParser.BuildUrl());
			}
		}
Пример #5
0
		private void PutCollectionNameInTheUrl()
		{
			var urlParser = new UrlParser(UrlUtil.Url);
			var collection = SelectedCollection.Value;
			if (collection == null)
				return;
			var name = collection.Name;
			initialSelectedDatabaseName = name;
			if (urlParser.GetQueryParam("name") != name)
			{
				urlParser.SetQueryParam("name", name);
				UrlUtil.Navigate(urlParser.BuildUrl());
			}
		}
Пример #6
0
        // EnsureDatabaseParameterIncluded
        private void ContentFrame_Navigating(object sender, NavigatingCancelEventArgs e)
        {
            if (navigationMode != NavigationMode.New) return;

            var urlParser = new UrlParser(e.Uri.ToString());
            if (urlParser.GetQueryParam("database") != null)
                return;

            e.Cancel = true;
            navigationMode = NavigationMode.Refresh;
            urlParser.SetQueryParam("database", ApplicationModel.Current.Server.Value.SelectedDatabase.Value.Name);
            urlParser.NavigateTo();
            navigationMode = NavigationMode.New;
        }
Пример #7
0
		public override void Execute(object parameter)
		{
			bool shouldRedirect = true;

			var urlParser = new UrlParser(UrlUtil.Url);
			if (urlParser.GetQueryParam("database") == databaseName)
				shouldRedirect = false;

			urlParser.SetQueryParam("database", databaseName);

			var server = ApplicationModel.Current.Server.Value;
			server.SetCurrentDatabase(urlParser);
			server.SelectedDatabase.Value.AsyncDatabaseCommands
				.EnsureSilverlightStartUpAsync()
				.Catch();

			if (shouldRedirect)
			{
				UrlUtil.Navigate(urlParser.BuildUrl());
			}
		}
Пример #8
0
	    private void PutCollectionNameInTheUrl()
		{
			var urlParser = new UrlParser(UrlUtil.Url);
			var collection = SelectedCollection.Value;
			if (collection == null)
				return;
			var name = collection.Name;
			initialSelectedCollectionName = name;
			if (urlParser.GetQueryParam("collection") != name)
			{
			    if (name != "")
			    {
			        urlParser.SetQueryParam("collection", name);
			    }
			    else
			    {
			        urlParser.RemoveQueryParam("collection");
			    }

			    UrlUtil.Navigate(urlParser.BuildUrl());
			}
		}
Пример #9
0
 private void SelectDatabase(DatabaseModel database)
 {
     var urlParser = new UrlParser(UrlUtil.Url);
     urlParser.SetQueryParam("database", database.Name);
     urlParser.NavigateTo();
 }
Пример #10
0
		private void NavigateToPage(int pageOffset)
		{
			var skip1 = Skip + pageOffset*PageSize;
			Skip = (short) skip1;

			if (IsSkipBasedOnTheUrl)
			{
				var urlParser = new UrlParser(UrlUtil.Url);
				urlParser.SetQueryParam("skip", Skip);
				UrlUtil.Navigate(urlParser.BuildUrl());
			}

			OnPagerChanged();
		}
Пример #11
0
		public override Task TimerTickedAsync()
		{
			return documentStore.AsyncDatabaseCommands.GetDatabaseNamesAsync(1024)
				.ContinueOnSuccess(names =>
									{
										Databases.Match(defaultDatabase.Concat(names).ToArray());
										if (firstTick == false)
											return;

										firstTick = false;
										if (UserInfoSet == false)
											UpdateUserInfo();

										if (UserInfo != null && UserInfo.IsAdminGlobal)
										{
											ApplicationModel.Current.Server.Value.DocumentStore
															.AsyncDatabaseCommands
															.ForSystemDatabase()
															.GetAsync("Raven/StudioConfig")
															.ContinueOnSuccessInTheUIThread(doc =>
															{
																if (doc != null && doc.DataAsJson.ContainsKey("WarnWhenUsingSystemDatabase"))
																{
																	if (doc.DataAsJson.Value<bool>("WarnWhenUsingSystemDatabase") == false)
																		UrlUtil.Navigate("/documents");
																}
															});
										}

										var url = new UrlParser(UrlUtil.Url);

										if (url.QueryParams.ContainsKey("database") == false && (names.Length == 0 || (names.Length == 1 && names[0] == Constants.SystemDatabase)))
											CreateNewDatabase = true;

										if (string.IsNullOrEmpty(Settings.Instance.SelectedDatabase))
											return;

										if (Settings.Instance.SelectedDatabase != null && names.Contains(Settings.Instance.SelectedDatabase))
										{
											if (url.QueryParams.ContainsKey("database") == false)
											{
												url.SetQueryParam("database", Settings.Instance.SelectedDatabase);
												SetCurrentDatabase(url);
											}

											if (string.IsNullOrWhiteSpace(url.Path))
												UrlUtil.Navigate(Settings.Instance.LastUrl);
										}
									})
				.Catch();
		}
Пример #12
0
		private void NavigateToPage(int pageOffset)
		{
			var skip1 = Skip + pageOffset*PageSize;
			Skip = (ushort) skip1;
			var urlParser = new UrlParser(UrlUtil.Url);
			urlParser.SetQueryParam("skip", Skip);
			UrlUtil.Navigate(urlParser.BuildUrl());

			if (Navigated != null)
				Navigated(this, EventArgs.Empty);
		}
Пример #13
0
 private void NavigateToPage(int pageOffset)
 {
     var urlParser = new UrlParser(UrlUtil.Url);
     urlParser.SetQueryParam("skip", skip + pageOffset * PageSize);
     urlParser.NavigateTo();
 }
Пример #14
0
		public override Task TimerTickedAsync()
		{
			return documentStore.AsyncDatabaseCommands.GetDatabaseNamesAsync(1024)
				.ContinueOnSuccess(names =>
				                   	{
				                   		Databases.Match(defaultDatabase.Concat(names).ToArray());
				                   		if (firstTick == false)
				                   			return;

				                   		firstTick = false;

				                   		ApplicationModel.Current.Server.Value.DocumentStore
				                   		                .AsyncDatabaseCommands
				                   		                .ForSystemDatabase()
				                   		                .GetAsync("Raven/StudioConfig")
				                   		                .ContinueWith(task =>
				                   		                {
					                   		                if (task.IsFaulted == false)
					                   		                {
						                   		                Execute.OnTheUI(() =>
						                   		                {
							                   		                if (task.Result != null &&
							                   		                    task.Result.DataAsJson.ContainsKey("WarnWhenUsingSystemDatabase"))
							                   		                {
								                   		                if (task.Result.DataAsJson.Value<bool>("WarnWhenUsingSystemDatabase") ==
								                   		                    false)
									                   		                UrlUtil.Navigate("/documents");
							                   		                }
						                   		                });

					                   		                }
					                   		                else
					                   		                {
						                   		                GC.KeepAlive(task.Exception); // ignoring the exeption
					                   		                }
				                   		                });
				                  

				                   		var url = new UrlParser(UrlUtil.Url);

				                   		if (url.QueryParams.ContainsKey("database") == false && (names.Length == 0 || (names.Length == 1 && names[0] == Constants.SystemDatabase)))
				                   			CreateNewDatabase = true;

				                   		if (string.IsNullOrEmpty(Settings.Instance.SelectedDatabase)) 
											return;

										if (Settings.Instance.SelectedDatabase != null && names.Contains(Settings.Instance.SelectedDatabase))
										{
											if (url.QueryParams.ContainsKey("database") == false)
											{
												url.SetQueryParam("database", Settings.Instance.SelectedDatabase);
												SetCurrentDatabase(url);
											}

											if(string.IsNullOrWhiteSpace(url.Path))
												UrlUtil.Navigate(Settings.Instance.LastUrl);
										}
				                   	})
				.Catch();
		}
Пример #15
0
		public override Task TimerTickedAsync()
		{
            if(IsConnected.Value == false)
            {
                DocumentStore.AsyncDatabaseCommands
                    .GetStatisticsAsync()
                    .ContinueOnSuccess(stats =>
                    {
                        IsConnected.Value = true;
                        var url = UrlUtil.Url;
                        SelectedDatabase.Value = new DatabaseModel(Constants.SystemDatabase, documentStore);
                        Initialize();
                        SetCurrentDatabase(new UrlParser(url));
                    });
            }

			if (singleTenant)
				return null;

            //if (SelectedDatabase.Value.HasReplication)
            //    SelectedDatabase.Value.UpdateReplicationOnlineStatus();

			return documentStore.AsyncDatabaseCommands.GetDatabaseNamesAsync(1024)
				.ContinueOnSuccess(names =>
				                   	{
				                   		Databases.Match(defaultDatabase.Concat(names).ToArray());
				                   		if (firstTick == false)
				                   			return;

				                   		firstTick = false;

				                   	    ApplicationModel.Current.Server.Value.DocumentStore
				                   	        .AsyncDatabaseCommands
				                   	        .ForDefaultDatabase()
				                   	        .GetAsync("Raven/StudioConfig")
				                   	        .ContinueOnSuccessInTheUIThread(doc =>
				                   	        {
				                   	            if (doc != null && doc.DataAsJson.ContainsKey("WarnWhenUsingSystemDatabase"))
				                   	            {
				                   	                if (doc.DataAsJson.Value<bool>("WarnWhenUsingSystemDatabase") == false)
				                   	                    UrlUtil.Navigate("/documents");
				                   	            }
				                   	        });

				                   		if (names.Length == 0 || (names.Length == 1 && names[0] == Constants.SystemDatabase))
				                   			CreateNewDatabase = true;

				                   		if (string.IsNullOrEmpty(Settings.Instance.SelectedDatabase)) 
											return;

				                   		var url = new UrlParser(UrlUtil.Url);

										if (Settings.Instance.SelectedDatabase != null && names.Contains(Settings.Instance.SelectedDatabase))
										{
											if (url.QueryParams.ContainsKey("database") == false)
											{
												url.SetQueryParam("database", Settings.Instance.SelectedDatabase);
												SetCurrentDatabase(url);
											}

											if(string.IsNullOrWhiteSpace(url.Path))
												UrlUtil.Navigate(Settings.Instance.LastUrl);
										}
				                   	})
				.Catch();
		}