コード例 #1
0
        public void ExportAllCommand_Execute_PassedNull_SingleProject_ExpectExecution()
        {
            var builder = new MockVbeBuilder();

            var projectMock = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                              .AddComponent("Module1", ComponentType.StandardModule, "")
                              .AddComponent("ClassModule1", ComponentType.ClassModule, "")
                              .AddComponent("Document1", ComponentType.Document, "")
                              .AddComponent("UserForm1", ComponentType.UserForm, "");

            var project = projectMock.Build();

            project.SetupGet(m => m.IsSaved).Returns(true);
            project.SetupGet(m => m.FileName).Returns(_projectFullPath);

            var vbe = builder.AddProject(project).Build();

            var mockFolderBrowser = new Mock <IFolderBrowser>();

            mockFolderBrowser.Setup(m => m.SelectedPath).Returns(_path);
            mockFolderBrowser.Setup(m => m.ShowDialog()).Returns(DialogResult.OK);

            var mockFolderBrowserFactory = new Mock <IFileSystemBrowserFactory>();

            mockFolderBrowserFactory.Setup(m => m.CreateFolderBrowser(It.IsAny <string>(), true, _projectPath)).Returns(mockFolderBrowser.Object);
            project.Setup(m => m.ExportSourceFiles(_path));

            var ExportAllCommand = new ExportAllCommand(vbe.Object, mockFolderBrowserFactory.Object);

            ExportAllCommand.Execute(null);

            project.Verify(m => m.ExportSourceFiles(_path), Times.Once);
        }
コード例 #2
0
 private void RaiseButtonNotifications()
 {
     AddTgFileCommand.RaiseCanExecuteChangedNotification();
     AddTgFolderCommand.RaiseCanExecuteChangedNotification();
     RemoveTgFileCommand.RaiseCanExecuteChangedNotification();
     ClearTgFilesCommand.RaiseCanExecuteChangedNotification();
     ProcessCommand.RaiseCanExecuteChangedNotification();
     SetOutputFolderCommand.RaiseCanExecuteChangedNotification();
     LoadOutputFolderCommand.RaiseCanExecuteChangedNotification();
     ExportAllCommand.RaiseCanExecuteChangedNotification();
     BatchSettingsCommand.RaiseCanExecuteChangedNotification();
 }
コード例 #3
0
        public void ExportAllCommand_CanExecute_PassedIVBProject_NoComponents_ExpectFalse()
        {
            var builder     = new MockVbeBuilder();
            var projectMock = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected);
            var project     = projectMock.Build();
            var vbe         = builder.AddProject(project).Build();

            vbe.SetupGet(m => m.ActiveVBProject.VBComponents.Count).Returns(0);

            var mockFolderBrowser        = new Mock <IFolderBrowser>();
            var mockFolderBrowserFactory = new Mock <IFileSystemBrowserFactory>();

            var ExportAllCommand = new ExportAllCommand(vbe.Object, mockFolderBrowserFactory.Object);

            Assert.IsFalse(ExportAllCommand.CanExecute(vbe.Object));
        }
コード例 #4
0
        public void ExportAllCommand_Execute_PassedNull_MultipleProjects_BrowserCanceled_ExpectNoExecution()
        {
            var builder = new MockVbeBuilder();

            var projectMock1 = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                               .AddComponent("Module1", ComponentType.StandardModule, "")
                               .AddComponent("ClassModule1", ComponentType.ClassModule, "")
                               .AddComponent("Document1", ComponentType.Document, "")
                               .AddComponent("UserForm1", ComponentType.UserForm, "");

            var projectMock2 = builder.ProjectBuilder("TestProject2", ProjectProtection.Unprotected)
                               .AddComponent("Module1", ComponentType.StandardModule, "")
                               .AddComponent("ClassModule1", ComponentType.ClassModule, "")
                               .AddComponent("Document1", ComponentType.Document, "")
                               .AddComponent("UserForm1", ComponentType.UserForm, "");

            var project1 = projectMock1.Build();
            var project2 = projectMock2.Build();

            project1.SetupGet(m => m.IsSaved).Returns(true);
            project1.SetupGet(m => m.FileName).Returns(_projectFullPath);
            project2.SetupGet(m => m.IsSaved).Returns(true);
            project2.SetupGet(m => m.FileName).Returns(_projectFullPath2);

            var vbe = builder
                      .AddProject(project1)
                      .AddProject(project2)
                      .Build();

            var mockFolderBrowser = new Mock <IFolderBrowser>();

            mockFolderBrowser.Setup(m => m.SelectedPath).Returns(_path);
            mockFolderBrowser.Setup(m => m.ShowDialog()).Returns(DialogResult.Cancel);

            var mockFolderBrowserFactory = new Mock <IFileSystemBrowserFactory>();

            mockFolderBrowserFactory.Setup(m => m.CreateFolderBrowser(It.IsAny <string>(), true, _projectPath)).Returns(mockFolderBrowser.Object);
            project2.Setup(m => m.ExportSourceFiles(_path));

            var ExportAllCommand = new ExportAllCommand(vbe.Object, mockFolderBrowserFactory.Object);

            ExportAllCommand.Execute(null);

            // project2 added last, will be active project
            project1.Verify(m => m.ExportSourceFiles(_path), Times.Never);
            project2.Verify(m => m.ExportSourceFiles(_path), Times.Never);
        }
