/// <summary> /// Before update data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeUpdate(object sender, Custom.OperationArgs e) { // Get the binding source data BindingExpression bindingExpression = BindingOperations.GetBindingExpression(txtDataMemberID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.DataMemberTables data = (DataAccess.NequeoCompany.Data.DataMemberTables)bindingExpression.DataItem; // If a previous operation was attempted while // the data was changed an not updated. if (_updateAttempt) { MessageBoxResult result = MessageBox.Show("Disregard the changes (all changes will be lost)?", "Update", MessageBoxButton.YesNo); if (result == MessageBoxResult.Yes) { e.Cancel = true; } } _updateAttempt = false; // Determine if the data has not change. if (!PropertyChanged) { e.Cancel = true; } // If cancel update then set property state. if (e.Cancel) { SetChangePropertyState(false); } }
/// <summary> /// Before load data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeLoad(object sender, Custom.OperationArgs e) { // Determine if the data has change. if (PropertyChanged) { // Indicate that the data has changed. MessageBox.Show("The data has changed, please update first", "Load", MessageBoxButton.OK); _updateAttempt = true; e.Cancel = true; } else { // If in Add new state if (_addNew) { // Indicate that the data has changed. MessageBoxResult result = MessageBox.Show("Insert the changes before loading. Disregard the changes (all changes will be lost)?", "Load", MessageBoxButton.YesNo); if (result != MessageBoxResult.Yes) { e.Cancel = true; } } // If loading should take place. if (!e.Cancel) { // Show the selection form Nequeo.Wpf.DataGridWindow selectItem = new DataGridWindow(); selectItem.ConnectionTypeModel = dataAccess.ConnectionTypeModel; selectItem.LoadOnStart = true; selectItem.MaxRecords = 50; selectItem.OrderByClause = "DataMemberID DESC"; selectItem.ShowDialog(); // Has an item been selected. if (selectItem.SelectedRecord != null) { // Get the selected item. DataAccess.NequeoCompany.Data.DataMemberTables data = (DataAccess.NequeoCompany.Data.DataMemberTables)selectItem.SelectedRecord; // Assign the load item. dataAccess.OrderByClause = selectItem.OrderByClause; dataAccess.WhereClause = "DataMemberID = " + data.DataMemberID.ToString(); } else { e.Cancel = true; } } } }
/// <summary> /// Before insert data. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnBeforeInsert(object sender, Custom.OperationArgs e) { // Get the binding source data BindingExpression bindingExpression = BindingOperations.GetBindingExpression(txtDataMemberID, TextBox.TextProperty); DataAccess.NequeoCompany.Data.DataMemberTables data = (DataAccess.NequeoCompany.Data.DataMemberTables)bindingExpression.DataItem; dataAccess.DataModel = data; MessageBoxResult result = MessageBox.Show("Are you sure you wish to insert this record?", "Insert", MessageBoxButton.YesNo); if (result != MessageBoxResult.Yes) { e.Cancel = true; } }
/// <summary> /// Dlect member id /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSelectTransactionPaymentMemberID_Click(object sender, RoutedEventArgs e) { // Attempt to find the data member. DataAccess.NequeoCompany.Data.DataMemberTables dataMember = null; try { dataMember = _dataMemberTables.First(u => u.DataMemberID == _dataMemberTableIDTrans); } catch { } // If a data member has been found if (dataMember != null) { // Find the table name. string tableName = _dataMemberTables.First(u => u.DataMemberID.ToString().ToLower() == dataMember.Reference.ToLower()).DataTables; // Find the table key name string tableKeyName = _dataMemberTables.First(u => u.DataMemberID.ToString().ToLower() == dataMember.Reference.ToLower()).DataTableKeyName; // Get a new instance of the connection type model. Nequeo.ComponentModel.ConnectionTypeModel connectionModel = new ComponentModel.ConnectionTypeModel( "Nequeo.DataAccess.NequeoCompany.Data." + tableName + ",Nequeo.NequeoCompany.Model", _account.Current.Extension.Common.ConfigurationDatabaseConnection, _account.Current.Extension.Common.ConnectionType, _account.Current.Extension.Common.ConnectionDataType, _account.Current.Extension.Common.DataAccessProvider.GetType().AssemblyQualifiedName); // Show the selection form Nequeo.Wpf.DataGridWindow selectItem = new DataGridWindow(); selectItem.ConnectionTypeModel = connectionModel; selectItem.LoadOnStart = true; selectItem.MaxRecords = 50; selectItem.OrderByClause = tableKeyName + " DESC"; selectItem.ShowDialog(); // Has an item been selected. if (selectItem.SelectedRecord != null) { // Get the selected item. object data = selectItem.SelectedRecord; txtTransactionPaymentMemberID.Text = data.GetType().GetProperty(tableKeyName).GetValue(data, null).ToString(); } } }
/// <summary> /// On load complete /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataAccess_OnLoad(object sender, EventArgs e) { // Get the data that has been returned. DataAccess.NequeoCompany.Data.DataMemberTables[] returnedDataList = (DataAccess.NequeoCompany.Data.DataMemberTables[])dataAccess.DataModel; DataAccess.NequeoCompany.Data.DataMemberTables data = returnedDataList[0]; // Attach to the property changed event within the model data.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(data_PropertyChanged); SetChangePropertyState(false); // Assign the data to the data context. gridDataMemberTable.DataContext = data; // Enable the controls. EnableDisable(0); // Start the change (load) process. _loading = true; _addNew = false; // Set the list selected index values. _loading = false; }
/// <summary> /// Transaction data meber changed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtTransactionPaymentDataMember_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Load the data member table data. if (_dataMemberTables == null) { _dataMemberTables = _account.Current.Extension.DataContext.DataMemberTables.Where(u => u.DataMemberID > -1).ToArray(); } // Get and assign the value from the selected item. _dataMemberNameTrans = e.AddedItems.FirstValue <DataAccess.NequeoCompany.Data.DataMember, string>("Name"); // Attempt to find the data member. DataAccess.NequeoCompany.Data.DataMemberTables dataMember = null; try { dataMember = _dataMemberTables.First(u => u.TableName.ToLower() == _dataMemberNameTrans.ToLower()); } catch { } // Get the text to display string selectText = (dataMember != null ? "Select " + dataMember.NameTo : string.Empty); // Assign the text for the transaction type slection button if (String.IsNullOrEmpty(selectText)) { btnSelectTransactionPaymentMemberID.IsEnabled = false; _dataMemberTableIDTrans = -1; } else { btnSelectTransactionPaymentMemberID.IsEnabled = true; _dataMemberTableIDTrans = dataMember.DataMemberID; } txtTransactionPaymentMemberID.Text = "1"; _dataMemberSelectdIndexTrans = txtTransactionPaymentDataMember.SelectedIndex; }
/// <summary> /// DataMember selection changed. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void txtDataMember_SelectionChanged(object sender, SelectionChangedEventArgs e) { // Load the data member table data. if (_dataMemberTables == null) { _dataMemberTables = _account.Current.Extension.DataContext.DataMemberTables.Where(u => u.DataMemberID > -1).ToArray(); } // Get and assign the value from the selected item. string dataMemberName = e.AddedItems.FirstValue <DataAccess.NequeoCompany.Data.DataMember, string>("Name"); ((DataAccess.NequeoCompany.Data.AccountTransactions)gridTransaction.DataContext).PaidToFrom = dataMemberName; // Attempt to find the data member. DataAccess.NequeoCompany.Data.DataMemberTables dataMember = null; try{ dataMember = _dataMemberTables.First(u => u.TableName.ToLower() == dataMemberName.ToLower()); } catch { } // Get the text to display string selectText = (dataMember != null ? "Select " + dataMember.NameTo : string.Empty); // Assign the text for the transaction type slection button if (String.IsNullOrEmpty(selectText)) { btnSelectTransaction.IsEnabled = false; btnSelectTransactionTextBlock.Text = ""; txtDataMemberID.Text = "-1"; _dataMemberTableID = -1; } else { btnSelectTransaction.IsEnabled = true; btnSelectTransactionTextBlock.Text = selectText; txtDataMemberID.Text = dataMember.DataMemberID.ToString(); _dataMemberTableID = dataMember.DataMemberID; } // Indicate that the property has changed. SetChangePropertyState(true); IsSelectedIndexValid(); // If the current operation is not in // the loading or add new state. if (!_loading && !_addNew) { // If items exist if (txtDataMember.Items.Count > 0) { if (_dataMemberSelectdIndex == txtDataMember.SelectedIndex) { // If data member changes then set the payment data members to null. dataAccess.IsUpdateEnabled = true; } else { // If data member changes then set the payment data members to null. dataAccess.IsUpdateEnabled = false; } } } // If adding a new item if (_addNew) { // Assign the text for the transaction type slection button if (String.IsNullOrEmpty(selectText)) { txtPaymentDataMemberID.Text = "0"; txtPaymentDataMemberRefID.Text = "0"; } else { txtPaymentDataMemberID.Text = ""; txtPaymentDataMemberRefID.Text = ""; } } }
/// <summary> /// On select new transaction /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSelectTransaction_Click(object sender, RoutedEventArgs e) { // Attempt to find the data member. DataAccess.NequeoCompany.Data.DataMemberTables dataMember = null; try{ dataMember = _dataMemberTables.First(u => u.DataMemberID == _dataMemberTableID); } catch { } // If a data member has been found if (dataMember != null) { // Find the table name. string tableName = _dataMemberTables.First(u => u.DataMemberID.ToString().ToLower() == dataMember.Reference.ToLower()).DataTables; string tableRefName = dataMember.DataTables; // Find the table key name string tableKeyName = _dataMemberTables.First(u => u.DataMemberID.ToString().ToLower() == dataMember.Reference.ToLower()).DataTableKeyName; string tableKeyRefName = dataMember.DataTableKeyName; // Get a new instance of the connection type model. Nequeo.ComponentModel.ConnectionTypeModel connectionModel = Nequeo.Wpf.Common.Operation.GetTypeModel("Nequeo.DataAccess.NequeoCompany.Data." + tableName + ",Nequeo.NequeoCompany.Model", dataAccess); // Get a new instance of the connection type model. Nequeo.ComponentModel.ConnectionTypeModel connectionModelRef = Nequeo.Wpf.Common.Operation.GetTypeModel("Nequeo.DataAccess.NequeoCompany.Data." + tableRefName + ",Nequeo.NequeoCompany.Model", dataAccess); // Show the selection form Nequeo.Wpf.DataGridTwinWindow selectItem = new DataGridTwinWindow(); selectItem.ConnectionTypeModel = connectionModel; selectItem.ConnectionTypeModelReference = connectionModelRef; selectItem.LoadOnStart = true; selectItem.MaxRecords = 50; selectItem.OrderByClause = tableKeyName + " DESC"; selectItem.OrderByClauseReference = tableKeyRefName + " DESC"; selectItem.PrimarySearchPropertyName = tableKeyName; selectItem.ShowDialog(); // Has an item been selected. if (selectItem.SelectedRecord != null && selectItem.SelectedReferenceRecord != null) { // Get the selected item. object data = selectItem.SelectedRecord; object dataRef = selectItem.SelectedReferenceRecord; txtPaymentDataMemberID.Text = data.GetType().GetProperty(tableKeyName).GetValue(data, null).ToString(); txtPaymentDataMemberRefID.Text = dataRef.GetType().GetProperty(tableKeyRefName).GetValue(dataRef, null).ToString(); // If the current operation is not in // the loading or add new state. if (!_loading && !_addNew) { // If items exist if (txtDataMember.Items.Count > 0) { // If data member changes then set the payment data members to null. dataAccess.IsUpdateEnabled = true; } } } } }