Example #1
0
		public void Initialize()
		{
			RegisterViewsAndServices();
			RegisterConfigurationViews();
			if (_authContext.CheckPermission(PredefinedPermissions.OrdersAll))
			{
				var navigationManager = _container.Resolve<NavigationManager>();
				//Register home view
				var homeViewModel = _container.Resolve<IOrderHomeViewModel>();
				var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

				navigationManager.RegisterNavigationItem(homeNavItem);

				//Register menu view
				var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName);
				menuNavItem.NavigateCommand =
					new DelegateCommand<NavigationItem>((x) => { navigationManager.Navigate(homeNavItem); });
				menuNavItem.Caption = "Orders";
				menuNavItem.ImageResourceKey = "Icon_Module_Orders";
				menuNavItem.ItemBackground = Colors.OrangeRed;
				menuNavItem.Order = 51;

				navigationManager.RegisterNavigationItem(menuNavItem);
			}
		}
Example #2
0
		public void Initialize()
		{
			RegisterViewsAndServices();

			if (_authContext.CheckPermission(PredefinedPermissions.CustomersViewAllCasesAll) ||
				_authContext.CheckPermission(PredefinedPermissions.CustomersViewAssignedCases))
			{
				var navigationManager = _container.Resolve<NavigationManager>();

				//Register menu item
				var homeViewModel = _container.Resolve<ICustomersMainViewModel>();
				var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

				navigationManager.RegisterNavigationItem(homeNavItem);

			    var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
			    {
			        NavigateCommand = new DelegateCommand<NavigationItem>((x) => navigationManager.Navigate(homeNavItem)),
                    Caption = "Customer Service",
                    Category = NavigationNames.ModuleName,
			        ImageResourceKey = "Icon_Module_Customers",
			        ItemBackground = Color.FromRgb(248, 154, 45),
			        Order = 52
			    };

			    navigationManager.RegisterNavigationItem(menuNavItem);
			}

		}
		public void Initialize()
		{
			RegisterViewsAndServices();
			RegisterConfigurationViews();
			if (_authContext.CheckPermission(PredefinedPermissions.MarketingContent_PublishingManage) ||
				_authContext.CheckPermission(PredefinedPermissions.MarketingDynamic_ContentManage) ||
				_authContext.CheckPermission(PredefinedPermissions.MarketingPromotionsManage))
			{

				var navigationManager = _container.Resolve<NavigationManager>();
				//Register main view
				var homeViewModel = _container.Resolve<IMainMarketingViewModel>();
				var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

				navigationManager.RegisterNavigationItem(homeNavItem);

				//Register menu view
			    var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
			    {
			        NavigateCommand = new DelegateCommand<NavigationItem>((x) => { navigationManager.Navigate(homeNavItem); }),
                    Caption = "Marketing",
                    Category = NavigationNames.ModuleName,
			        ImageResourceKey = "Icon_Module_Promotions",
			        ItemBackground = Color.FromRgb(244, 189, 26),
			        Order = 40
			    };
			    navigationManager.RegisterNavigationItem(menuNavItem);
			}
		}
        public void Initialize()
        {
            RegisterViewsAndServices();
            RegisterConfigurationViews();
            if (_authContext.CheckPermission(PredefinedPermissions.ReportingViewReports))
            {
                var navigationManager = _container.Resolve<NavigationManager>();
                //Register home view
                var homeViewModel = _container.Resolve<IReportingHomeViewModel>();
                var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

                navigationManager.RegisterNavigationItem(homeNavItem);

                //Register menu view
                var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
                {
                    NavigateCommand = new DelegateCommand<NavigationItem>((x) => navigationManager.Navigate(homeNavItem)),
                    Caption = "Reports",
                    ImageResourceKey = "Icon_Module_Reporting",
                    ItemBackground = Colors.LightSlateGray,
                    Order = 51
                };

                navigationManager.RegisterNavigationItem(menuNavItem);
            }
        }
