buechermarkt/BuechermarktClient/BookTypesEdit.xaml.cs

117 lines
2.9 KiB
C#
Raw Permalink Normal View History

2017-09-27 13:57:10 +00:00
using BuechermarktClient.Models;
using MongoDB.Driver;
using System;
using System.ComponentModel;
using System.Threading;
using System.Windows;
namespace BuechermarktClient
{
/// <summary>
/// Interaktionslogik für BookTypesEdit.xaml
/// </summary>
public partial class BookTypesEdit : Window, INotifyPropertyChanged
{
private bool New = false;
private BookType BookType = null;
private string _Name;
public string BName
{
get
{
return _Name;
}
set {
if(value != _Name)
{
_Name = value;
OnPropertyChanged("BName");
}
}
}
private string _ISBN;
public string BISBN
{
get
{
return _ISBN;
}
set
{
if (value != _ISBN)
{
_ISBN = value;
OnPropertyChanged("BISBN");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public BookTypesEdit(BookType booktype)
{
DataContext = this;
InitializeComponent();
if(booktype == null)
{
BookType = new BookType();
New = true;
} else
{
BookType = booktype;
BName = booktype.Name;
BISBN = booktype.ISBN;
}
}
private void Save_Click(object sender, RoutedEventArgs e)
{
BookType.Name = BName;
BookType.ISBN = BISBN;
while (true)
{
try
{
if (New)
{
MainWindow.BookTypeCollection.InsertOne(BookType);
}
else
{
MainWindow.BookTypeCollection.FindOneAndUpdate(bt => bt.ID == BookType.ID, Builders<BookType>.Update.Set((bt) => bt.Name, BookType.Name).Set(bt => bt.ISBN, BookType.ISBN));
}
Close();
return;
} catch (MongoExecutionTimeoutException)
{
Thread.Sleep(100);
}
}
}
private void Delete_Click(object sender, RoutedEventArgs e)
{
while (true)
{
try
{
if (BookType.ID != null)
{
MainWindow.BookTypeCollection.DeleteOne(bt => bt.ID == BookType.ID);
}
Close();
return;
} catch (MongoExecutionTimeoutException)
{
Thread.Sleep(100);
}
}
}
}
}