public MainWindow() { InitializeComponent(); DataContext = new ViewModels.BaseViewModel(this); personDataModel = new DatabaseLibrary.Models.DataModel(); }
/// <summary> /// zdarzenie wywoływane kliknięciem na import danych z pliku XML w menu kontekstowym listy /// import XML realizowany jest jako deserializacja klasy PersonDataModel /// </summary> /// <param name="sender">obiekt wysyłający zdarzenie</param> /// <param name="e">argumenty</param> private void ImportXML_MenuItem_Click(object sender, RoutedEventArgs e) { var dialog = new OpenFileDialog(); dialog.Filter = "XML documents (.xml)|*.xml"; dialog.DefaultExt = ".xml"; if (dialog.ShowDialog() == true) { // w przypadku importu plik musi istnieć // aby nie wystąpiły rzadne wyjątki if (File.Exists(dialog.FileName)) { using (var stream = new StreamReader(dialog.FileName)) { var serialize = new XmlSerializer(typeof(DatabaseLibrary.Models.DataModel)); // deserializacja danych personDataModel = null; personDataModel = (DatabaseLibrary.Models.DataModel)serialize.Deserialize(stream); // zapis wczytanych danych do bazy using (var db = new MyDatabaseContext()) { foreach (var p in personDataModel) { var person = new Person { ID = p.ID, FirstName = p.FirstName, LastName = p.LastName, Age = p.Age, Contact = new Contact { City = p.City, Street = p.Street, HomeNumber = p.HomeNumber, PostCode = p.PostCode, PostOffice = p.PostOffice, Email = p.Email, Phone = p.Phone } }; db.Persons.Add(person); } db.SaveChanges(); } personDataModel.Get(); MessageBox.Show("Import danych z XML zakończony powodzeniem!\r\n" + "Jeśli zaimportowanych danych nie widać na liście uruchom ponownie program.", "Import z XML", MessageBoxButton.OK, MessageBoxImage.Information); } } } }