private void Serialize_Click(object sender, RoutedEventArgs e) { AllModels allModels = new AllModels(appViewModel.ModulesTab.Modules, appViewModel.VehiclesTab.Vehicles); string fileName = ""; string fileExtension = "";//StringBuilder string filter = string.Join("|", Serializers.Select(x => x.Format)); SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = filter; if (saveFileDialog.ShowDialog() == true) { fileName = saveFileDialog.FileName; } //fileName = System.IO.Path.GetFileName(fileName); fileExtension = System.IO.Path.GetExtension(fileName); //CivilianVehicle testVehicle = new CivilianVehicle() //{ // Engine = new Engine() // { // Name = "Engine1", // Power = 100, // Vulnerability = "Good" // }, // Name = "Civilian", // Price = 200, // SeatsCount = 3, // Weight = "Big", // Tracks = new Tracks() // { // Name = "Tracks1", // Vulnerability = "Bad", // WeightCapacity = 300 // } //}; foreach (ISerializers serializer in Serializers) { string serializerExtension = serializer.Format.Substring(serializer.Format.LastIndexOf('.'), serializer.Format.Length - serializer.Format.LastIndexOf('.')); if (serializerExtension == fileExtension) { SelectedSerializer = serializer; SelectedSerializer.SerializeObject(allModels, fileName); break; } } try { FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read); foreach (var plugin in Plugins) { if (comboBoxPlugins.SelectedItem == plugin.Key) { plugin.Value.Archive(file); file.Close(); File.Delete(fileName); } } } catch { } }