Example #5
0
        public void Initialize()
        {
            try
            {
                _installer = _container.Resolve<BootstrapperApplication>();
            }
            catch
            {
            }

            RegisterViewsAndServices();

            if (_installer == null || (_installer.Command.Display == Display.Passive || _installer.Command.Display == Display.Full))
            {
                var navigationManager = _container.Resolve<NavigationManager>();

                var mainViewModel = _container.Resolve<IMainViewModel>();
                var mainNavigationItem = new NavigationItem(NavigationNames.Main, mainViewModel);
                navigationManager.RegisterNavigationItem(mainNavigationItem);

                var helpViewModel = _container.Resolve<IHelpViewModel>();
                var helpNavigationItem = new NavigationItem(NavigationNames.Help, helpViewModel);
                navigationManager.RegisterNavigationItem(helpNavigationItem);

                navigationManager.Navigate(mainNavigationItem);

                if (_installer != null) _installer.Engine.CloseSplashScreen();
            }
        }
		public void Initialize()
		{
			if (true)
			{
				RegisterViewsAndServices();
				RegisterConfigurationViews();

				if (_authContext.CheckPermission(PredefinedPermissions.FulfillmentPicklistsManage) ||
					_authContext.CheckPermission(PredefinedPermissions.FulfillmentInventoryReceive) ||
					_authContext.CheckPermission(PredefinedPermissions.FulfillmentReturnsManage))
				{
					var navigationManager = _container.Resolve<NavigationManager>();

					//Register menu item
					var homeViewModel = _container.Resolve<IMainFulfillmentViewModel>();
					var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

					navigationManager.RegisterNavigationItem(homeNavItem);

					var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
					{
					    NavigateCommand = new DelegateCommand<NavigationItem>((x) => { navigationManager.Navigate(homeNavItem); }),
                        Caption = "Fulfillment",
                        Category = NavigationNames.ModuleName,
					    ImageResourceKey = "Icon_Module_Fulfillment",
					    ItemBackground = Colors.DarkOliveGreen,
					    Order = 60
					};

				    navigationManager.RegisterNavigationItem(menuNavItem);
				}
			}
		}
		public void Initialize()
		{
			RegisterViewsAndServices();
			RegisterConfigurationViews();

			if (HasPermissions())
			{
				var navigationManager = _container.Resolve<NavigationManager>();
				//Register home view
				var homeViewModel = _container.Resolve<IConfigurationHomeViewModel>();
				var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);
				navigationManager.RegisterNavigationItem(homeNavItem);
				//Register menu view
				var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
					{
						NavigateCommand =
							new DelegateCommand<NavigationItem>((x) => { navigationManager.Navigate(homeNavItem); }),
                        Caption = "Settings",
                        Category = NavigationNames.ModuleName,
						ItemBackground = Color.FromRgb(132, 94, 178),
						ImageResourceKey = "Icon_Module_Settings",
						Order = 110
					};
				navigationManager.RegisterNavigationItem(menuNavItem);
			}
		}
        public void Initialize()
        {
            RegisterViewsAndServices();
            RegisterConfigurationViews();

            var navigationManager = _container.Resolve<NavigationManager>();

            //Register menu item
            var homeViewModel = _container.Resolve<IAppConfigSettingsViewModel>();
            var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

            navigationManager.RegisterNavigationItem(homeNavItem);
        }
		public void Initialize()
		{
			RegisterViewsAndServices();

			if (_authContext.CheckPermission(PredefinedPermissions.CatalogCatalogsManage))
			{
				//Register menu item
				IViewModel homeViewModel = _container.Resolve<ICatalogMainViewModel>();
				var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

				_navManager.RegisterNavigationItem(homeNavItem);

				var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName)
					{
						NavigateCommand = new DelegateCommand<NavigationItem>((x) => _navManager.Navigate(homeNavItem)),
						Caption = "Catalogs", 
                        Category = NavigationNames.ModuleName,
						ImageResourceKey = "Icon_Module_Catalogs",
						Order = 30,
						ItemBackground = Color.FromRgb(80, 133, 215)
					};
				_navManager.RegisterNavigationItem(menuNavItem);
			}

			if (_authContext.CheckPermission(PredefinedPermissions.PricingPrice_List_AssignmentsManage)
				|| _authContext.CheckPermission(PredefinedPermissions.PricingPrice_ListsManage))
			{
				//Register PRICELIST menu item
				IViewModel homeViewModel = _container.Resolve<IMainPriceListViewModel>();
				var homeNavItemPriceList = new NavigationItem(NavigationNames.HomeNamePriceList, homeViewModel);
				_navManager.RegisterNavigationItem(homeNavItemPriceList);

				var menuNavItem = new NavigationMenuItem(NavigationNames.MenuNamePriceList)
					{
						NavigateCommand = new DelegateCommand<NavigationItem>((x) => _navManager.Navigate(homeNavItemPriceList)),
                        Caption = "Price Lists",
                        Category = NavigationNames.ModuleName,
						ImageResourceKey = "Icon_Module_PriceLists",
						ItemBackground = Color.FromRgb(211, 66, 58),
						Order = 31
					};
				_navManager.RegisterNavigationItem(menuNavItem);
			}
		}
