DevExpress.OutlookInspiredApp.Win.ViewModel.MainViewModel.OnSelectedModuleTypeChanged C# (CSharp) Method

OnSelectedModuleTypeChanged() protected method

protected OnSelectedModuleTypeChanged ( ModuleType oldType ) : void
oldType ModuleType
return void
        protected virtual void OnSelectedModuleTypeChanged(ModuleType oldType) {
            var transitionService = GetService<Services.ITransitionService>();
            bool effective = (SelectedModuleType != ModuleType.Unknown) && (oldType != ModuleType.Unknown);
            object waitParameter = !IsModuleLoaded(SelectedModuleType) ? (object)SelectedModuleType : null;
            using(transitionService.EnterTransition(effective, ((int)SelectedModuleType > (int)oldType), waitParameter)) {
                var workspaceService = GetService<Services.IWorkspaceService>();
                var resolver = GetService<IModuleTypesResolver>();
                if(oldType != ModuleType.Unknown)
                    workspaceService.SaveWorkspace(resolver.GetName(oldType));
                else
                    workspaceService.SetupDefaultWorkspace();
                SelectedModule = GetModule(SelectedModuleType);
                RaiseSelectedModuleTypeChanged();
                if(SelectedModuleType != ModuleType.Unknown)
                    workspaceService.RestoreWorkspace(resolver.GetName(SelectedModuleType));
            }
        }
        protected virtual void OnSelectedModuleChanged(object oldModule) {