コード例 #5
0
        public void UpdateCommandAvailability()
        {
            OpenArchiveCommand.IsEnabled = !IsFileSystemLoading;

            if (IsFileSystemValid)
            {
                CloseArchiveCommand.Enable();
                SaveArchiveCommand.Enable();
                ExportAllCommand.Enable();
            }
            else
            {
                CloseArchiveCommand.Disable();
                SaveArchiveCommand.Disable();
                ExportAllCommand.Disable();
            }
        }
コード例 #6
0
        //private void Closing(object args)
        //{
        //    if (!Running)
        //    {
        //        return;
        //    }

        //    var result = MessageBox.Show("The program is currently running, are you sure you want to cancel it?", "Batch Running", MessageBoxButton.YesNo, MessageBoxImage.Question);

        //    if (result == MessageBoxResult.Yes)
        //    {
        //        IEnumerable<SingleMouseViewModel> allMice = TgItemsSource.Concat(NtgItemsSource);
        //        foreach (SingleMouseViewModel mouse in allMice)
        //        {
        //            mouse.Stop = true;
        //        }
        //        Running = false;
        //        return;
        //    }

        //    CancelEventArgs cancelEventArgs = args as CancelEventArgs;
        //    if (cancelEventArgs != null)
        //    {
        //        cancelEventArgs.Cancel = true;
        //    }
        //}

        private void LoadOutputFolder()
        {
            IRepository repo            = RepositoryResolver.Resolve <IRepository>();
            string      initialLocation = repo.GetValue <string>("OutputFolderLocation");

            string folderLocation = FileBrowser.BrowseForFolder(initialLocation);

            if (string.IsNullOrWhiteSpace(folderLocation))
            {
                return;
            }

            repo.SetValue("OutputFolderLocation", folderLocation);
            repo.Save();

            string[] artFiles = Directory.GetFiles(folderLocation, "*.art");

            foreach (string file in artFiles)
            //Parallel.ForEach(artFiles, file =>
            {
                string videoFileName = Path.GetFileNameWithoutExtension(file);

                //if (videoFileName.Contains("091119-0038"))
                //{
                //    Console.WriteLine("h");
                //}

                if (string.IsNullOrWhiteSpace(videoFileName))
                {
                    continue;
                    //return;
                }

                //if (videoFileName.Contains("091218-0179"))
                //{
                //    Console.WriteLine("test");
                //}

                //SingleMouseViewModel mouse = null;
                ////videoFileName = file.Replace(".art", "");
                //bool testBreak = false;
                //foreach (var listMouse in TgItemsSource)
                //{
                //    foreach (var temp in listMouse.VideoFiles)
                //    {
                //        if (temp.VideoFileName.Contains(videoFileName))
                //        {
                //            mouse = listMouse;
                //            testBreak = true;
                //            break;
                //        }
                //    }

                //    if (testBreak)
                //    {
                //        break;
                //    }
                //}

                SingleMouseViewModel mouse = TgItemsSource.FirstOrDefault(x => x.VideoFiles.FirstOrDefault(y => y.VideoFileName.Contains(videoFileName)) != null);

                if (mouse == null)
                {
                    //Can't find mouse
                    //return;
                    continue;
                }

                ISingleFile singleFile = mouse.VideoFiles.First(x => x.VideoFileName.Contains(videoFileName));

                XmlSerializer   serializer = new XmlSerializer(typeof(TrackedVideoXml));
                TrackedVideoXml trackedVideoXml;
                using (StreamReader reader = new StreamReader(file))
                {
                    trackedVideoXml = (TrackedVideoXml)serializer.Deserialize(reader);
                }

                ITrackedVideo trackedVideo = trackedVideoXml.GetData();

                IMouseDataResult mouseDataResult = ModelResolver.Resolve <IMouseDataResult>();

                if (trackedVideo.Result != SingleFileResult.Ok)
                {
                    mouseDataResult.Message      = trackedVideo.Message;
                    mouseDataResult.VideoOutcome = trackedVideo.Result;

                    if (mouse.Results == null)
                    {
                        mouse.Results = new Dictionary <ISingleFile, IMouseDataResult>();
                    }
                    mouse.Results.Add(singleFile, mouseDataResult);
                    mouse.ReviewCommand.RaiseCanExecuteChangedNotification();
                    mouse.UpdateProgress(singleFile, 1);

                    continue;
                }

                var tempResults = trackedVideo.Results;
                Dictionary <int, ISingleFrameResult> results = new Dictionary <int, ISingleFrameResult>();
                foreach (var kvp in tempResults)
                {
                    ISingleFrameResult singleFrame = ModelResolver.Resolve <ISingleFrameResult>();

                    if (kvp.Value != null)
                    {
                        ISingleFrameResult tempResult = kvp.Value;
                        singleFrame.HeadPoints        = tempResult.HeadPoints;
                        singleFrame.CentroidSize      = tempResult.CentroidSize;
                        singleFrame.PelvicArea        = tempResult.PelvicArea;
                        singleFrame.PelvicArea2       = tempResult.PelvicArea2;
                        singleFrame.PelvicArea3       = tempResult.PelvicArea3;
                        singleFrame.PelvicArea4       = tempResult.PelvicArea4;
                        singleFrame.SmoothedHeadPoint = tempResult.SmoothedHeadPoint;
                        singleFrame.Centroid          = tempResult.Centroid;
                    }

                    results.Add(kvp.Key, singleFrame);
                }


                mouseDataResult.Name              = mouse.Id;
                mouseDataResult.Results           = results;
                mouseDataResult.Age               = mouse.Age;
                mouseDataResult.Boundaries        = trackedVideo.Boundries;
                mouseDataResult.VideoOutcome      = SingleFileResult.Ok;
                mouseDataResult.GapDistance       = trackedVideo.GapDistance;
                mouseDataResult.ThresholdValue    = trackedVideo.ThresholdValue;
                mouseDataResult.ThresholdValue2   = trackedVideo.ThresholdValue2;
                mouseDataResult.StartFrame        = trackedVideo.StartFrame;
                mouseDataResult.EndFrame          = trackedVideo.EndFrame;
                mouseDataResult.SmoothMotion      = trackedVideo.SmoothMotion;
                mouseDataResult.FrameRate         = trackedVideo.FrameRate;
                mouseDataResult.UnitsToMilimeters = trackedVideo.UnitsToMilimeters;
                mouseDataResult.SmoothFactor      = 0.68;
                mouseDataResult.GenerateResults(file);
                mouseDataResult.PelvicArea  = trackedVideo.PelvicArea1;
                mouseDataResult.PelvicArea2 = trackedVideo.PelvicArea2;
                mouseDataResult.PelvicArea3 = trackedVideo.PelvicArea3;
                mouseDataResult.PelvicArea4 = trackedVideo.PelvicArea4;
                mouseDataResult.Type        = mouse.Type;
                mouseDataResult.DataLoadComplete();

                if (mouse.Results == null)
                {
                    mouse.Results = new Dictionary <ISingleFile, IMouseDataResult>();
                }

                mouse.UpdateProgress(singleFile, 1);
                mouse.Results.Add(singleFile, mouseDataResult);
                mouse.ReviewCommand.RaiseCanExecuteChangedNotification();
            }//);

            ExportAllCommand.RaiseCanExecuteChangedNotification();
        }
コード例 #7
0
 public ExportAllCommandMenuItem(ExportAllCommand command) : base(command)
 {
 }