public async Task <IActionResult> GetCsvVideoPosition(IFormFile uavLogsCsv, string time) { long csvFilLength = uavLogsCsv.Length; long imageFilLength = uavLogsCsv.Length; string csvFileExtension = Path.GetExtension(uavLogsCsv.FileName).ToLower(); if (csvFilLength > 0) { if (csvFileExtension != ".csv") { return(BadRequest("wrong CSV file format")); } } else { return(BadRequest("CSV File Not Found")); } List <UavLog> uavLogs = new List <UavLog>(); using (TextFieldParser csvParser = new TextFieldParser(uavLogsCsv.OpenReadStream())) { uavLogs = CsvUtilities.GetUavLogFromTextFile(csvParser); } TimeSpan timeSpan = Helpers.GetTimeSpan(time); var photolog = Helpers.GetUavLogFromVideoTimeStamp(timeSpan, uavLogs);//"03:56:22" return(Ok(photolog)); }
private void GetGpsLocationFormVideoLog_Click(object videoLogCsv, EventArgs e) { DialogResult result = openFileDialog.ShowDialog(); // Show the dialog. if (result == DialogResult.OK) // Test result. { string videoLogCsvPath = openFileDialog.FileName; filePathTextBox.Text = string.Format("{0}/{1}", Path.GetDirectoryName(videoLogCsvPath), videoLogCsvPath); filePathTextBox.Refresh(); DialogResult messageResult = MessageBox.Show($"You want to get screenshot '{ScreenShotTimeStamptextBox1.Text}' GPS position from file:'{Path.GetFileName(videoLogCsvPath)}'?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); if (messageResult == DialogResult.Yes) { try { string extension = Path.GetExtension(videoLogCsvPath).ToLower(); if (extension != ".csv") { string message = "Wrong File Type"; string title = "Error"; MessageBox.Show(message, title); GetGpsLocationFormVideoLog.PerformClick(); } else { List <UavLog> uavLogs = new List <UavLog>(); using (TextFieldParser csvParser = new TextFieldParser(videoLogCsvPath)) { uavLogs = CsvUtilities.GetUavLogFromTextFile(csvParser); } var sortedUavLogs = Helpers.FilterUavlosAndSort(uavLogs); var videoLenght = Helpers.GetVideoLenghtInMilliseconds(sortedUavLogs); var videoLengh = Helpers.ConvertMilisecondsToHMSmm(videoLenght); if (_timeSpan.TotalMilliseconds < videoLenght) { var photolog = Helpers.GetUavLogFromVideoTimeStamp(_timeSpan, uavLogs); jsonOutput.Text = JsonConvert.SerializeObject(photolog); jsonOutput.ScrollBars = ScrollBars.Vertical; jsonOutput.WordWrap = false; } else { MessageBox.Show($"Screenshot time {ScreenShotTimeStamptextBox1.Text} is bigger than the video time {videoLengh}", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); ScreenShotTimeStamptextBox1.Focus(); GetGpsLocationFormVideoLog.Enabled = false; filePathTextBox.Text = ""; filePathTextBox.Refresh(); } } } catch { // } } else { GetGpsLocationFormVideoLog.PerformClick(); } } }