public void GetScreenShotNameTest002_RegularName()
        {
            Mock <ITrackerFactory> trackerFactory = new Mock <ITrackerFactory>();

            Mock <ISettings> settings = new Mock <ISettings>();

            settings.Setup(s => s.Packs_ScreenshotNameTemplate)
            .Returns("Pack_{d:yyyy_MM_dd}-{0:yyyy_MM_dd}");

            trackerFactory.Setup(tf => tf.GetService <ISettings>()).Returns(settings.Object);

            trackerFactory.Setup(tf => tf.GetDateTimeNow()).Returns(new DateTime(2016, 12, 23));

            Mock <ITracker> tracker = new Mock <ITracker>();

            tracker.Setup(t => t.Packs).Returns(
                new ObservableCollection <Pack>(
                    Enumerable.Range(0, 4).Select(i => new Pack())
                    ));
            trackerFactory.Setup(tf => tf.GetTracker()).Returns(tracker.Object);

            string expected = "Pack_2016_12_23-2016_12_23";

            ScreenshotNameProvider provider = new ScreenshotNameProvider(trackerFactory.Object);

            string actual = provider.GetScreenShotName(ScreenshotNameProvider.ScreenShotType.Pack);

            Assert.AreEqual(expected, actual);
        }
 public async Task TakePackScreenshot()
 {
     string fileName = new ScreenshotNameProvider().GetScreenShotName(ScreenshotNameProvider.ScreenShotType.Pack);
     await trackerFactory.GetFileManager().SaveScreenShot(fileName);
 }
        private void btnScreenShot_Click(object sender, RoutedEventArgs e)
        {
            string fileName = new ScreenshotNameProvider().GetScreenShotName(ScreenshotNameProvider.ScreenShotType.Regular);

            Task.Factory.StartNew(() => new FileManager(new TrackerFactory()).SaveScreenShot(fileName));
        }