private void ActionMarkRows() { DataGridView dataGridView = DataGridViewLocationHistory; dataGridView.ClearSelection(); HashSet <FileEntry> files = DataGridViewHandler.GetSelectFileEntries(ActiveDataGridView, ActiveDataGridViewSelectedFilesMode); for (int columnIndex = 0; columnIndex < DataGridViewHandler.GetColumnCount(DataGridViewDateTime); columnIndex++) { DataGridViewGenericColumn dataGridViewGenericColumn = DataGridViewHandler.GetColumnDataGridViewGenericColumn(DataGridViewDateTime, columnIndex); if (dataGridViewGenericColumn != null) { if (files.Contains(dataGridViewGenericColumn.FileEntryAttribute.FileEntry)) { DateTime?dataTimeTaken = DataGridViewHandlerDate.GetUserInputDateTaken(DataGridViewDateTime, columnIndex, null); DateTime?dataTimeLocationUtc = DataGridViewHandlerDate.GetUserInputLocationDate(DataGridViewDateTime, columnIndex, null); DateTime?dateTimeSuggestionFromGPSDateTime = DataGridViewHandlerDate.GetSuggestionFromGPSDate(DataGridViewDateTime, columnIndex, null); FindAndSelect(dataTimeTaken, dataTimeLocationUtc, dateTimeSuggestionFromGPSDateTime); } } } if (dataGridView.SelectedRows.Count > 0) { selectedRowsSorted.Clear(); foreach (DataGridViewRow dataGridViewRow in dataGridView.SelectedRows) { selectedRowsSorted.Add(dataGridViewRow.Index); } selectedRowsSorted.Sort(); SetRowVisbible(visibleRowIndex); SetButtonStatus(enabledPreviousNext: selectedRowsSorted.Count > 0); } else { selectedRowsSorted.Clear(); SetButtonStatus(enabledPreviousNext: selectedRowsSorted.Count > 0); } Properties.Settings.Default.LocationAnalyticsZoomLevel = (byte)comboBoxMapZoomLevel.SelectedIndex; GetLocationAndShow(MapProvider.OpenStreetMap); selectionChanged = false; }
public static void PopulateGoogleHistoryCoordinateAndNearby(DataGridView dataGridViewMap, DataGridView dataGridViewDate, int columnIndexMap, int timeZoneShift, int accepedIntervalSecound) { #region Check if Aggegated DataGridViewGenericColumn dataGridViewGenericColumn = DataGridViewHandler.GetColumnDataGridViewGenericColumn(dataGridViewMap, columnIndexMap); if (dataGridViewGenericColumn == null) { return; } #endregion #region Get Metadata Metadata metadata = dataGridViewGenericColumn.Metadata; if (metadata == null) { DataGridViewHandler.SetCellValue(dataGridViewMap, columnIndexMap, headerGoogleLocations, tagGoogleCoordinateUTC, "No metadata loaded"); return; } #endregion DateTime?dateTaken = DataGridViewHandlerDate.GetUserInputDateTaken(dataGridViewDate, null, dataGridViewGenericColumn.FileEntryAttribute); DateTime?locationDate = DataGridViewHandlerDate.GetUserInputLocationDate(dataGridViewDate, null, dataGridViewGenericColumn.FileEntryAttribute); if (dateTaken == null) { dateTaken = metadata.MediaDateTaken; } if (locationDate == null) { locationDate = metadata.LocationDateTime; } PopulateGoogleHistoryCoordinate( dataGridViewMap, columnIndexMap, timeZoneShift, accepedIntervalSecound, dateTaken, locationDate, metadata); PopulateNearbyCoordinate( dataGridViewMap, columnIndexMap, timeZoneShift, accepedIntervalSecound, (DateTime)metadata.FileDate, dateTaken, locationDate); }
private void ShowFormLocationHistoryAnalytics(DataGridView dataGridViewLocationHistory, DataGridView dataGridViewDate, DataGridView dataGridViewActive) { using (new WaitCursor()) { SetButtonStatus(false); List <DateTime> datesFound = new List <DateTime>(); DateTime? dateTimeFrom = null; DateTime? dateTimeTo = null; if (DataGridViewHandler.GetIsAgregated(dataGridViewActive)) { //ShowFormLocationHistoryAnalyticsInit(); PopulateMetadataLocationsClear(dataGridViewLocationHistory); foreach (int columnIndex in DataGridViewHandler.GetColumnSelected(dataGridViewActive)) { DataGridViewGenericColumn dataGridViewGenericColumn = DataGridViewHandler.GetColumnDataGridViewGenericColumn(dataGridViewActive, columnIndex); if (dataGridViewGenericColumn != null) { DateTime?date = DataGridViewHandlerDate.GetUserInputDateTaken(dataGridViewDate, null, dataGridViewGenericColumn.FileEntryAttribute); if (date != null) { AddDatesFound((DateTime)date, ref datesFound); if (dateTimeFrom == null || date < dateTimeFrom) { dateTimeFrom = date; } if (dateTimeTo == null || date > dateTimeTo) { dateTimeTo = date; } } date = DataGridViewHandlerDate.GetUserInputLocationDate(dataGridViewDate, null, dataGridViewGenericColumn.FileEntryAttribute); if (date != null) { AddDatesFound((DateTime)date, ref datesFound); if (dateTimeFrom == null || date < dateTimeFrom) { dateTimeFrom = date; } if (dateTimeTo == null || date > dateTimeTo) { dateTimeTo = date; } } if (dataGridViewGenericColumn != null && dataGridViewGenericColumn.Metadata != null) { date = dataGridViewGenericColumn.Metadata.MediaDateTaken; if (date != null) { AddDatesFound((DateTime)date, ref datesFound); if (dateTimeFrom == null || date < dateTimeFrom) { dateTimeFrom = date; } if (dateTimeTo == null || date > dateTimeTo) { dateTimeTo = date; } } date = dataGridViewGenericColumn.Metadata.LocationDateTime; if (date != null) { AddDatesFound((DateTime)date, ref datesFound); if (dateTimeFrom == null || date < dateTimeFrom) { dateTimeFrom = date; } if (dateTimeTo == null || date > dateTimeTo) { dateTimeTo = date; } } //date = dataGridViewGenericColumn.Metadata.FileDateCreated; //if (date != null) //{ // if (dateTimeFrom == null || date < dateTimeFrom) dateTimeFrom = date; // if (dateTimeTo == null || date > dateTimeTo) dateTimeTo = date; //} //date = dataGridViewGenericColumn.Metadata.FileDateModified; //if (date != null) //{ // if (dateTimeFrom == null || date < dateTimeFrom) dateTimeFrom = date; // if (dateTimeTo == null || date > dateTimeTo) dateTimeTo = date; //} if (dataGridViewGenericColumn.Metadata.FileDateCreated != null && dataGridViewGenericColumn.Metadata.FileDateModified != null) { date = (dataGridViewGenericColumn.Metadata.FileDateCreated < dataGridViewGenericColumn.Metadata.FileDateModified ? dataGridViewGenericColumn.Metadata.FileDateCreated : dataGridViewGenericColumn.Metadata.FileDateModified); AddDatesFound((DateTime)date, ref datesFound); } } } } DateTime?dateTimeFoundFrom = null; DateTime?dateTimeFoundTo = null; for (int index = 0; index < datesFound.Count - 1; index++) { if (index == 0) { dateTimeFoundFrom = datesFound[index]; } if (datesFound[index].AddDays(1) != datesFound[index + 1]) { dateTimeFoundTo = datesFound[index]; } if (index == datesFound.Count - 2) { dateTimeFoundTo = datesFound[index + 1]; } if (dateTimeFoundFrom != null && dateTimeFoundTo == null) { dateTimeFoundTo = ((DateTime)dateTimeFoundFrom).AddDays(1); } if (dateTimeFoundFrom == null && dateTimeFoundTo != null) { dateTimeFoundFrom = ((DateTime)dateTimeFoundTo).AddDays(-1); } if (dateTimeFoundFrom != null && dateTimeFoundTo != null) { PopulateMetadataLocationsAdd(dataGridViewLocationHistory, (DateTime)dateTimeFoundFrom, ((DateTime)dateTimeFoundTo).AddDays(1).AddMilliseconds(-1), Properties.Settings.Default.LocationAnalyticsMinimumTimeInterval * 60, (float)Properties.Settings.Default.LocationAnalyticsMinimumDistance); dateTimeFoundFrom = datesFound[index + 1]; dateTimeFoundTo = null; } } } if (dateTimeFrom != null) { DefaultDateTimeFrom = new DateTime(((DateTime)dateTimeFrom).Year, ((DateTime)dateTimeFrom).Month, ((DateTime)dateTimeFrom).Day, 0, 0, 0, DateTimeKind.Utc); } if (dateTimeTo != null) { DefaultDateTimeTo = new DateTime(((DateTime)dateTimeTo).Year, ((DateTime)dateTimeTo).Month, ((DateTime)dateTimeTo).Day, 0, 0, 0, DateTimeKind.Utc).AddDays(1); } } }