NaturalGroundingPlayer.EditVideoWindow.menuSelectFile_Click C# (CSharp) Method

menuSelectFile_Click() private method

private menuSelectFile_Click ( object sender, RoutedEventArgs e ) : void
sender object
e System.Windows.RoutedEventArgs
return void
        private async void menuSelectFile_Click(object sender, RoutedEventArgs e) {
            if (!isNew) {
                // Bind to another file.
                Microsoft.Win32.OpenFileDialog dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.InitialDirectory = Settings.NaturalGroundingFolder;
                if (video.MediaType == MediaType.Video)
                    string.Format("Video Files|*{0})", string.Join(";*", Settings.VideoExtensions));
                else if (video.MediaType == MediaType.Audio)
                    string.Format("Audio Files|*{0})", string.Join(";*", Settings.AudioExtensions));
                else if (video.MediaType == MediaType.Image)
                    string.Format("Image Files|*{0})", string.Join(";*", Settings.ImageExtensions));
                if (dlg.ShowDialog(IsLoaded ? this : Owner).Value == true) {
                    if (!dlg.FileName.StartsWith(Settings.NaturalGroundingFolder))
                        MessageBox.Show("You must select a file within your Natural Grounding folder.", "Error", MessageBoxButton.OK, MessageBoxImage.Information);
                    else {
                        string BindFile = dlg.FileName.Substring(Settings.NaturalGroundingFolder.Length);
                        if (business.GetVideoByFileName(BindFile) == null) {
                            video.FileName = BindFile;
                            video.Length = null;
                            video.Height = null;
                            await LoadMediaInfoAsync();
                            if (isPopup)
                                SaveChanges();
                        } else
                            MessageBox.Show("This file is already in the database.", "Error", MessageBoxButton.OK, MessageBoxImage.Information);
                    }
                    fileNotFound = false;
                }
            } else {
                // Bind file to an existing entry.
                SearchSettings settings = new SearchSettings() {
                    MediaType = (MediaType)video.MediaTypeId,
                    ConditionField = FieldConditionEnum.FileExists,
                    ConditionValue = BoolConditionEnum.No,
                    ListIsInDatabase = true
                };
                VideoListItem Result = SearchVideoWindow.Instance(settings);
                if (Result != null) {
                    // Close and re-open selected entry.
                    Close();
                    EditVideoWindow NewForm = Instance(Result.MediaId, null, player, callback);
                    NewForm.video.FileName = video.FileName;
                    NewForm.video.Length = null;
                    NewForm.video.Height = null;
                    await NewForm.LoadMediaInfoAsync();
                }
            }
        }