void HandleProjectSelected(LMProject project)
 {
     project.ProjectType = ProjectType.FileProject;
     LMStateHelper.OpenProject(new LMProjectVM {
         Model = project
     });
 }
        async Task <bool> CaptureFinished(bool cancel, bool delete, bool reopen)
        {
            LMProject   project = Project.Model;
            ProjectType type    = Project.ProjectType;

            if (delete)
            {
                if (type != ProjectType.FakeCaptureProject)
                {
                    try {
                        File.Delete(Capturer.CaptureSettings.EncodingSettings.OutputFile);
                    } catch (Exception ex1) {
                        Log.Exception(ex1);
                    }
                }
                try {
                    App.Current.DatabaseManager.ActiveDB.Delete <LMProject> (project);
                } catch (StorageException ex) {
                    Log.Exception(ex);
                    App.Current.Dialogs.ErrorMessage(ex.Message);
                }
            }

            // if it comes from a cancel operation the close have been handled
            bool closeOk = await CloseOpenedProject(!cancel, !reopen);

            if (closeOk && reopen && !cancel && type != ProjectType.FakeCaptureProject)
            {
                Project.ProjectType  = ProjectType.FileProject;
                Project.CloseHandled = true;                 // the reopen comes from a close operation avoid asking again
                LMStateHelper.OpenProject(Project);
            }

            return(false);
        }
 void HandleOpenClicked(object sender, EventArgs e)
 {
     if (loadedProject != null)
     {
         LMStateHelper.OpenProject(new LMProjectVM {
             Model = loadedProject
         });
     }
 }
 void HandleProjectSelected(LMProject project)
 {
     SaveLoadedProject(false);
     if (project != null)
     {
         LMStateHelper.OpenProject(new LMProjectVM {
             Model = project
         });
     }
 }
Exemplo n.º 5
0
 void HandleOpen(OpenEvent <LMProject> arg)
 {
     if (ViewModel.LoadedProject != null)
     {
         // We get the selection instead of LoadedProject because it can be modified without saving.
         // Also we don't use the selected VM directly because it's disposed on unload
         LMProjectVM selectedVM = new LMProjectVM {
             Model = ViewModel.Selection.First().Model
         };
         LMStateHelper.OpenProject(selectedVM);
     }
 }
Exemplo n.º 6
0
 void StartProject()
 {
     if (projectType == ProjectType.EditProject)
     {
         projectType = ProjectType.FileProject;
         ViewModel.Project.ProjectType = projectType;
     }
     else
     {
         project.CreateLineupEvent();
     }
     LMStateHelper.OpenProject(ViewModel.Project, captureSettings);
 }
Exemplo n.º 7
0
        public void OpenProject_ExistingProject_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType = ProjectType.FileProject;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(ProjectAnalysisState.NAME, It.IsAny <object> (), true, false));
        }
Exemplo n.º 8
0
        void StartProject()
        {
            bool isNew = false;

            if (projectType == ProjectType.EditProject)
            {
                projectType = ProjectType.FileProject;
                ViewModel.Project.ProjectType = projectType;
            }
            else
            {
                isNew = true;
                project.CreateLineupEvent();
            }
            LMStateHelper.OpenProject(ViewModel.Project, captureSettings, isNew);
        }
Exemplo n.º 9
0
        public void OpenProject_ExistingFakeLive_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType         = ProjectType.FileProject;
            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(NewProjectState.NAME, projectVM, false, false));
        }
Exemplo n.º 10
0
        public void OpenProject_NotifiesProjectOpened_Ok()
        {
            // Arrange
            bool        projectOpened = false;
            LMProjectVM viewmodel     = new LMProjectVM();

            viewmodel.Model = new LMProject();
            CaptureSettings settings = new CaptureSettings();

            App.Current.EventsBroker.Subscribe <OpenedProjectEvent> (e => projectOpened = true);

            // Act
            LMStateHelper.OpenProject(viewmodel, settings);

            // Assert
            Assert.True(projectOpened);
        }
Exemplo n.º 11
0
        public void OpenProject_NewFakeLive_NavigateToAnalyisWindow()
        {
            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType = ProjectType.FakeCaptureProject;

            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            LMStateHelper.OpenProject(projectVM);

            stateControllerMock.Verify(s => s.MoveTo(FakeLiveProjectAnalysisState.NAME, It.IsAny <object> (), true, false));
        }
        protected override void HandleSave(SaveEvent <ProjectVM> saveEvent)
        {
            if (projectVM != saveEvent.Object)
            {
                return;
            }

            SaveChanges(saveEvent);

            if (projectVM.ProjectType == ProjectType.EditProject)
            {
                projectVM.ProjectType = ProjectType.FileProject;
            }
            else
            {
                (projectVM.Model as LMProject).CreateLineupEvent();
            }
            LMStateHelper.OpenProject(projectVM);
        }
Exemplo n.º 13
0
        public void OpenProject_NotNew_NotSendsProjectCreatedEvent()
        {
            bool projectCreatedEvent = false;

            var project   = new LMProject();
            var projectVM = new LMProjectVM {
                Model = project
            };

            project.ProjectType         = ProjectType.FileProject;
            project.Description         = new ProjectDescription();
            project.Description.FileSet = new MediaFileSet();
            project.Description.FileSet.Add(new MediaFile());
            project.Description.FileSet [0].FilePath = Constants.FAKE_PROJECT;

            App.Current.EventsBroker.Subscribe <ProjectCreatedEvent> (evt => projectCreatedEvent = true);

            LMStateHelper.OpenProject(projectVM, newPoject: false);

            Assert.IsFalse(projectCreatedEvent);
        }
Exemplo n.º 14
0
        void ImportProject(ImportProjectEvent e)
        {
            LMProject       project;
            ProjectImporter importer;
            IStorage        DB = App.Current.DatabaseManager.ActiveDB;

            Log.Debug("Importing project");

            /* try to import the project and show a message error is the file
             * is not a valid project */
            try {
                if (ProjectImporters.Count() == 0)
                {
                    throw new Exception(Catalog.GetString("Plugin not found"));
                }
                else if (ProjectImporters.Count() == 1)
                {
                    importer = ProjectImporters.First();
                }
                else
                {
                    importer = ChooseImporter(ProjectImporters);
                }

                if (importer == null)
                {
                    return;
                }

                project = importer.ImportFunction() as LMProject;
                if (project == null)
                {
                    return;
                }
                if (importer.NeedsEdition)
                {
                    App.Current.StateController.MoveTo(NewProjectState.NAME, new LMProjectVM {
                        Model = project
                    });
                }
                else
                {
                    /* If the project exists ask if we want to overwrite it */
                    if (!importer.CanOverwrite && DB.Exists(project))
                    {
                        var res = App.Current.Dialogs.QuestionMessage(Catalog.GetString("A project already exists for this ID:") +
                                                                      project.ID + "\n" +
                                                                      Catalog.GetString("Do you want to overwrite it?"), null).Result;
                        if (!res)
                        {
                            return;
                        }
                    }
                    DB.Store <LMProject> (project, true);
                    project.ProjectType = ProjectType.FileProject;
                    LMStateHelper.OpenProject(new LMProjectVM {
                        Model = project
                    });
                }
            } catch (Exception ex) {
                App.Current.Dialogs.ErrorMessage(Catalog.GetString("Error importing project:") +
                                                 "\n" + ex.Message);
                Log.Exception(ex);
                return;
            }
        }