Example #10
0
		public void Initialize()
		{
			RegisterViewsAndServices();

			var navigationManager = _container.Resolve<NavigationManager>();
			//Register home view
			var homeViewModel = _container.Resolve<IMainHomeViewModel>();
			var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

			navigationManager.RegisterNavigationItem(homeNavItem);

			//Register menu view
			var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName);
			menuNavItem.NavigateCommand = new DelegateCommand<NavigationItem>((x) => { navigationManager.Navigate(homeNavItem); });
			menuNavItem.Order = 1;
			menuNavItem.Caption = "Dashboard";
			menuNavItem.ItemBackground = Color.FromRgb(141, 187, 29);
			menuNavItem.ImageResourceKey = "Icon_Module_Home";

			navigationManager.RegisterNavigationItem(menuNavItem);
		}
        public void Initialize()
        {
            RegisterLoginViewsAndServices();
            //Register home view
            var loginViewModel = _container.Resolve<ILoginViewModel>();
            var loginNavItem = new NavigationItem(NavigationNames.LoginName, loginViewModel);

            loginViewModel.LogonViewRequestedEvent += (sender, args) =>
            {
                BackgroundWorker _backgroundWorker = new BackgroundWorker();
                _backgroundWorker.DoWork += (sender1, args1) =>
                    {
                        try
                        {
                            InitializeModules();
                            NavigationNames.PublishStatusUpdate("Updating Dashboard");
                            InitializeUsersModule();
                            InitializeMainModule(); //should be last
                            Application.Current.Dispatcher.Invoke(DispatcherPriority.Send, (Action)delegate
                            {
                                _navigationManager.ShowNavigationMenu();
                                _navigationManager.NavigateToDefaultPage();
                                _navigationManager.UnRegisterNavigationItem(loginNavItem);
                            });
                        }
                        catch (Exception e)
                        {
                            Application.Current.Dispatcher.Invoke(DispatcherPriority.Send, (Action)delegate
                                {
                                    throw e;
                                });
                        }
                    };

                _backgroundWorker.RunWorkerAsync();
            };

            _navigationManager.RegisterNavigationItem(loginNavItem);
            _navigationManager.Navigate(loginNavItem);
        }
		public bool PrepareAndSave()
		{
			var result = false;

			var tokenSource = new CancellationTokenSource();
			var token = tokenSource.Token;
			_configurationViewModel.CancellationSource = tokenSource;
			var configurationNavigationItem = new NavigationItem(NavigationNames.ConfigurationName, _configurationViewModel);
			// UnRegister previous, if any
			OnUIThread(() => _navigationManager.UnRegisterNavigationItem(configurationNavigationItem));
			_navigationManager.Navigate(configurationNavigationItem);

			// start configuring in tasks
			var taskLocation = Task.Factory.StartNew(() => _projectLocationStepViewModel.Configure(token), token);
			taskLocation.ContinueWith(x => tokenSource.Cancel(), TaskContinuationOptions.OnlyOnFaulted);

			var taskDbAndSearch = Task.Factory.StartNew(() =>
			{
				_databaseSettingsStepViewModel.Configure(token);
				_searchSettingsStepViewModel.Configure(token);
			}, token);
			taskLocation.ContinueWith(x => tokenSource.Cancel(), TaskContinuationOptions.OnlyOnFaulted);

			try
			{
				Task.WaitAll(new[] { taskLocation, taskDbAndSearch });
			}
			catch (AggregateException e)
			{
				// Display information about each exception.
#if (DEBUG)
				foreach (var v in e.InnerExceptions)
				{
					if (v is TaskCanceledException)
						Console.WriteLine("   TaskCanceledException: Task {0}", ((TaskCanceledException)v).Task.Id);
					else
						Console.WriteLine("   Exception: {0}", v.GetType().Name);
				}
#endif
			}

			if (tokenSource.IsCancellationRequested)
			{
				var cancelTasks = new[]
					{
						Task.Factory.StartNew(() => _projectLocationStepViewModel.Cancel()),
						Task.Factory.StartNew(() => _databaseSettingsStepViewModel.Cancel()),
						Task.Factory.StartNew(() => _searchSettingsStepViewModel.Cancel())
					};

				try
				{
					Task.WaitAll(cancelTasks);
				}
				catch (AggregateException)
				{
				}
			}

			if (_projectLocationStepViewModel.Result == OperationResult.Failed ||
				_databaseSettingsStepViewModel.Result == OperationResult.Failed ||
				_searchSettingsStepViewModel.Result == OperationResult.Failed)
			{
				_configurationViewModel.Result = OperationResult.Failed;
			}
			else if (_projectLocationStepViewModel.Result == OperationResult.Cancelled ||
					 _databaseSettingsStepViewModel.Result == OperationResult.Cancelled ||
					 _searchSettingsStepViewModel.Result == OperationResult.Cancelled)
			{
				_configurationViewModel.Result = OperationResult.Cancelled;
			}

			if (_configurationViewModel.Result == OperationResult.Cancelled || _configurationViewModel.Result == OperationResult.Failed)
			{
				_configurationViewModel.Message = _projectLocationStepViewModel.Message + Environment.NewLine +
											  _databaseSettingsStepViewModel.Message + Environment.NewLine +
											  _searchSettingsStepViewModel.Message;
			}
			else
			{
				// create item
				_item.BrowseUrl = "Click browse to resolve";
				_item.Name = _projectLocationStepViewModel.ProjectName;
				_item.Location.Type = LocationType.FileSystem;
				_item.Location.Url = _projectLocationStepViewModel.ProjectLocation;
				_item.Location.LocalPath = _projectLocationStepViewModel.ProjectLocation;

				var repo = _projectRepositoryFactory.GetRepositoryInstance();
				repo.Add(_item);
				repo.UnitOfWork.Commit();

				_configurationViewModel.Result = OperationResult.Successful;
				result = true;
			}

			return result;
		}
        /// <summary>
        /// Switches the view.
        /// </summary>
        /// <param name="navItem">The navigation item.</param>
        public void Navigate(NavigationItem navItem)
        {
            if (navItem == null)
            {
                throw new ArgumentNullException("navItem");
            }

            var content = navItem.Content;

            //check that navigation item already registered
            var alreadyExistNavItem = GetNavigationItemByName(navItem.Name) != null;

            if (!alreadyExistNavItem)
            {
                //register navigation item
                RegisterNavigationItem(navItem);

                //Update currently opened counter
                //var menuNavItem = GetNavigationItemByName(navItem.MenuNavigationItemName) as NavigationMenuItem;
                //if (menuNavItem != null)
                //{
                //    menuNavItem.OpenViewCount++;
                //}

                //register composite commands
                if (content is ISupportAcceptChanges)
                {
                    _globalCommandsProxy.SaveChangesAllCommand.RegisterCommand(((ISupportAcceptChanges)content).SaveChangesCommand);
                    _globalCommandsProxy.CancelAllCommand.RegisterCommand(((ISupportAcceptChanges)content).CancelCommand);
                }

                if (content is IClosable)
                {
                    //Cleanup actions
                    ((IClosable)content).CloseViewRequestedEvent -= RaiseCloseViewRequestedEvent;
                    ((IClosable)content).CloseViewRequestedEvent += RaiseCloseViewRequestedEvent;
                }

                //Handle minimize request
                if (content is IMinimizable)
                {
                    ((IMinimizable)content).MinimizableViewRequestedEvent += (sender, args) =>
                    {
                        //Show home view
                        var homeViewNavigationItem = GetNavigationItemByName(navItem.HomeNavigationItemName);
                        Navigate(homeViewNavigationItem);
                    };
                }
            }

            //Selection in open  tracking region
            if (content is IOpenTracking)
            {
                var openTracking = content as IOpenTracking;
                openTracking.IsActive = true;
            }

            //Initialize before open
            if (content is ISupportDelayInitialization)
            {
                var registration = backgroundWorkers.SingleOrDefault(t => t.Item1.Name == navItem.Name);
                if (registration == null)
                {
                    using (var backgroundWorker = new BackgroundWorker())
                    {
                        var newRegistration = new Tuple <NavigationItem, BackgroundWorker>(navItem, backgroundWorker);
                        backgroundWorkers.Add(newRegistration);
                        backgroundWorker.DoWork += (sender, args) =>
                        {
                            args.Result = args.Argument;
                            var delayedInitialization = (ISupportDelayInitialization)args.Argument;
                            delayedInitialization.IsInitializing = true;
                            delayedInitialization.InitializeForOpen();
                        };

                        backgroundWorker.RunWorkerCompleted += (sender, args) =>
                        {
                            backgroundWorkers.Remove(newRegistration);
                            ((ISupportDelayInitialization)args.Result).IsInitializing = false;
                        };
                        backgroundWorker.RunWorkerAsync(content);
                    }
                }
            }


            if (content is ViewModelBase)
            {
                ((ViewModelBase)content).InitializeGestures();
            }


            //Show view
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, (Action) delegate
            {
                var mainView = MainRegion.GetView(navItem.Name);
                if (mainView != null)
                {
                    MainRegion.Activate(mainView);
                    _currentNavigationItemName = navItem.Name;
                }
            });
        }
