/// <summary> /// /// </summary> /// <param name="textBoxTxt"></param> /// <param name="iContent"></param> private void TextBoxValueChanged(string textBoxTxt, IContent iContent) { DataTableCoordinate dataTableCoordiante = iContent.Key as DataTableCoordinate; ConsumerRow workingOrderRow = dataTableCoordiante.DataRow as ConsumerRow; string textBoxString = textBoxTxt; Guid workingOrderId = dataTableCoordiante.Association; if (dataTableCoordiante.DataColumn == DataModel.Consumer.FirstNameColumn) { FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateConsumer(new Consumer(workingOrderRow) { FirstName = textBoxString, WorkingOrderId = workingOrderId }))); } if (dataTableCoordiante.DataColumn == DataModel.Consumer.LastNameColumn) { FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateConsumer(new Consumer(workingOrderRow) { LastName = textBoxString, WorkingOrderId = workingOrderId }))); } if (dataTableCoordiante.DataColumn == DataModel.Consumer.SocialSecurityNumberColumn) { FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateConsumer(new Consumer(workingOrderRow) { SocialSecurityNumber = textBoxString }))); } if (dataTableCoordiante.DataColumn == DataModel.CreditCard.AccountBalanceColumn) { CreditCardRow creditCardRow = dataTableCoordiante.DataRow as CreditCardRow; FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateCreditCard(new CreditCard(creditCardRow) { AccountBalance = textBoxString }))); } if (dataTableCoordiante.DataColumn == DataModel.CreditCard.OriginalAccountNumberColumn) { CreditCardRow creditCardRow = dataTableCoordiante.DataRow as CreditCardRow; FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateCreditCard(new CreditCard(creditCardRow) { OriginalAccountNumber = textBoxString }))); } if (dataTableCoordiante.DataColumn == DataModel.CreditCard.AccountNumberColumn) { CreditCardRow creditCardRow = dataTableCoordiante.DataRow as CreditCardRow; FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateCreditCard(new CreditCard(creditCardRow) { AccountNumber = textBoxString }))); } if (dataTableCoordiante.DataColumn == DataModel.CreditCard.DebtHolderColumn) { CreditCardRow creditCardRow = dataTableCoordiante.DataRow as CreditCardRow; FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateCreditCard(new CreditCard(creditCardRow) { DebtHolder = textBoxString }))); } }
/// <summary> /// Handlers for the ComboBox class of controls. /// </summary> /// <param name="sender">The object that originated the event.</param> /// <param name="routedEventArgs">The routed event arguments.</param> private void OnSelectorSelectionChanged(object sender, RoutedEventArgs routedEventArgs) { // The main idea of this handler is to sort out the user generated actions from the machine generated actions. Once // its determined that it was a user action, a background thread is called to change the associated field to the value // selected by the ComboBox. SelectionChangedEventArgs selectionChangedEventArgs = routedEventArgs as SelectionChangedEventArgs; // Handle changes to ComboBox elements. if (selectionChangedEventArgs.OriginalSource is ComboBox) { ComboBox comboBox = selectionChangedEventArgs.OriginalSource as ComboBox; IContent iContent = comboBox.DataContext as IContent; // This filters all the ComboBox events looking for user initiated actions that are bound to the data model. if (InputHelper.IsUserInitiated(comboBox, ComboBox.SelectedValueProperty) && iContent != null && iContent.Key is DataTableCoordinate) { // At this point, a ComboBox was modified by the user and it is connected to a data model field. This will extract // the coordinates of the field in the table. That, in turn, drives the decision about how to update the shared // data model. DataTableCoordinate dataTableCoordiante = iContent.Key as DataTableCoordinate; CreditCardRow creditCardRow = dataTableCoordiante.DataRow as CreditCardRow; if (dataTableCoordiante.DataColumn == DataModel.CreditCard.DebtRuleIdColumn) { //make sure the value has changed before making a webSvc call object newDebtRuleId = comboBox.SelectedValue; if (newDebtRuleId == null || (Guid)newDebtRuleId == Guid.Empty) { newDebtRuleId = DBNull.Value; } object oldDebtRuleId = DBNull.Value; if (creditCardRow.IsDebtRuleIdNull() == false) { oldDebtRuleId = creditCardRow.DebtRuleId; } if (object.Equals(oldDebtRuleId, newDebtRuleId) == false) { FluidTrade.Core.ThreadPoolHelper.QueueUserWorkItem(UpdateField, new Func <MethodResponseErrorCode>(() => TradingSupportWebService.UpdateCreditCard(new CreditCard(creditCardRow) { DebtRuleId = newDebtRuleId }))); } } } } }