private void exportToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog saveFile = new SaveFileDialog { Filter = "AnimalExport files (*.txt)|*.txt" }; if (saveFile.ShowDialog() == DialogResult.OK) { try { administration.Export(saveFile.FileName); } catch (PathTooLongException ex) { ExceptionOccuredForm.Show(this, "The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.", ex.Message); } catch (DirectoryNotFoundException ex)//Note: exception has misleading name, directory should be path { ExceptionOccuredForm.Show(this, "The specified path is invalid, such as being on an unmapped drive.", ex.Message); } catch (IOException ex) { ExceptionOccuredForm.Show(this, "I/O error, path already exists and cannot overwrite path, or another IO error occured", ex.Message); } catch (SecurityException ex) { ExceptionOccuredForm.Show(this, "This application does not have the security permission to access the path.", ex.Message); } catch (UnauthorizedAccessException ex) { ExceptionOccuredForm.Show(this, "Access is denied to path", ex.Message); } catch (ArgumentException ex) { ExceptionOccuredForm.Show(this, "path refers to a non-file device, such as \"con:\", \"com1:\", \"lpt1:\", etc.", ex.Message); } catch (NotSupportedException ex) { ExceptionOccuredForm.Show(this, "The animals cannot be written to the underlying file stream because a buffer overrun occured in the writer, the export is incomplete and/or corrupt.", ex.Message); } } }
private void saveToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog saveFile = new SaveFileDialog { Filter = "AnimalDB files (*.adb)|*.adb" }; if (saveFile.ShowDialog() == DialogResult.OK) { try { administration.Save(saveFile.FileName); } catch (PathTooLongException ex) { ExceptionOccuredForm.Show(this, "The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.", ex.Message); } catch (DirectoryNotFoundException ex)//Note: exception has misleading name, directory should be path { ExceptionOccuredForm.Show(this, "The specified path is invalid, such as being on an unmapped drive.", ex.Message); } catch (IOException ex) { ExceptionOccuredForm.Show(this, "I/O error, path already exists and cannot overwrite path", ex.Message); } catch (SecurityException ex) { ExceptionOccuredForm.Show(this, "This application does not have the security permission to access the path.", ex.Message); } catch (NotSupportedException ex) { ExceptionOccuredForm.Show(this, "path is empty, contains only white space, or contains one or more invalid characters -or- refers to a non-file device, such as \"con:\", \"com1:\", \"lpt1:\", etc.", ex.Message); } catch (ArgumentException ex) { ExceptionOccuredForm.Show(this, "path refers to a non-file device, such as \"con:\", \"com1:\", \"lpt1:\", etc.", ex.Message); } catch (SerializationException ex) { ExceptionOccuredForm.Show(this, "One or more animal objects use classes that are not marked as serializable", ex.Message); } } }
private void loadToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog openFile = new OpenFileDialog { Filter = "AnimalDB files(*.adb) | *.adb" }; if (openFile.ShowDialog() == DialogResult.OK) { try { administration.Load(openFile.FileName); } catch (PathTooLongException ex) { ExceptionOccuredForm.Show(this, "The specified path, file name, or both exceed the system-defined maximum length. For example, on Windows-based platforms, paths must be less than 248 characters, and file names must be less than 260 characters.", ex.Message); return; } catch (DirectoryNotFoundException ex)//Note: exception has misleading name, directory should be path { ExceptionOccuredForm.Show(this, "The specified path is invalid, such as being on an unmapped drive.", ex.Message); return; } catch (IOException ex) { ExceptionOccuredForm.Show(this, "I/O error, path already exists and cannot overwrite path", ex.Message); return; } catch (SecurityException ex) { ExceptionOccuredForm.Show(this, "This application does not have the security permission to access the path.", ex.Message); return; } catch (NotSupportedException ex) { ExceptionOccuredForm.Show(this, "path is empty, contains only white space, or contains one or more invalid characters -or- refers to a non-file device, such as \"con:\", \"com1:\", \"lpt1:\", etc.", ex.Message); return; } catch (ArgumentException ex) { ExceptionOccuredForm.Show(this, "path refers to a non-file device, such as \"con:\", \"com1:\", \"lpt1:\", etc.", ex.Message); return; } catch (SerializationException ex) { ExceptionOccuredForm.Show(this, "Deserialisation has failed, input file corrupt and/or invalid?", ex.Message); return; } } listboxNotReserved.Items.Clear(); listboxReserved.Items.Clear(); foreach (Animal a in administration.Animals) { if (a.IsReserved) { listboxReserved.Items.Add(a); } else if (!a.IsReserved) { listboxNotReserved.Items.Add(a); } } }