using System; using gorilla.commons.utility; using momoney.service.infrastructure.threading; namespace MoMoney.Presentation.Presenters { public interface IProcessQueryCommand : ParameterizedCommand> {} public class ProcessQueryCommand : IProcessQueryCommand { readonly Query query; readonly ISynchronizationContextFactory factory; public ProcessQueryCommand(Query query, ISynchronizationContextFactory factory) { this.query = query; this.factory = factory; } public void run(Callback callback) { var dto = query.fetch(); factory.create().run(new AnonymousCommand((Action) (() => callback.run(dto)))); } } }