public Task ExecuteSync(Action <T, object> action, object state, ContainerElementReference <T> reference = null) { if (reference != null) { if (!reference.ContainerId.Equals(this.GetPrimaryKey())) { throw new InvalidOperationException(); } var curItem = GetItemAt(reference.Offset); action(curItem, state); } else { foreach (var item in Collection) { action(item, state); } } return(TaskDone.Done); }
public async Task <object> ExecuteSync(Func <T, object> func, ContainerElementReference <T> reference) { var container = _containers.First(c => c.GetPrimaryKey().Equals(reference.ContainerId)); return(await container.ExecuteSync(func, reference)); }
public Task ExecuteAsync(Func <T, Task> func, ContainerElementReference <T> reference = null) { return(ExecuteAsync((x, state) => func(x), null, reference)); }
public virtual Task <bool> Remove(ContainerElementReference <T> reference) { return(Elements.Remove(reference)); }
public Task <object> ExecuteSync(Func <T, object> func, ContainerElementReference <T> reference = null) { return(ExecuteSync((x, state) => func(x), null, reference)); }
public async Task <object> ExecuteSync(Func <T, object, object> func, object state, ContainerElementReference <T> reference) { if (!this.GetPrimaryKey().Equals(reference.ContainerId)) { throw new InvalidOperationException(); } var curItem = Elements.GetElement(reference); var result = func(curItem, state); return(result); }
public Task ExecuteSync(Action <T> action, ContainerElementReference <T> reference = null) { return(ExecuteSync((x, state) => action(x), null, reference)); }
public async Task <object> ExecuteAsync(Func <T, object, Task <object> > func, object state, ContainerElementReference <T> reference) { var curItem = Elements.GetElement(reference); var result = await func(curItem, state); return(result); }
protected bool Equals(ContainerElementReference <T> other) { return(base.Equals(other)); }
public ContainerElement(ContainerElementReference <T> reference, T item) { Reference = reference; Item = item; }