/// <summary> /// Gets the file type the extension is to be added to /// </summary> /// <param name="fileTypes">Current set of file types</param> /// <param name="extension">Extensino to check</param> /// <param name="associatedType">Type the extension should be associated with</param> /// <returns>File type the extension is to be added to</returns> public static FileType GetFileTypeForExtension(FileType[] fileTypes, String extension, MediaItemTypeEnum associatedType) { if (GeneralMethods.MessageBox("There is currently no file type associated with " + associatedType.ToString().ToLower() + "s containing the extension \"" + extension + "\". Would you like to add one?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes) { GetTextValueDialog gtvd = new GetTextValueDialog(TextValueDialogInputType.ComboBox); gtvd.Style = (Style)App.Current.FindResource("dialogWindow"); gtvd.Owner = Application.Current.MainWindow; gtvd.Title = "File Type"; gtvd.Header = "Enter the name for the file type:"; gtvd.ItemsSource = fileTypes; gtvd.DisplayMemberPath = "Name"; gtvd.Width = 500; FileType fileType = null; if (GeneralMethods.GetNullableBoolValue(gtvd.ShowDialog())) { if (fileTypes.Any(p => p.Name.ToLower() == gtvd.Value.ToLower())) { fileType = fileTypes.First(p => p.Name.ToLower() == gtvd.Value.ToLower()); } else { fileType = new FileType(); fileType.Name = gtvd.Value; fileType.MediaItemType = associatedType; } fileType.Extensions.Add(extension); } return(fileType); } return(null); }
private void miMerge_Click(object sender, RoutedEventArgs e) { List <FileType> selectedFileTypes = new List <FileType>(); foreach (FileType selectedFileType in dgFileTypes.SelectedItems) { selectedFileTypes.Add(selectedFileType); } selectedFileTypes.Sort(); GetTextValueDialog gtvd = new GetTextValueDialog(TextValueDialogInputType.TextBox); gtvd.Style = (Style)FindResource("dialogWindow"); gtvd.Owner = Application.Current.MainWindow; gtvd.Title = "Merge File Types"; gtvd.Header = "Enter the name of the merged file types:"; gtvd.Value = selectedFileTypes[0].Name; gtvd.Width = 500; if (GeneralMethods.GetNullableBoolValue(gtvd.ShowDialog())) { FileType mergedFileType; if (selectedFileTypes.Any(p => p.Name == gtvd.Value)) { mergedFileType = selectedFileTypes.First(p => p.Name == gtvd.Value); selectedFileTypes.Remove(mergedFileType); } else { if (FileType.FileTypeNameExists(gtvd.Value)) { GeneralMethods.MessageBoxApplicationError("There is already another file type with the name \"" + gtvd.Value + "\""); return; } mergedFileType = new FileType(); mergedFileType.Name = gtvd.Value; mergedFileType.MediaItemType = AssociatedType; } foreach (FileType fileType in selectedFileTypes) { foreach (IntelligentString extension in fileType.Extensions) { if (!mergedFileType.Extensions.Contains(extension)) { mergedFileType.Extensions.Add(extension); } } } mergedFileType.Save(); DeleteFileTypes(selectedFileTypes.ToArray()); if (!FileTypes.Contains(mergedFileType)) { AddFileType(mergedFileType); } dgFileTypes.SelectedItem = mergedFileType; } }