public DateDaylightSavingsTimeCorrection(Window owner, FileDatabase database, FileTableEnumerator fileEnumerator) : base(owner) { // Check the arguments for null ThrowIf.IsNullArgument(database, nameof(database)); ThrowIf.IsNullArgument(fileEnumerator, nameof(fileEnumerator)); this.InitializeComponent(); this.fileDatabase = database; this.fileEnumerator = fileEnumerator; this.currentImageRow = fileEnumerator.CurrentRow; }
public DarkImagesThreshold(FileDatabase database, int currentImageIndex, CarnassialUserRegistrySettings state, Window owner) { this.InitializeComponent(); this.Owner = owner; this.database = database; this.imageEnumerator = new FileTableEnumerator(database, currentImageIndex); this.darkPixelThreshold = state.DarkPixelThreshold; this.darkPixelRatio = state.DarkPixelRatioThreshold; this.darkPixelRatioFound = 0; this.disposed = false; this.isColor = false; this.updateImageQualityForAllSelectedImagesStarted = false; this.stop = false; this.userSettings = state; }
public DarkImagesThreshold(TimelapseWindow owner, FileDatabase fileDatabase, TimelapseUserRegistrySettings state, int currentImageIndex) : base(owner) { // Check the arguments for null ThrowIf.IsNullArgument(fileDatabase, nameof(fileDatabase)); ThrowIf.IsNullArgument(state, nameof(state)); this.InitializeComponent(); this.Owner = owner; this.fileDatabase = fileDatabase; this.imageEnumerator = new FileTableEnumerator(fileDatabase); this.imageEnumerator.TryMoveToFile(currentImageIndex); this.darkPixelThreshold = state.DarkPixelThreshold; this.darkPixelRatio = state.DarkPixelRatioThreshold; this.darkPixelRatioFound = 0; this.disposed = false; this.isColor = false; this.updateImageQualityForAllSelectedImagesStarted = false; this.state = state; dispatcherTimer.Tick += this.DispatcherTimer_Tick; dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 100); }
protected List<FileExpectations> PopulateDefaultDatabase(FileDatabase fileDatabase, bool excludeSubfolderFiles) { TimeZoneInfo imageSetTimeZone = fileDatabase.ImageSet.GetTimeZone(); // files in same folder as .tdb and .ddb DateTimeAdjustment martenDateTimeAdjustment; ImageRow martenImage = this.CreateFile(fileDatabase, imageSetTimeZone, TestConstant.FileExpectation.InfraredMarten, out martenDateTimeAdjustment); Assert.IsTrue(martenDateTimeAdjustment.HasFlag(DateTimeAdjustment.MetadataDate) && martenDateTimeAdjustment.HasFlag(DateTimeAdjustment.MetadataTime)); DateTimeAdjustment bobcatDatetimeAdjustment; ImageRow bobcatImage = this.CreateFile(fileDatabase, imageSetTimeZone, TestConstant.FileExpectation.DaylightBobcat, out bobcatDatetimeAdjustment); Assert.IsTrue(bobcatDatetimeAdjustment.HasFlag(DateTimeAdjustment.MetadataDate) && bobcatDatetimeAdjustment.HasFlag(DateTimeAdjustment.MetadataTime)); fileDatabase.AddFiles(new List<ImageRow>() { martenImage, bobcatImage }, null); fileDatabase.SelectFiles(FileSelection.All); FileTableEnumerator fileEnumerator = new FileTableEnumerator(fileDatabase); Assert.IsTrue(fileEnumerator.TryMoveToFile(0)); Assert.IsTrue(fileEnumerator.MoveNext()); ColumnTuplesWithWhere bobcatUpdate = new ColumnTuplesWithWhere(); bobcatUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.Choice0, "choice b")); bobcatUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.Counter0, 1.ToString())); bobcatUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.FlagNotVisible, true)); bobcatUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.Note3, "bobcat")); bobcatUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.NoteNotVisible, "adult")); bobcatUpdate.SetWhere(fileEnumerator.Current.ID); fileDatabase.UpdateFiles(new List<ColumnTuplesWithWhere>() { bobcatUpdate }); long martenImageID = fileDatabase.Files[0].ID; fileDatabase.UpdateFile(martenImageID, TestConstant.DefaultDatabaseColumn.Choice0, "choice b"); fileDatabase.UpdateFile(martenImageID, TestConstant.DefaultDatabaseColumn.Counter0, 1.ToString()); fileDatabase.UpdateFile(martenImageID, TestConstant.DefaultDatabaseColumn.FlagNotVisible, Boolean.TrueString); fileDatabase.UpdateFile(martenImageID, TestConstant.DefaultDatabaseColumn.Note3, "American marten"); fileDatabase.UpdateFile(martenImageID, TestConstant.DefaultDatabaseColumn.NoteNotVisible, "adult"); // generate expectations List<FileExpectations> fileExpectations = new List<FileExpectations>() { new FileExpectations(TestConstant.FileExpectation.InfraredMarten), new FileExpectations(TestConstant.FileExpectation.DaylightBobcat), }; // files in subfolder if (excludeSubfolderFiles == false) { DateTimeAdjustment martenPairDateTimeAdjustment; ImageRow martenPairImage = this.CreateFile(fileDatabase, imageSetTimeZone, TestConstant.FileExpectation.DaylightMartenPair, out martenPairDateTimeAdjustment); Assert.IsTrue(martenPairDateTimeAdjustment.HasFlag(DateTimeAdjustment.MetadataDate) && martenPairDateTimeAdjustment.HasFlag(DateTimeAdjustment.MetadataTime)); DateTimeAdjustment coyoteDatetimeAdjustment; ImageRow coyoteImage = this.CreateFile(fileDatabase, imageSetTimeZone, TestConstant.FileExpectation.DaylightCoyote, out coyoteDatetimeAdjustment); Assert.IsTrue(coyoteDatetimeAdjustment.HasFlag(DateTimeAdjustment.MetadataDate) && coyoteDatetimeAdjustment.HasFlag(DateTimeAdjustment.MetadataTime)); fileDatabase.AddFiles(new List<ImageRow>() { martenPairImage, coyoteImage }, null); fileDatabase.SelectFiles(FileSelection.All); ColumnTuplesWithWhere coyoteImageUpdate = new ColumnTuplesWithWhere(); coyoteImageUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.Note3, "coyote")); coyoteImageUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.NoteNotVisible, "adult")); coyoteImageUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.NoteWithCustomDataLabel, String.Empty)); coyoteImageUpdate.Columns.Add(new ColumnTuple(TestConstant.DefaultDatabaseColumn.Note0, "escaped field, because a comma is present")); coyoteImageUpdate.SetWhere(fileEnumerator.Current.ID); fileDatabase.UpdateFiles(new List<ColumnTuplesWithWhere>() { coyoteImageUpdate }); long martenPairImageID = fileDatabase.Files[3].ID; fileDatabase.UpdateFile(martenPairImageID, TestConstant.DefaultDatabaseColumn.Note3, "American marten"); fileDatabase.UpdateFile(martenPairImageID, TestConstant.DefaultDatabaseColumn.NoteNotVisible, "adult"); fileDatabase.UpdateFile(martenPairImageID, TestConstant.DefaultDatabaseColumn.NoteWithCustomDataLabel, String.Empty); fileDatabase.UpdateFile(martenPairImageID, TestConstant.DefaultDatabaseColumn.Note0, "escaped field due to presence of \",\""); fileExpectations.Add(new FileExpectations(TestConstant.FileExpectation.DaylightMartenPair)); fileExpectations.Add(new FileExpectations(TestConstant.FileExpectation.DaylightCoyote)); } // pull the file data table again so the updates are visible to .csv export fileDatabase.SelectFiles(FileSelection.All); // complete setting expectations for (int fileIndex = 0; fileIndex < fileDatabase.Files.RowCount; ++fileIndex) { FileExpectations fileExpectation = fileExpectations[fileIndex]; fileExpectation.ID = fileIndex + 1; } return fileExpectations; }