public void BatchOperationsDemo()
{
_logger.LogMainHeader("Batch Operations Demo");
_proxy.Clear();
_logger.LogHeader("WriteMultiple<T>(T[] objects) writes multiple objects at once.");
Person[] persons = new Person[]
{
new Person("pid-001", "Alice", 25, null, null),
new Person("pid-002", "Bob", 35, null, null),
new Person("pid-137", "Charlie", 30, null, null)
};
_logger.LogMessage("Created array of {0} Persons:", persons.Length);
for (int i = 0; i < persons.Length; i++)
_logger.LogMessage("persons[{0}] - {1}", i, persons[i]);
_logger.LogMessage("Writing persons array to space...");
_proxy.WriteMultiple(persons);
int count = _proxy.Count();
_logger.LogMessage("Count() = {0}.", count);
_logger.LogHeader("UpdateMultiple<T>(T[] objects) updates multiple objects at once.");
_logger.LogMessage("Changing everyone's weight to 100.");
for (int i = 0; i < persons.Length; i++)
persons[i].Weight = 100;
_logger.LogMessage("Updating persons in space...");
_proxy.UpdateMultiple(persons);
Person template = new Person();
template.Weight = 100;
count = _proxy.Count(template);
_logger.LogMessage("Count Person with Weight=100: {0}.", count);
_logger.LogHeader("ReadMultiple<T>(T template, int maxItems) reads up to maxItems objects at once.");
_logger.LogMessage("Reading up to 3 persons...");
Person[] results = _proxy.ReadMultiple(new Person(), persons.Length);
_logger.LogMessage("Persons received from space: {0}", results.Length);
for (int i = 0; i < results.Length; i++)
_logger.LogMessage("results[{0}] - {1}", i, results[i]);
_logger.LogMessage("Count() = {0}.", count);
_logger.LogHeader("TakeMultiple<T>(T template, int maxItems) reads up to maxItems objects at once.");
_logger.LogMessage("Taking up to 2 persons...");
results = _proxy.TakeMultiple(new Person(), 2);
_logger.LogMessage("Persons received from space: {0}", results.Length);
for (int i = 0; i < results.Length; i++)
_logger.LogMessage("results[{0}] - {1}", i, results[i]);
count = _proxy.Count(new Person());
_logger.LogMessage("Count() = {0}.", count);
_logger.LogMessage("Again, Taking up to 2 persons...");
results = _proxy.TakeMultiple(new Person(), 2);
_logger.LogMessage("Persons received from space: {0}", results.Length);
for (int i = 0; i < results.Length; i++)
_logger.LogMessage("results[{0}] - {1}", i, results[i]);
count = _proxy.Count(new Person());
_logger.LogMessage("Count() = {0}.", count);
}