예제 #1
0
        public MainViewModel(IScreen screen, ISettingsManager settingsManager, IVersionManager versionManager)
        {
            HostScreen = screen;

            Games = new GamesViewModel(Locator.Current);
            Downloads = new DownloadsViewModel(Locator.Current.GetService<IJobManager>());
            Messsages = new MessagesViewModel(Locator.Current.GetService<IDatabaseManager>(), Locator.Current.GetService<IMessageManager>());
            GotoSettings = ReactiveCommand.CreateAsyncObservable(_ => screen.Router.Navigate.ExecuteAsync(new SettingsViewModel(screen, settingsManager, versionManager, Locator.Current.GetService<IGameManager>())));

            // login status
            settingsManager.WhenAnyValue(sm => sm.AuthenticatedUser)
                .Select(u => u == null ? "Not logged." : $"Logged as {u.Name}")
                .ToProperty(this, x => x.LoginStatus, out _loginStatus);

            // show notice when new version arrives but hide when button was clicked
            versionManager.NewVersionAvailable
                .Where(release => release != null)
                .Subscribe(newRelease => {
                    ShowUpdateNotice = true;
                });
            CloseUpdateNotice.Subscribe(_ => {
                ShowUpdateNotice = false;
            });

            // restart button
            RestartApp.Subscribe(_ => { UpdateManager.RestartApp(); });
        }
예제 #2
0
 public CommandFactory(IPersister persister, ISecurityManager security, IVersionManager versionMaker, IEditUrlManager editUrlManager, IContentAdapterProvider adapters, StateChanger changer)
 {
     this.persister      = persister;
     makeVersionOfMaster = On.Master(new MakeVersionCommand(versionMaker));
     replaceMaster       = new ReplaceMasterCommand(versionMaker);
     makeVersion         = new MakeVersionCommand(versionMaker);
     useNewVersion       = new UseNewVersionCommand(versionMaker);
     updateObject        = new UpdateObjectCommand();
     delete                = new DeleteCommand(persister.Repository);
     showPreview           = new RedirectToPreviewCommand(adapters);
     showEdit              = new RedirectToEditCommand(editUrlManager);
     useMaster             = new UseMasterCommand();
     clone                 = new CloneCommand();
     validate              = new ValidateCommand();
     this.security         = security;
     save                  = new SaveCommand(persister);
     incrementVersionIndex = new IncrementVersionIndexCommand(versionMaker);
     draftState            = new UpdateContentStateCommand(changer, ContentState.Draft);
     publishedState        = new UpdateContentStateCommand(changer, ContentState.Published);
     saveActiveContent     = new ActiveContentSaveCommand();
     moveToPosition        = new MoveToPositionCommand();
     unpublishedDate       = new EnsureNotPublishedCommand();
     publishedDate         = new EnsurePublishedCommand();
     updateReferences      = new UpdateReferencesCommand();
 }
예제 #3
0
 public override void SetUp()
 {
     base.SetUp();
     action = engine.Resolve <PublishScheduledAction>();
     engine.SecurityManager.ScopeEnabled = false;
     versionManager = engine.Resolve <IVersionManager>();
 }
예제 #4
0
        public MainViewModel(IScreen screen, ISettingsManager settingsManager, IVersionManager versionManager)
        {
            HostScreen = screen;

            Games     = new GamesViewModel(Locator.Current);
            Downloads = new DownloadsViewModel(Locator.Current.GetService <IJobManager>());
            Messsages = new MessagesViewModel(Locator.Current.GetService <IDatabaseManager>(), Locator.Current.GetService <IMessageManager>());

            GotoSettings = ReactiveCommand.CreateFromObservable(() => screen.Router.Navigate.Execute(new SettingsViewModel(screen, settingsManager, versionManager, Locator.Current.GetService <IGameManager>())));

            // login status
            settingsManager.WhenAnyValue(sm => sm.AuthenticatedUser)
            .Select(u => u == null ? "Not logged." : $"Logged as {u.Name}")
            .ToProperty(this, x => x.LoginStatus, out _loginStatus);

            // show notice when new version arrives but hide when button was clicked
            versionManager.NewVersionAvailable
            .Where(release => release != null)
            .Subscribe(newRelease => {
                ShowUpdateNotice = true;
            });

            // update notice close button
            CloseUpdateNotice = ReactiveCommand.Create(() => { ShowUpdateNotice = false; });

            // restart button
            RestartApp = ReactiveCommand.Create(() => { UpdateManager.RestartApp(); });
        }
예제 #5
0
        public static void Setup(out N2.Edit.IEditManager editor, out IVersionManager versions, IDefinitionManager definitions, IPersister persister, IItemFinder finder)
        {
            var changer = new N2.Edit.Workflow.StateChanger();

            versions = new VersionManager(persister.Repository, finder, changer, new N2.Configuration.EditSection());
            editor   = new EditManager(definitions, persister, versions, new SecurityManager(new ThreadContext(), new EditSection()), null, null, null, changer, new EditableHierarchyBuilder(new SecurityManager(new ThreadContext(), new EditSection()), new EngineSection()), null);
        }
		public override void SetUp()
		{
			base.SetUp();
			action = engine.Resolve<PublishScheduledAction>();
			engine.SecurityManager.ScopeEnabled = false;
			versionManager = engine.Resolve<IVersionManager>();
		}
