public void Edit <T>(T entity) where T : Entity, new() { var newEntity = entity == null; var id = -1; if (entity != null) { id = entity.GetId(); // @gmrukwa: to not to mix sessions } using (var context = new Context()) { // @gmrukwa: getting by id to not to mix sessions entity = newEntity ? new T() : context.Get <T>(id); var vm = EditableEntityVm <T> .GetVm(entity, _dataService, context); var window = new AddUpdateWindow(vm) { Owner = App.Current.MainWindow }; var changesAccepted = window.ShowDialog(); if (changesAccepted.HasValue && changesAccepted.Value) { var dbset = context.Get <T>(); if (newEntity) { dbset.Add(entity); } context.SaveChanges(); } } _refreshingService.Refresh(); }
/// <summary> /// adds a new customer /// </summary> public void AddMethod() { addWin = new AddUpdateWindow(); Message addCust = new Message(); addCust.isAdd = true; Messenger.Default.Send(addCust); addWin.Show(); Messenger.Default.Register <NotificationMessage>(this, (msg) => { if (msg.Notification == "Close") { addWin.Close(); Messenger.Default.Register <Customer>(this, finish); } }); }
/// <summary> /// modifies a customer /// </summary> public void ModMethod() { modWin = new AddUpdateWindow(); Message modCust = new Message(); modCust.isAdd = false; //modCust.id = selectedCustomer.CustomerID; modCust.c = selectedCustomer; Messenger.Default.Send(modCust); modWin.Show(); Messenger.Default.Register <NotificationMessage>(this, (msg) => { if (msg.Notification == "Close") { modWin.Close(); Messenger.Default.Register <Customer>(this, finish); } }); }