private void button2_Click(object sender, RoutedEventArgs e)
{
var customer = dataGrid1.SelectedItem as Customer.getEntity;
if (customer != null)
{
button2.IsEnabled = true;
button3.IsEnabled = false;
var orders = dataGrid2.SelectedItems != null && dataGrid2.SelectedItems.Count > 0 ?
dataGrid2.SelectedItems.Cast<Customer.getOrdersEntity>().ToList() : null;
var datumnode = new DatumNode.DatumNodeClient();
_cancelled = false;
_channel = datumnode;
_id = 0;
datumnode.OpenCompleted += (s, args) => OnUpdateRequestExecuted(args, () =>
{
_id = args.Result;
UpdateCustomer(customer, orders);
});
datumnode.OpenAsync(null);
}
}
private void UpdateCustomer(Customer.getEntity customer, IEnumerable<Customer.getOrdersEntity> orders)
{
var client = new Customer.customerClient();
_channel = client;
client.updateCompleted += (s, args) => OnUpdateRequestExecuted(args, () => UpdateOrders(orders));
client.updateAsync(new Customer.updateRequest
{
Id = _id,
Command = new Customer.MetaCommand
{
Operation = Customer.DbOperation.ExecuteNonQuery,
Transaction = Customer.DbTransaction.BeginLocal
},
Parameters = new Customer.updateInputParameters
{
CustomerId = customer.CustomerID,
Address = customer.Address,
City = customer.City,
CompanyName = customer.CompanyName,
ContactName = customer.ContactName,
ContactTitle = customer.ContactTitle,
Country = customer.Country,
Fax = customer.Fax,
Phone = customer.Phone,
PostalCode = customer.PostalCode,
Region = customer.Region
}
});
}
private void UpdateOrders(IEnumerable<Customer.getOrdersEntity> orders)
{
if (orders == null)
{
Commit();
return;
}
var client = new Order.orderClient();
_channel = client;
client.updateCompleted += (s, args) => OnUpdateRequestExecuted(args, Commit);
client.updateAsync(new Order.updateRequest
{
Id = _id,
Command = new Order.MetaCommand
{
Operation = Order.DbOperation.ExecuteBatch
},
BatchParameters = new Order.updateInputBatchParameters
{
OrderID = orders.Select(o => o.OrderID).ToArray(),
OrderDate = orders.Select(o => o.OrderDate).ToArray(),
RequiredDate = orders.Select(o => o.RequiredDate).ToArray(),
ShippedDate = orders.Select(o => o.ShippedDate).ToArray()
}
});
}