예제 #7
0
        public CommandFactory(IPersister persister, ISecurityManager security, IVersionManager versionMaker, IEditUrlManager editUrlManager, IContentAdapterProvider adapters, StateChanger changer)
        {
            this.persister = persister;
            makeVersionOfMaster = On.Master(new MakeVersionCommand(versionMaker));
            replaceMaster = new ReplaceMasterCommand(versionMaker);
            makeVersion = new MakeVersionCommand(versionMaker);
            useNewVersion = new UseNewVersionCommand(versionMaker);
            updateObject = new UpdateObjectCommand();
            delete = new DeleteCommand(persister.Repository);
            showPreview = new RedirectToPreviewCommand(adapters);
            showEdit = new RedirectToEditCommand(editUrlManager);
            useMaster = new UseMasterCommand();
            clone = new CloneCommand();
            validate = new ValidateCommand();
            this.security = security;
            save = new SaveCommand(persister);
            incrementVersionIndex = new IncrementVersionIndexCommand(versionMaker);
            draftState = new UpdateContentStateCommand(changer, ContentState.Draft);
            publishedState = new UpdateContentStateCommand(changer, ContentState.Published);
            saveActiveContent = new ActiveContentSaveCommand();
			moveToPosition = new MoveToPositionCommand();
			unpublishedDate = new EnsureNotPublishedCommand();
			publishedDate = new EnsurePublishedCommand();
			updateReferences = new UpdateReferencesCommand();
        }
        // find item (and optional version) from request values (compare WebExtension.GetEditableWrapper)
        public static ContentItem FindItem(IVersionManager versions, ContentVersionRepository versionRepository, Navigator navigator, NameValueCollection request)
        {
            var item = navigator.Navigate(request[PathData.ItemQueryKey]);

            return(versionRepository.ParseVersion(request[PathData.VersionIndexQueryKey],
                                                  request[PathData.VersionKeyQueryKey], item) ?? item);
        }
예제 #9
0
        public CommandFactory(IPersister persister, ISecurityManager security, IVersionManager versionMaker, IEditUrlManager editUrlManager, IContentAdapterProvider adapters, StateChanger changer)
        {
            //this.persister = persister;
            //makeVersionOfMaster = On.Master(new MakeVersionCommand(versionMaker));
            //showEdit = new RedirectToEditCommand(editUrlManager);
            //clone = new CloneCommand();
            //unpublishedDate = new EnsureNotPublishedCommand(); // moved to StateChanger
            //ensurePublishedDate = new EnsurePublishedCommand();  // moved to StateChanger

            this.security = security;

            save   = new SaveCommand(persister);
            delete = new DeleteCommand(persister.Repository);

            replaceMaster     = new ReplaceMasterCommand(versionMaker);
            makeVersion       = new MakeVersionCommand(versionMaker);
            useDraftCmd       = new UseDraftCommand(versionMaker);
            saveOnPageVersion = new SaveOnPageVersionCommand(versionMaker);

            draftState     = new UpdateContentStateCommand(changer, ContentState.Draft);
            publishedState = new UpdateContentStateCommand(changer, ContentState.Published);

            updateObject      = new UpdateObjectCommand();
            useMaster         = new UseMasterCommand();
            validate          = new ValidateCommand();
            saveActiveContent = new ActiveContentSaveCommand();
            moveToPosition    = new MoveToPositionCommand();
            updateReferences  = new UpdateReferencesCommand();
        }
 public TreeSorter(IPersister persister, IEditManager editManager, IWebContext webContext, IVersionManager versionMaker)
 {
     this.persister    = persister;
     this.editManager  = editManager;
     this.webContext   = webContext;
     this.versionMaker = versionMaker;
 }
예제 #11
0
        public override void SetUp()
        {
            base.SetUp();
            DefinitionBuilder builder  = new DefinitionBuilder(new DefinitionMap(), typeFinder, new TransformerBase <IUniquelyNamed> [0], TestSupport.SetupEngineSection());
            IItemNotifier     notifier = mocks.DynamicMock <IItemNotifier>();

            mocks.Replay(notifier);
            var changer = new N2.Edit.Workflow.StateChanger();

            definitions = new DefinitionManager(new[] { new DefinitionProvider(builder) }, new ContentActivator(changer, notifier, new EmptyProxyFactory()), changer, new DefinitionMap());

            versioner = mocks.StrictMock <IVersionManager>();
            var urls = new FakeEditUrlManager();

            editManager = new EditManager(definitions, persister, versioner, null, null, null, urls, changer, new EditableHierarchyBuilder(new SecurityManager(new ThreadContext(), new EditSection()), TestSupport.SetupEngineSection()), new EditSection());
            editManager.EnableVersioning = true;

            var engine = new FakeEngine();

            engine.Container.AddComponentInstance("editManager", typeof(IEditManager), editManager);

            engine.Container.AddComponentInstance("editSection", typeof(EditSection), new EditSection());

            Context.Replace(engine);
        }
예제 #12
0
        public CommandFactory(IPersister persister, ISecurityManager security, IVersionManager versionMaker, IEditUrlManager editUrlManager, IContentAdapterProvider adapters, StateChanger changer)
        {
            //this.persister = persister;
            //makeVersionOfMaster = On.Master(new MakeVersionCommand(versionMaker));
            //showEdit = new RedirectToEditCommand(editUrlManager);
            //clone = new CloneCommand();
            //unpublishedDate = new EnsureNotPublishedCommand(); // moved to StateChanger
            //ensurePublishedDate = new EnsurePublishedCommand();  // moved to StateChanger

            this.security = security;
            
            save = new SaveCommand(persister);
            delete = new DeleteCommand(persister.Repository);

            replaceMaster = new ReplaceMasterCommand(versionMaker);
            makeVersion = new MakeVersionCommand(versionMaker);
            useDraftCmd = new UseDraftCommand(versionMaker);
            saveOnPageVersion = new SaveOnPageVersionCommand(versionMaker);

            draftState = new UpdateContentStateCommand(changer, ContentState.Draft);
            publishedState = new UpdateContentStateCommand(changer, ContentState.Published);

            updateObject = new UpdateObjectCommand();
            useMaster = new UseMasterCommand();
            validate = new ValidateCommand();
            saveActiveContent = new ActiveContentSaveCommand();
			moveToPosition = new MoveToPositionCommand();
			updateReferences = new UpdateReferencesCommand();
        }