Example #14
0
		private void NavigateTo(string navigationName)
		{
			var navigationData = _navigationManager.GetNavigationItemByName(navigationName);
			if (navigationData == null)
			{
				var navigationItemId = Guid.NewGuid().ToString();

				navigationData = new NavigationItem(navigationItemId, null, null, this);
			}

			_navigationManager.Navigate(navigationData);
		}
        public object GetViewFromRegion(NavigationItem navItem)
        {
            var mainView = MainRegion.GetView(navItem.Name);

            return(mainView);
        }
Example #16
0
        /// <summary>
        /// Registers the navigation item.
        /// </summary>
        /// <param name="item">The item.</param>
        public void RegisterNavigationItem(NavigationItem navItem)
        {
            if (navItem == null)
            {
                throw new ArgumentNullException("navItem");
            }

            if (!_registeredNavigationItems.Contains(navItem))
            {
                if (!(navItem is NavigationMenuItem))
                    Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate
                    {
                        MainRegion.Add(navItem.Content, navItem.Name);
                    });

                _registeredNavigationItems.Add(navItem);
            }
        }
 public object GetViewFromRegion(NavigationItem navItem)
 {
     throw new NotImplementedException();
 }
 public void Navigate(NavigationItem navItem)
 {
    
 }
 public void RegisterNavigationItem(NavigationItem navItem)
 {
     
 }
