/// <summary> /// Callback for db change notifications /// </summary> /// <param name="sender"></param> public void DbHasChanged (object sender, DataChangeArgs args) { DataGrid cvm = sender as DataGrid; if (cvm.Name != "DetailsGrid") Console.WriteLine ($"\nDetailsViewModel received Data Change in \"{args.DbName}\" Db"); if (args.DbName != "DETAILS") { // need to update our Collection DataGrid d = sender as DataGrid; { d.Refresh (); try { if (Flags.SqlDetGrid == null) return; if (args.DbName != "DETAILS") { int curr = Flags.SqlDetGrid.SelectedIndex; if (curr >= 0) { LoadDetailsTask (); Flags.SqlDetGrid.SelectedIndex = curr; Flags.SqlDetGrid.Refresh (); } Console.WriteLine ($"\nDB REFRESH performed in DetailsViewModel"); } } catch (Exception ex) { Console.WriteLine ($"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nDB REFRESH UPDATE ERROR in DetailsViewModel\n{ex.Message} : {ex.Data}"); } } } }
/// <summary> /// Callback handler for db change notifications sent by another SqlDbViewer /// We have to try to work out whether we have one or more other viewers open /// and update their datagris as relevant /// </summary> /// <param name="sender"></param> //**************************************************************************************************************************************************************// public void DbHasChangedHandler(SqlDbViewer sender, DataGrid Grid, DataChangeArgs args) { if (Grid.Name == "BankGrid") { return; // Nothing to do, it was us that sent the broadcast } // Send it to the correct open viewer window if (Flags.SqlBankViewer != null) { Flags.SqlBankViewer.ReloadBankOnUpdateNotification(sender, Grid, args); } if (Flags.SqlCustViewer != null) { Flags.SqlCustViewer.ReloadCustomerOnUpdateNotification(sender, Grid, args); } if (Flags.SqlDetViewer != null) { Flags.SqlDetViewer.ReloadDetailsOnUpdateNotification(sender, Grid, args); } // See if we need to update EditDb window as well if (Flags.CurrentEditDbViewer != null) { Flags.CurrentEditDbViewer.DbChangedHandler(sender, Grid, args); } return; }
// public event NotifyCollectionChangedEventHandler CollectionChanged; /// <summary> /// Function that is called to broadcast a notification to whoever to /// notify that one of the Obs collections has been changed by something /// </summary> /// <param name="o"> The sending object</param> /// <param name="args"> Sender name and Db Type</param> private void SendDataChanged(object o, string dbName) { DataChangeArgs dca = new DataChangeArgs(); dca.SenderName = o.ToString(); dca.DbName = dbName; if (NotifyOfDataChange != null) { NotifyOfDataChange(this); } }
/// Callback for db change notifications /// </summary> /// <param name="sender"></param> public void DbHasChangedHandler(SqlDbViewer sender, DataGrid Grid, DataChangeArgs args) { if (Flags.SqlBankViewer != null) { Flags.SqlBankViewer.ReloadBankOnUpdateNotification(sender, Grid, args); } if (Flags.SqlCustViewer != null) { Flags.SqlCustViewer.ReloadCustomerOnUpdateNotification(sender, Grid, args); } if (Flags.SqlDetViewer != null) { Flags.SqlDetViewer.ReloadDetailsOnUpdateNotification(sender, Grid, args); } return; }
/// <summary> /// Callback for db change notifications /// </summary> /// <param name="sender"></param> public void DbHasChanged(object sender, DataChangeArgs args) { DataGrid cvm = sender as DataGrid; if (cvm.Name != "CustomerGrid") { Console.WriteLine($"\nCustomerViewModel received Data Change in \"{args.DbName}\" Db"); } if (args.DbName != "CUSTOMER") { // need to update our Collection DataGrid d = sender as DataGrid; { d.Refresh(); try { if (Flags.SqlCustGrid == null) { return; } CustomerViewModel cv = CustomersObs.ElementAt(d.SelectedIndex) as CustomerViewModel; int hash = cv.GetHashCode(); if (args.DbName != "CUSTOMER") { int curr = Flags.SqlCustGrid.SelectedIndex; if (curr >= 0) { LoadCustomerTaskInSortOrder(); Flags.SqlCustGrid.SelectedIndex = curr; Flags.SqlCustGrid.Refresh(); } Console.WriteLine($"\nDB REFRESH performed in CustomerViewModel"); } } catch (Exception ex) { Console.WriteLine($"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nDB REFRESH UPDATE ERROR in CustomerViewModel\n{ex.Message} : {ex.Data}"); } } } }
/// <summary> /// Callback handler for db change notifications snet by SqlDbViewer /// </summary> /// <param name="sender"></param> public void DbHasChanged(object sender, DataChangeArgs args) { DataGrid cvm = sender as DataGrid; if (cvm.Name != "BankGrid") { Console.WriteLine($"\nBankAccount ViewModel received Data Change in \"{args.DbName}\" Db"); } if (args.DbName != "BANKACCOUNT") { // need to update our Collection DataGrid d = sender as DataGrid; { d.Refresh(); try { if (Flags.SqlBankGrid == null) { return; } if (args.DbName != "BANKACCOUNT") { int curr = Flags.SqlBankGrid.SelectedIndex; if (curr >= 0) { LoadBankTaskInSortOrder(); Flags.SqlBankGrid.SelectedIndex = curr; Flags.SqlBankGrid.Refresh(); } Console.WriteLine($"\nDB REFRESH performed in BankAccountViewModel"); } } catch (Exception ex) { Console.WriteLine($"\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\nDB REFRESH UPDATE ERROR in BankAccountViewModel\n{ex.Message} : {ex.Data}"); } } } }