예제 #13
0
        public TreeSorter(IPersister persister, IEditManager editManager, IWebContext webContext, IVersionManager versionMaker)
		{
			this.persister = persister;
			this.editManager = editManager;
			this.webContext = webContext;
            this.versionMaker = versionMaker;
		}
예제 #14
0
        public SettingsViewModel(IScreen screen, ISettingsManager settingsManager, IVersionManager versionManager, IGameManager gameManager)
        {
            HostScreen       = screen;
            _settingsManager = settingsManager;
            _versionManager  = versionManager;
            _gameManager     = gameManager;

            ApiKey                      = _settingsManager.Settings.ApiKey;
            AuthUser                    = _settingsManager.Settings.AuthUser;
            AuthPass                    = _settingsManager.Settings.AuthPass;
            Endpoint                    = _settingsManager.Settings.Endpoint;
            PbxFolder                   = _settingsManager.Settings.PinballXFolder;
            SyncStarred                 = _settingsManager.Settings.SyncStarred;
            DownloadOnStartup           = _settingsManager.Settings.DownloadOnStartup;
            PatchTableScripts           = _settingsManager.Settings.PatchTableScripts;
            MinimizeToTray              = _settingsManager.Settings.MinimizeToTray;
            ReformatXml                 = _settingsManager.Settings.ReformatXml;
            XmlFileVP                   = _settingsManager.Settings.XmlFile[Platform.VP];
            StartWithWindows            = _settingsManager.Settings.StartWithWindows;
            DownloadOrientation         = _settingsManager.Settings.DownloadOrientation;
            DownloadOrientationFallback = _settingsManager.Settings.DownloadOrientationFallback;
            DownloadLighting            = _settingsManager.Settings.DownloadLighting;
            DownloadLightingFallback    = _settingsManager.Settings.DownloadLightingFallback;

            SaveSettings = ReactiveCommand.CreateFromTask(_ => Save());
            SaveSettings.IsExecuting.ToProperty(this, vm => vm.IsValidating, out _isValidating);
            SaveSettings.ThrownExceptions.Subscribe(e =>
            {
                // todo either remove or treat correctly.
                Console.WriteLine("Exception while saving settings.");
            });

            ChooseFolder  = ReactiveCommand.Create(OpenFolderDialog);
            CloseSettings = ReactiveCommand.CreateCombined(new[] { HostScreen.Router.NavigateBack });

            _settingsManager.WhenAnyValue(sm => sm.Settings.IsFirstRun).ToProperty(this, vm => vm.IsFirstRun, out _isFirstRun);
            _settingsManager.WhenAnyValue(sm => sm.CanCancel)
            .CombineLatest(screen.Router.NavigationStack.Changed, (canCancel, _) => canCancel || screen.Router.NavigationStack.Count > 1)
            .DistinctUntilChanged()
            .StartWith(true)
            .ToProperty(this, vm => vm.CanCancel, out _canCancel);

            OrientationSettings.Add(new OrientationSetting("Portrait", SettingsManager.Orientation.Portrait));
            OrientationSettings.Add(new OrientationSetting("Landscape", SettingsManager.Orientation.Landscape));
            OrientationSettings.Add(new OrientationSetting("Universal (VP10)", SettingsManager.Orientation.Universal));
            LightingSettings.Add(new LightingSetting("Day", SettingsManager.Lighting.Day));
            LightingSettings.Add(new LightingSetting("Night", SettingsManager.Lighting.Night));
            LightingSettings.Add(new LightingSetting("Universal (VP10)", SettingsManager.Lighting.Universal));
            XmlFilesVP.Add("Visual Pinball");
            XmlFilesVP.Add("Vpdb");
            OrientationFallbackSettings.Add(new OrientationSetting("Same *", SettingsManager.Orientation.Same));
            OrientationFallbackSettings.Add(new OrientationSetting("Portrait", SettingsManager.Orientation.Portrait));
            OrientationFallbackSettings.Add(new OrientationSetting("Landscape", SettingsManager.Orientation.Landscape));
            OrientationFallbackSettings.Add(new OrientationSetting("Any", SettingsManager.Orientation.Any));
            LightingFallbackSettings.Add(new LightingSetting("Same *", SettingsManager.Lighting.Same));
            LightingFallbackSettings.Add(new LightingSetting("Day", SettingsManager.Lighting.Day));
            LightingFallbackSettings.Add(new LightingSetting("Night", SettingsManager.Lighting.Night));
            LightingFallbackSettings.Add(new LightingSetting("Any", SettingsManager.Lighting.Any));
        }