Example #20
0
        private void InitializeUsersModule()
        {
            var authContext = _container.Resolve<IAuthenticationContext>();
            RegisterViewsAndServices();
            if (authContext.CheckPermission(PredefinedPermissions.SecurityAccounts) || authContext.CheckPermission(PredefinedPermissions.SecurityRoles))
            {
                //Register menu item
                IViewModel homeViewModel = _container.Resolve<ISecurityMainViewModel>();
                var homeNavItem = new NavigationItem(NavigationNames.HomeName, homeViewModel);

                _navigationManager.RegisterNavigationItem(homeNavItem);

                var menuNavItem = new NavigationMenuItem(NavigationNames.MenuName);
                menuNavItem.NavigateCommand =
                    new DelegateCommand<NavigationItem>((x) => { _navigationManager.Navigate(homeNavItem); });
                menuNavItem.Caption = "Users";
                menuNavItem.ImageResourceKey = "Icon_Module_Security";
                menuNavItem.ItemBackground = Color.FromRgb(64, 159, 216);
                menuNavItem.Order = 101;
                _navigationManager.RegisterNavigationItem(menuNavItem);
            }


        }
Example #21
0
        /// <summary>
        /// Switches the view.
        /// </summary>
        /// <param name="navItem">The navigation item.</param>
        public void Navigate(NavigationItem navItem)
        {
            if (navItem == null)
            {
                throw new ArgumentNullException("navItem");
            }
			
            var content = navItem.Content;
			
            //check that navigation item already registered
            var alreadyExistNavItem = GetNavigationItemByName(navItem.Name) != null;

            if (!alreadyExistNavItem)
            {
                //register navigation item
                RegisterNavigationItem(navItem);

                //Update currently opened counter
                //var menuNavItem = GetNavigationItemByName(navItem.MenuNavigationItemName) as NavigationMenuItem;
                //if (menuNavItem != null)
                //{
                //    menuNavItem.OpenViewCount++;
                //}

                //register composite commands
                if (content is ISupportAcceptChanges)
                {
                    _globalCommandsProxy.SaveChangesAllCommand.RegisterCommand(((ISupportAcceptChanges)content).SaveChangesCommand);
                    _globalCommandsProxy.CancelAllCommand.RegisterCommand(((ISupportAcceptChanges)content).CancelCommand);
                }

                if (content is IClosable)
                {
                    //Cleanup actions
                    ((IClosable)content).CloseViewRequestedEvent -= RaiseCloseViewRequestedEvent;
                    ((IClosable)content).CloseViewRequestedEvent += RaiseCloseViewRequestedEvent;
                }

                //Handle minimize request
                if (content is IMinimizable)
                {
                    ((IMinimizable)content).MinimizableViewRequestedEvent += (sender, args) =>
                    {
                        //Show home view
                        var homeViewNavigationItem = GetNavigationItemByName(navItem.HomeNavigationItemName);
                        Navigate(homeViewNavigationItem);
                    };
                }
            }

            //Selection in open  tracking region
            if (content is IOpenTracking)
            {
                var openTracking = content as IOpenTracking;
                openTracking.IsActive = true;
            }
			
            //Initialize before open
            if (content is ISupportDelayInitialization)
            {
	            var registration = backgroundWorkers.SingleOrDefault(t => t.Item1.Name == navItem.Name);
				if (registration==null)
	            {
		            using (var backgroundWorker = new BackgroundWorker())
		            {
			            var newRegistration = new Tuple<NavigationItem, BackgroundWorker>(navItem, backgroundWorker);
						backgroundWorkers.Add(newRegistration);
			            backgroundWorker.DoWork += (sender, args) =>
			            {
				            args.Result = args.Argument;
				            var delayedInitialization = (ISupportDelayInitialization) args.Argument;
				            delayedInitialization.IsInitializing = true;
				            delayedInitialization.InitializeForOpen();
			            };

			            backgroundWorker.RunWorkerCompleted += (sender, args) =>
			            {
							backgroundWorkers.Remove(newRegistration);
				            ((ISupportDelayInitialization) args.Result).IsInitializing = false;
				            
			            };
			            backgroundWorker.RunWorkerAsync(content);
		            }
	            }
            }


			if (content is ViewModelBase)
			{
				((ViewModelBase)content).InitializeGestures();
			}


            //Show view
            Application.Current.Dispatcher.Invoke(DispatcherPriority.Normal, (Action) delegate
                {

                    var mainView = MainRegion.GetView(navItem.Name);
                    if (mainView != null)
                    {
                        MainRegion.Activate(mainView);
                        _currentNavigationItemName = navItem.Name;
                    }
                });
        }
		public bool PrepareAndSave()
		{
			var result = false;
			var allErrors = string.Empty;

			var tokenSource = new CancellationTokenSource();
			var token = tokenSource.Token;
			_configurationViewModel.CancellationSource = tokenSource;
			var configurationNavigationItem = new NavigationItem(NavigationNames.ConfigurationName, _configurationViewModel);
			// UnRegister previous, if any
			OnUIThread(() => _navigationManager.UnRegisterNavigationItem(configurationNavigationItem));
			_navigationManager.Navigate(configurationNavigationItem);

			// start configuring in tasks
			var taskLocation = Task.Factory.StartNew(() => _projectLocationStepViewModel.Configure(token), token);
			taskLocation.ContinueWith(x => tokenSource.Cancel(), TaskContinuationOptions.OnlyOnFaulted);

			var taskDbAndSearch = Task.Factory.StartNew(() =>
			{
				_databaseSettingsStepViewModel.Configure(token);
				_searchSettingsStepViewModel.Configure(token);
			}, token);
			taskDbAndSearch.ContinueWith(x => tokenSource.Cancel(), TaskContinuationOptions.OnlyOnFaulted);

			try
			{
				Task.WaitAll(new[] { taskLocation, taskDbAndSearch });
			}
			catch (AggregateException e)
			{
				allErrors += GetMessages(e);
			}

			// cancel all steps
			if (tokenSource.IsCancellationRequested)
			{
				var cancelTasks = new[]
					{
						Task.Factory.StartNew(() => _projectLocationStepViewModel.Cancel()),
						Task.Factory.StartNew(() => _databaseSettingsStepViewModel.Cancel()),
						Task.Factory.StartNew(() => _searchSettingsStepViewModel.Cancel())
					};

				try
				{
					Task.WaitAll(cancelTasks);
				}
				catch (AggregateException e)
				{
					allErrors += GetMessages(e);
				}
			}

			if (_projectLocationStepViewModel.Result == OperationResult.Failed ||
				_databaseSettingsStepViewModel.Result == OperationResult.Failed ||
				_searchSettingsStepViewModel.Result == OperationResult.Failed)
			{
				_configurationViewModel.Result = OperationResult.Failed;
			}
			else if (_projectLocationStepViewModel.Result == OperationResult.Cancelled ||
					 _databaseSettingsStepViewModel.Result == OperationResult.Cancelled ||
					 _searchSettingsStepViewModel.Result == OperationResult.Cancelled)
			{
				_configurationViewModel.Result = OperationResult.Cancelled;
			}

			if (_configurationViewModel.Result == OperationResult.Cancelled || _configurationViewModel.Result == OperationResult.Failed)
			{
				allErrors += _projectLocationStepViewModel.Message + Environment.NewLine +
							_databaseSettingsStepViewModel.Message + Environment.NewLine +
							_searchSettingsStepViewModel.Message;
			}

			if (!string.IsNullOrEmpty(allErrors))
			{
				_configurationViewModel.Message = allErrors;
			}
			else
			{
				// create item
				_item.BrowseUrl = "Click browse to resolve";
				_item.Name = _projectLocationStepViewModel.ProjectName;
				_item.Location.Type = LocationType.FileSystem;
				_item.Location.Url = _projectLocationStepViewModel.ProjectLocation;
				_item.Location.LocalPath = _projectLocationStepViewModel.ProjectLocation;

				var repo = _projectRepositoryFactory.GetRepositoryInstance();
				repo.Add(_item);
				repo.UnitOfWork.Commit();

				_configurationViewModel.Result = OperationResult.Successful;
				result = true;
			}

			return result;
		}
Example #23
0
 public object GetViewFromRegion(NavigationItem navItem)
 {
     var mainView = MainRegion.GetView(navItem.Name);
     return mainView;
 }
Example #24
0
        /// <summary>
        /// Uns the register navigation item.
        /// </summary>
        /// <param name="navItem">The nav item.</param>
        public void UnRegisterNavigationItem(NavigationItem navItem)
        {
            if (navItem == null)
            {
                throw new ArgumentNullException("navItem");
            }

            _registeredNavigationItems.RemoveAll(x => x.Name == navItem.Name);

            var mainView = MainRegion.GetView(navItem.Name);
            if (mainView != null)
            {
                MainRegion.Remove(mainView);
            }
        }