예제 #15
0
		public SettingsViewModel(IScreen screen, ISettingsManager settingsManager, IVersionManager versionManager, IGameManager gameManager)
		{
			HostScreen = screen;
			_settingsManager = settingsManager;
			_versionManager = versionManager;
			_gameManager = gameManager;

			ApiKey = _settingsManager.Settings.ApiKey;
			AuthUser = _settingsManager.Settings.AuthUser;
			AuthPass = _settingsManager.Settings.AuthPass;
			Endpoint = _settingsManager.Settings.Endpoint;
			PbxFolder = _settingsManager.Settings.PbxFolder;
			SyncStarred = _settingsManager.Settings.SyncStarred;
			DownloadOnStartup = _settingsManager.Settings.DownloadOnStartup;
			PatchTableScripts = _settingsManager.Settings.PatchTableScripts;
			MinimizeToTray = _settingsManager.Settings.MinimizeToTray;
			ReformatXml = _settingsManager.Settings.ReformatXml;
			XmlFileVP = _settingsManager.Settings.XmlFile[Platform.PlatformType.VP];
			StartWithWindows = _settingsManager.Settings.StartWithWindows;
			DownloadOrientation = _settingsManager.Settings.DownloadOrientation;
			DownloadOrientationFallback = _settingsManager.Settings.DownloadOrientationFallback;
			DownloadLighting = _settingsManager.Settings.DownloadLighting;
			DownloadLightingFallback = _settingsManager.Settings.DownloadLightingFallback;

			SaveSettings = ReactiveCommand.CreateAsyncTask(_ => Save());
			SaveSettings.IsExecuting.ToProperty(this, vm => vm.IsValidating, out _isValidating);
			SaveSettings.ThrownExceptions.Subscribe(e =>
			{
				// todo either remove or treat correctly.
				Console.WriteLine("Exception while saving settings.");
			});

			ChooseFolder.Subscribe(_ => OpenFolderDialog());
			CloseSettings.InvokeCommand(HostScreen.Router, r => r.NavigateBack);

			_settingsManager.WhenAnyValue(sm => sm.Settings.IsFirstRun).ToProperty(this, vm => vm.IsFirstRun, out _isFirstRun);
			_settingsManager.WhenAnyValue(sm => sm.CanCancel)
				.CombineLatest(screen.Router.NavigationStack.Changed, (canCancel, _) => canCancel || screen.Router.NavigationStack.Count > 1)
				.DistinctUntilChanged()
				.StartWith(true)
				.ToProperty(this, vm => vm.CanCancel, out _canCancel);
			
			OrientationSettings.Add(new OrientationSetting("Portrait", SettingsManager.Orientation.Portrait));
			OrientationSettings.Add(new OrientationSetting("Landscape", SettingsManager.Orientation.Landscape));
			OrientationSettings.Add(new OrientationSetting("Universal (VP10)", SettingsManager.Orientation.Universal));
			LightingSettings.Add(new LightingSetting("Day", SettingsManager.Lighting.Day));
			LightingSettings.Add(new LightingSetting("Night", SettingsManager.Lighting.Night));
			LightingSettings.Add(new LightingSetting("Universal (VP10)", SettingsManager.Lighting.Universal));
			XmlFilesVP.Add("Visual Pinball");
			XmlFilesVP.Add("Vpdb");
			OrientationFallbackSettings.Add(new OrientationSetting("Same *", SettingsManager.Orientation.Same));
			OrientationFallbackSettings.Add(new OrientationSetting("Portrait", SettingsManager.Orientation.Portrait));
			OrientationFallbackSettings.Add(new OrientationSetting("Landscape", SettingsManager.Orientation.Landscape));
			OrientationFallbackSettings.Add(new OrientationSetting("Any", SettingsManager.Orientation.Any));
			LightingFallbackSettings.Add(new LightingSetting("Same *", SettingsManager.Lighting.Same));
			LightingFallbackSettings.Add(new LightingSetting("Day", SettingsManager.Lighting.Day));
			LightingFallbackSettings.Add(new LightingSetting("Night", SettingsManager.Lighting.Night));
			LightingFallbackSettings.Add(new LightingSetting("Any", SettingsManager.Lighting.Any));
		}
 public PublishScheduledAction(ContentVersionRepository versionRepository, IVersionManager versioner, IPersister persister, ISecurityManager security, StateChanger changer)
 {
     this.versionRepository = versionRepository;
     this.versioner         = versioner;
     this.persister         = persister;
     this.security          = security;
     this.changer           = changer;
 }
 protected PartsModifyingAjaxService(Navigator navigator, IIntegrityManager integrity, IVersionManager versions, ContentVersionRepository versionRepository, IDefinitionManager definitionManager)
 {
     this.navigator         = navigator;
     this.integrity         = integrity;
     this.versions          = versions;
     this.versionRepository = versionRepository;
     this.definitionManager = definitionManager;
 }
 protected PartsModifyingAjaxService(Navigator navigator, IIntegrityManager integrity, IVersionManager versions, ContentVersionRepository versionRepository, IDefinitionManager definitionManager)
 {
     this.navigator = navigator;
     this.integrity = integrity;
     this.versions = versions;
     this.versionRepository = versionRepository;
     this.definitionManager = definitionManager;
 }
예제 #19
0
파일: ItemMover.cs 프로젝트: Biswo/n2cms
 public ItemMover(IPersister persister, Navigator navigator, IIntegrityManager integrity, IVersionManager versions, ContentVersionRepository versionRepository)
 {
     this.persister = persister;
     this.navigator = navigator;
     this.integrity = integrity;
     this.versions = versions;
     this.versionRepository = versionRepository;
 }
예제 #20
0
 public ItemMover(IPersister persister, Navigator navigator, IIntegrityManager integrity, IVersionManager versions, ContentVersionRepository versionRepository)
 {
     this.persister         = persister;
     this.navigator         = navigator;
     this.integrity         = integrity;
     this.versions          = versions;
     this.versionRepository = versionRepository;
 }
		public PublishScheduledAction(ContentVersionRepository versionRepository, IVersionManager versioner, IPersister persister, ISecurityManager security, StateChanger changer)
		{
			this.versionRepository = versionRepository;
			this.versioner = versioner;
			this.persister = persister;
			this.security = security;
			this.changer = changer;
		}
예제 #22
0
		public CreateUrlProvider(IPersister persister, IEditUrlManager editUrlManager, IDefinitionManager definitions, ContentActivator activator, Navigator navigator, IVersionManager versions, ContentVersionRepository versionRepository)
		{
            this.persister = persister;
			this.managementPaths = editUrlManager;
			this.definitions = definitions;
			this.activator = activator;
            this.navigator = navigator;
			this.versions = versions;
			this.versionRepository = versionRepository;
		}
예제 #23
0
파일: VpdbClient.cs 프로젝트: xantari/agent
 public VpdbClient(ISettingsManager settingsManager, IVersionManager versionManager, IMessageManager messageManager,
                   IScreen screen, ILogger logger, CrashManager crashManager)
 {
     _settingsManager = settingsManager;
     _versionManager  = versionManager;
     _messageManager  = messageManager;
     _logger          = logger;
     _screen          = screen;
     _crashManager    = crashManager;
 }
예제 #24
0
 public CreateUrlProvider(IPersister persister, IEditUrlManager editUrlManager, IDefinitionManager definitions, ContentActivator activator, Navigator navigator, IVersionManager versions, ContentVersionRepository versionRepository)
 {
     this.persister         = persister;
     this.managementPaths   = editUrlManager;
     this.definitions       = definitions;
     this.activator         = activator;
     this.navigator         = navigator;
     this.versions          = versions;
     this.versionRepository = versionRepository;
 }
        public SelectionTechnique(ICoverageData coverageData, IVersionManager versionManager)
        {
            _coverageData   = coverageData;
            _versionManager = versionManager;

            var selectedAndKnownTestCases = GetSelectedAndKnownTestCases();

            _selectedTestCases = selectedAndKnownTestCases.Item1;
            _knownTestCases    = selectedAndKnownTestCases.Item2;
        }
예제 #26
0
 protected override void OnPreInit(EventArgs e)
 {
     base.OnPreInit(e);
     Security        = Engine.SecurityManager;
     Definitions     = Engine.Definitions;
     Versions        = Engine.Resolve <IVersionManager>();
     Commands        = Engine.Resolve <CommandDispatcher>();
     EditManager     = Engine.EditManager;
     ManagementPaths = Engine.ManagementPaths;
 }
예제 #27
0
		protected override void OnPreInit(EventArgs e)
		{
			base.OnPreInit(e);
			Security = Engine.SecurityManager;
			Definitions = Engine.Definitions;
			Versions = Engine.Resolve<IVersionManager>();
			Commands = Engine.Resolve<CommandDispatcher>();
			EditManager = Engine.EditManager;
			ManagementPaths = Engine.ManagementPaths;
		}
 public RelationalRepositorySnapshotRepository(
     RepositoryAnalysisContext repositoryAnalysisContext,
     ILogger <RelationalRepositorySnapshotRepository> logger,
     IVersionManager versionManager,
     IMapper mapper)
 {
     this.repositoryAnalysisContext = repositoryAnalysisContext;
     this.logger         = logger;
     this.versionManager = versionManager;
     this.mapper         = mapper;
 }
예제 #29
0
        /// <summary>Publishes the given version.</summary>
        /// <param name="version">The version to publish.</param>
        /// <returns>The published (master) version.</returns>
        public static ContentItem MakeMasterVersion(this IVersionManager versionManager, ContentItem versionToPublish)
        {
            if (!versionToPublish.VersionOf.HasValue)
            {
                return(versionToPublish);
            }

            var master = versionToPublish.VersionOf;

            versionManager.ReplaceVersion(master, versionToPublish, storeCurrentVersion: versionToPublish.VersionOf.Value.State == ContentState.Published);
            return(master);
        }
예제 #30
0
        public override void SetUp()
        {
            CreateDatabaseSchema();
            base.SetUp();

            persister = engine.Resolve<IPersister>();
			activator = engine.Resolve<ContentActivator>();
            editManager = engine.Resolve<IEditManager>();
            versionManager = engine.Resolve<IVersionManager>();

            editors = new Dictionary<string, Control>();
            editors["Title"] = new TextBox { Text = "New title" };
        }
예제 #31
0
		protected override void OnInit(EventArgs e)
		{
			Page.Title = string.Format("{0}: {1}", GetLocalResourceString("VersionsPage.Title", "Versions"), Selection.SelectedItem.Title);

			persister = Engine.Persister;
			versioner = Engine.Resolve<IVersionManager>();

			bool isVersionable = versioner.IsVersionable(Selection.SelectedItem);
			cvVersionable.IsValid = isVersionable;

			publishedItem = Selection.SelectedItem.VersionOf.Value ?? Selection.SelectedItem;

			base.OnInit(e);
		}
 public VersionManagerWorkerService(IVersionManager versionManager, IContentManager contentManager,
                                    IVersionManagerDataService versionManagerDataService,
                                    INotifier notifier,
                                    IVersionManagerInfoDataService versionManagerInfoDataService,
                                    IRepository <ContentItemVersionRecord> contentItemVersionRepository)
 {
     _versionManager            = versionManager;
     _contentManager            = contentManager;
     _versionManagerDataService = versionManagerDataService;
     _notifier = notifier;
     _versionManagerInfoDataService = versionManagerInfoDataService;
     _contentItemVersionRepository  = contentItemVersionRepository;
     T = NullLocalizer.Instance;
 }
 public VersionManagerWorkerService(IVersionManager versionManager, IContentManager contentManager,
                                    IVersionManagerDataService versionManagerDataService,
                                    INotifier notifier,
                                    IVersionManagerInfoDataService versionManagerInfoDataService,
                                    IRepository<ContentItemVersionRecord> contentItemVersionRepository)
 {
     _versionManager = versionManager;
     _contentManager = contentManager;
     _versionManagerDataService = versionManagerDataService;
     _notifier = notifier;
     _versionManagerInfoDataService = versionManagerInfoDataService;
     _contentItemVersionRepository = contentItemVersionRepository;
     T = NullLocalizer.Instance;
 }
예제 #34
0
        public GameManager(IPinballXManager pinballXManager, IVpdbClient vpdbClient, IVpdbManager vpdbManager, ISettingsManager
                           settingsManager, IDownloadManager downloadManager, IDatabaseManager databaseManager, IVersionManager versionManager,
                           IMessageManager messageManager, IRealtimeManager realtimeManager, IVisualPinballManager visualPinballManager,
                           IThreadManager threadManager, IJobManager jobManager, IFile file, ILogger logger)
        {
            _pinballXManager      = pinballXManager;
            _vpdbClient           = vpdbClient;
            _vpdbManager          = vpdbManager;
            _settingsManager      = settingsManager;
            _downloadManager      = downloadManager;
            _databaseManager      = databaseManager;
            _versionManager       = versionManager;
            _messageManager       = messageManager;
            _realtimeManager      = realtimeManager;
            _visualPinballManager = visualPinballManager;
            _threadManager        = threadManager;
            _file       = file;
            _logger     = logger;
            _jobManager = jobManager;


            // update releases from VPDB on the first run, but delay it a bit so it
            // doesn't do all that shit at the same time!
            _settingsManager.ApiAuthenticated
            .Where(user => user != null)
            .Take(1)
            .Delay(TimeSpan.FromSeconds(2))
            .Subscribe(_ => UpdateReleaseData());

            // subscribe to downloaded releases
            _downloadManager.WhenReleaseDownloaded.Subscribe(OnReleaseDownloaded);

            // link games if new games are added
            //Games.Changed.Subscribe(_ => CheckGameLinks());

            // when game is linked or unlinked, update profile with channel info

            /*IDisposable gameLinked = null;
             * Games.Changed.Subscribe(_ => {
             *      gameLinked?.Dispose();
             *      gameLinked = Games
             *              .Select(g => g.Changed.Where(x => x.PropertyName == "ReleaseId"))
             *              .Merge()
             *              .Subscribe(__ => UpdateChannelConfig());
             * });*/

            // setup pusher messages
            SetupRealtime();
        }
        public ExtendedMenuItemPartHandler(
            IRepository<ExtendedMenuItemPartRecord> repository, 
            IContentDefinitionManager contentDefinitionManager, 
            IVersionManager versions)
        {
            _contentDefinitionManager = contentDefinitionManager;
            _versions = versions;

            Filters.Add(StorageFilter.For(repository));

            OnActivated<ExtendedMenuItemPart>(PropertySetHandlers);
            OnLoading<ExtendedMenuItemPart>(LazyLoadHandlers);
            OnPublished<ExtendedMenuItemPart>(UpdateUnderlyingMenuPart);
            OnVersioned<ExtendedMenuItemPart>(SetNewVersionValues);
        }
예제 #36
0
        public override void SetUp()
        {
            CreateDatabaseSchema();
            base.SetUp();

            persister      = engine.Resolve <IPersister>();
            activator      = engine.Resolve <ContentActivator>();
            editManager    = engine.Resolve <IEditManager>();
            versionManager = engine.Resolve <IVersionManager>();

            editors          = new Dictionary <string, Control>();
            editors["Title"] = new TextBox {
                Text = "New title"
            };
        }
예제 #37
0
        protected override void OnInit(EventArgs e)
        {
            Page.Title = string.Format("{0}: {1}", GetLocalResourceString("VersionsPage.Title", "Versions"), Selection.SelectedItem.Title);

            persister = Engine.Persister;
            versioner = Engine.Resolve <IVersionManager>();

            bool isVersionable = versioner.IsVersionable(Selection.SelectedItem);

            cvVersionable.IsValid = isVersionable;

            publishedItem = Selection.SelectedItem.VersionOf.Value ?? Selection.SelectedItem;

            base.OnInit(e);
        }
예제 #38
0
        public static PathData EnsureDraft(IVersionManager versions, ContentVersionRepository versionRepository, string versionIndex, string versionKey, ContentItem item)
        {
            item = versionRepository.ParseVersion(versionIndex, versionKey, item)
                   ?? item;

            var page = Find.ClosestPage(item);

            if (!page.VersionOf.HasValue)
            {
                page = versions.GetOrCreateDraft(page);
                item = page.FindPartVersion(item);
            }

            return(new PathData(page, item));
        }
예제 #39
0
        public SyncNuGetVersionTask(
            EventWriter eventWriter,
            [Import("BinaryVersionManager")] IVersionManager binaryVersionReader) : base(eventWriter)
        {
            if (eventWriter == null)
            {
                throw new ArgumentNullException("eventWriter");
            }

            if (binaryVersionReader == null)
            {
                throw new ArgumentNullException("binaryVersionReader");
            }

            BinaryVersionReader = binaryVersionReader;
        }
        // private IRepositorySearchRepository repositorySearchRepository;

        public RepositoryManager(
            IRepositorySnapshotRepository repositorySnapshotRepository,
            IRepositoryCurrentStateRepository repositoryCurrentStateRepository,
            IRepositorySourceManager repositorySourceManager,
            IRepositoryRepository repositoryRepository,
            IVersionManager versionManager
            //IRepositorySearchRepository repositorySearchRepository
            )
        {
            this.repositorySnapshotRepository     = repositorySnapshotRepository;
            this.repositoryCurrentStateRepository = repositoryCurrentStateRepository;
            this.repositorySourceManager          = repositorySourceManager;
            this.repositoryRepository             = repositoryRepository;
            this.versionManager = versionManager;
            // this.repositorySearchRepository = repositorySearchRepository;
        }
        /// <summary>
        /// Used by Versions-Dialog  -> previewedItem.VersionOf.HasValue = TRUE ?
        /// </summary>
        /// <param name="versionManager"></param>
        /// <param name="persister"></param>
        /// <param name="item">The item to be replaced (Master Version)</param>
        /// <param name="versionIndex">Index of the version to be published</param>
        public static void PublishVersion(this IVersionManager versionManager, IPersister persister, ContentItem item, int versionIndex)
        {
            if (!item.IsPage)
            {
                throw new ArgumentException("PublishVersion requires item to be a page");
            }

            if (item.VersionIndex != versionIndex)
            {
                // unpublish/restore
                ContentItem itemToPublish = versionManager.GetVersion(item, versionIndex);
                bool        storeCurrent  = item.State == ContentState.Published || itemToPublish.State == ContentState.Unpublished;
                versionManager.ReplaceVersion(item, itemToPublish, storeCurrent); // returns old version
            }

            Publish(versionManager, persister, item);
        }
예제 #42
0
 public DefaultMenuService(
     IClock clock,
     IContentManager contentManager,
     ISignals signals,
     IPublishMenuTaskManager tasks,
     IVersionManager versions,
     IOrchardServices services,
     IRepository<ContentItemVersionRecord> contentItemVersionRepository)
 {
     _clock = clock;
     _contentManager = contentManager;
     _signals = signals;
     _tasks = tasks;
     _versions = versions;
     _services = services;
     _contentItemVersionRepository = contentItemVersionRepository;
 }
예제 #43
0
        public static PathData EnsureDraft(IVersionManager versions, ContentVersionRepository versionRepository, Edit.Navigator navigator, NameValueCollection request)
        {
            var item = navigator.Navigate(request["item"]);

            item = versionRepository.ParseVersion(request[PathData.VersionIndexQueryKey], request["versionKey"], item)
                   ?? item;

            var page = Find.ClosestPage(item);

            if (!page.VersionOf.HasValue)
            {
                page = versions.AddVersion(page, asPreviousVersion: false);
                item = page.FindPartVersion(item);
            }

            return(new PathData(page, item));
        }
예제 #44
0
        public EditManager(IDefinitionManager definitions, IPersister persister, IVersionManager versioner,
                           ISecurityManager securityManager, IPluginFinder pluginFinder, IEditUrlManager urls,
                           StateChanger changer, EditableHierarchyBuilder interfaceBuilder, EditSection config)
        {
            this.definitions      = definitions;
            this.persister        = persister;
            this.versioner        = versioner;
            this.securityManager  = securityManager;
            this.pluginFinder     = pluginFinder;
            this.urls             = urls;
            this.stateChanger     = changer;
            this.interfaceBuilder = interfaceBuilder;

            EditTheme               = config.EditTheme;
            EnableVersioning        = config.Versions.Enabled;
            MaximumNumberOfVersions = config.Versions.MaximumPerItem;
            uploadFolders           = new List <string>(config.UploadFolders.Folders);
        }
예제 #45
0
        /// <summary>
        /// 移除缓存
        /// </summary>
        public override void RemoveCache()
        {
            Type[] types =
            {
                typeof(Merchant.BusinessLogic.RoleModuleManager),
                typeof(Merchant.BusinessLogic.RoleManager),
                typeof(Merchant.BusinessLogic.UserRoleManager),
                typeof(Merchant.BusinessLogic.UserManager)
            };
            IRoleManager    roleManager    = serviceProvider.GetRequiredService <IRoleManager>();
            IVersionManager versionManager = serviceProvider.GetRequiredService <IVersionManager>();

            Merchant.BusinessLogic.IMerchantManager merchantManager = serviceProvider.GetRequiredService <Merchant.BusinessLogic.IMerchantManager>();

            base.RemoveCache();
            roleManager.RemoveCache();
            versionManager.RemoveCache();
            merchantManager.RemoveAllCache(types);
        }
예제 #46
0
        public override void SetUp()
        {
            base.SetUp();

            persister = engine.Persister;
            versions  = engine.Resolve <IVersionManager>();

            persister.Dispose();

            CreateDatabaseSchema();

            root  = CreateOneItem <ThrowableItem>(0, "root", null);
            item  = CreateOneItem <ThrowableItem>(0, "item", root);
            item2 = CreateOneItem <ThrowableItem>(0, "item2", root);

            trash = engine.Resolve <ITrashHandler>();

            System.Threading.Thread.CurrentPrincipal = new GenericPrincipal(new GenericIdentity("admin", "test"), new string[] { "Administrators" });
        }
예제 #47
0
        public override void SetUp()
        {
            base.SetUp();
            DefinitionBuilder builder = new DefinitionBuilder(new DefinitionMap(), typeFinder, new TransformerBase<IUniquelyNamed>[0], TestSupport.SetupEngineSection());
            IItemNotifier notifier = mocks.DynamicMock<IItemNotifier>();
            mocks.Replay(notifier);
            var changer = new N2.Edit.Workflow.StateChanger();
            definitions = new DefinitionManager(new[] { new DefinitionProvider(builder) }, new ContentActivator(changer, notifier, new EmptyProxyFactory()), changer, new DefinitionMap());

            versioner = mocks.StrictMock<IVersionManager>();
            var urls = new FakeEditUrlManager();
            editManager = new EditManager(definitions, persister, versioner, null, null, urls, changer, new EditableHierarchyBuilder(new SecurityManager(new ThreadContext(), new EditSection()), TestSupport.SetupEngineSection()), new EditSection());
            editManager.EnableVersioning = true;

            var engine = new FakeEngine();
            engine.Container.AddComponentInstance("editManager", typeof(IEditManager), editManager);

            engine.Container.AddComponentInstance("editSection", typeof(EditSection), new EditSection());

            Context.Replace(engine);
        }
예제 #48
0
        public override void SetUp()
        {
            base.SetUp();
            var urls = new FakeEditUrlManager();
            DefinitionBuilder builder = new DefinitionBuilder(typeFinder, new EngineSection(), urls);
            IItemNotifier notifier = mocks.DynamicMock<IItemNotifier>();
            mocks.Replay(notifier);
            var changer = new N2.Edit.Workflow.StateChanger();
            DefinitionManager definitions = new DefinitionManager(builder, changer, notifier, new EmptyProxyFactory());

            versioner = mocks.StrictMock<IVersionManager>();
            editManager = new EditManager(definitions, persister, versioner, null, null, null, urls, changer, new EditSection());
            editManager.EnableVersioning = true;

            var engine = new FakeEngine();
            engine.AddComponentInstance("editManager", typeof(IEditManager), editManager);

            engine.AddComponentInstance("editSection", typeof(EditSection), new EditSection());

            Context.Replace(engine);
        }
예제 #49
0
        public AdminManager(AdminSection configSection, ISecurityManager securityManager, IAdminAssemblyManager adminAssembly,
			IAuthorizationService authorizationService, IAuthenticationContextService authenticationContextService,
			IPersister persister, IVersionManager versionManager, IContentTypeManager contentTypeManager,
			Web.IWebContext webContext, ILanguageManager languageManager,
			IPluginFinder<ActionPluginGroupAttribute> actionPluginGroupFinder,
			ITypeFinder typeFinder, IEmbeddedResourceManager embeddedResourceManager)
        {
            _configSection = configSection;
            _securityManager = securityManager;
            _adminAssembly = adminAssembly;
            DeleteItemUrl = embeddedResourceManager.GetServerResourceUrl(adminAssembly.Assembly, "Zeus.Admin.Delete.aspx");
            EditItemUrl = embeddedResourceManager.GetServerResourceUrl(adminAssembly.Assembly, "Zeus.Admin.Plugins.EditItem.Default.aspx");
            NewItemUrl = embeddedResourceManager.GetServerResourceUrl(adminAssembly.Assembly, "Zeus.Admin.New.aspx");
            EnableVersioning = configSection.Versioning.Enabled;
            _authorizationService = authorizationService;
            _authenticationContextService = authenticationContextService;
            _persister = persister;
            _versionManager = versionManager;
            _contentTypeManager = contentTypeManager;
            _webContext = webContext;
            _languageManager = languageManager;

            _cachedActionPluginGroups = actionPluginGroupFinder.GetPlugins().OrderBy(g => g.SortOrder);
        }
예제 #50
0
        public GameManager(IMenuManager menuManager, IVpdbClient vpdbClient, ISettingsManager 
			settingsManager, IDownloadManager downloadManager, IDatabaseManager databaseManager,
			IVersionManager versionManager, IPlatformManager platformManager, IMessageManager messageManager,
			IRealtimeManager realtimeManager, IVisualPinballManager visualPinballManager, IThreadManager threadManager, ILogger logger)
        {
            _menuManager = menuManager;
            _vpdbClient = vpdbClient;
            _settingsManager = settingsManager;
            _downloadManager = downloadManager;
            _databaseManager = databaseManager;
            _versionManager = versionManager;
            _platformManager = platformManager;
            _messageManager = messageManager;
            _realtimeManager = realtimeManager;
            _visualPinballManager = visualPinballManager;
            _threadManager = threadManager;
            _logger = logger;

            // setup game change listener once all games are fetched.
            _menuManager.Initialized.Subscribe(_ => SetupGameChanges());

            // update releases from VPDB on the first run, but delay it a bit so it
            // doesn't do all that shit at the same time!
            _settingsManager.ApiAuthenticated
                .Where(user => user != null)
                .Take(1)
                .Delay(TimeSpan.FromSeconds(2))
                .Subscribe(_ => UpdateReleaseData());

            // subscribe to downloaded releases
            _downloadManager.WhenReleaseDownloaded.Subscribe(OnReleaseDownloaded);

            // link games if new games are added
            Games.Changed.Subscribe(_ => CheckGameLinks());

            // setup handlers for table file changes
            _menuManager.TableFileChanged.Subscribe(OnTableFileChanged);
            _menuManager.TableFileRemoved.Subscribe(OnTableFileRemoved);

            // when game is linked or unlinked, update profile with channel info
            IDisposable gameLinked = null;
            Games.Changed.Subscribe(_ => {
                gameLinked?.Dispose();
                gameLinked = Games
                    .Select(g => g.Changed.Where(x => x.PropertyName == "ReleaseId"))
                    .Merge()
                    .Subscribe(__ => UpdateChannelConfig());
            });

            // setup pusher messages
            SetupRealtime();
        }
예제 #51
0
 protected override void OnPreInit(EventArgs e)
 {
     base.OnPreInit(e);
     Security = Engine.SecurityManager;
     Definitions = Engine.Definitions;
     Templates = Engine.Resolve<IContentTemplateRepository>();
     Versions = Engine.Resolve<IVersionManager>();
     Commands = Engine.Resolve<CommandDispatcher>();
     Edits = Engine.EditManager;
 }
 // find item (and optional version) from request values (compare WebExtension.GetEditableWrapper)
 public static ContentItem FindItem(IVersionManager versions, ContentVersionRepository versionRepository, Navigator navigator, NameValueCollection request)
 {
     var item = navigator.Navigate(request[PathData.ItemQueryKey]);
     return versionRepository.ParseVersion(request[PathData.VersionIndexQueryKey], 
                                           request[PathData.VersionKeyQueryKey], item) ?? item;
 }
예제 #53
0
        public VpdbClient(ISettingsManager settingsManager, IVersionManager versionManager, IMessageManager messageManager, 
			IScreen screen, ILogger logger, CrashManager crashManager)
        {
            _settingsManager = settingsManager;
            _versionManager = versionManager;
            _messageManager = messageManager;
            _logger = logger;
            _screen = screen;
            _crashManager = crashManager;
        }
예제 #54
0
		public SettingsViewModel(IScreen screen, ISettingsManager settingsManager, IVersionManager versionManager, IGameManager gameManager, Dictionary<string, string> errors) : this(screen, settingsManager, versionManager, gameManager)
		{
			Errors = errors;
		}
예제 #55
0
 public ItemUpdater(Navigator navigator, IIntegrityManager integrity, IVersionManager versions, ContentVersionRepository versionRepository, IDefinitionManager definitionManager = null)
     : base(navigator, integrity, versions, versionRepository, definitionManager)
 {
 }
예제 #56
0
        protected override void OnInit(EventArgs e)
        {
            Title = "Versions of '" + SelectedItem.Title + "'";

            bool isVersionable = SelectedItem.GetType().GetCustomAttributes(typeof(NotVersionableAttribute), true).Length == 0;
            cvVersionable.IsValid = isVersionable;

            _persister = Zeus.Context.Persister;
            _versionManager = Zeus.Context.Current.Resolve<IVersionManager>();

            chkShowAllLanguages.Visible = GlobalizationEnabled;

            ResetPublishedItems();

            base.OnInit(e);
        }