public MyViewModel Create() { MyCommandContext context = new MyCommandContext(); IMyViewmodelCommandManager manager = this.container.Resolve <IMyViewmodelCommandManager>(new ResolverOverride[] { new ParameterOverride("context", context) }); ICommand myCommand = new DelegateCommand(manager.ExecuteMyCommand); MyViewModel viewModel = new MyViewModel(myCommand); IMyViewModelCommandSynchronizer synchronizer = this.container.Resolve <IMyViewmodelCommandManager>(new ResolverOverride[] { new ParameterOverride("context", context), new ParameterOverride("viewModel", viewModel) }); synchronizer.Initialize(); return(viewModel); }
private async Task <(string, EmbedBuilder, PaginatedMessage)> BuildReply(IUserMessage msg, string message) { var context = new MyCommandContext(_client, _mainHandler, msg); var result = await _commands.ExecuteAsync(context, message, _services); if (!result.IsSuccess && result.Error != CommandError.UnknownCommand) { return(result.ErrorReason, null, null); } else if (!result.IsSuccess) { if (!_mainHandler.QueryHandler.IsReady()) { return("Loading cache...", null, null); //TODO: Change message } else { try { var tuple = await _mainHandler.QueryHandler.RunAsync(message); if (tuple.Item2 is PaginatorBuilder pag) { var paginated = new PaginatedMessage(pag.Pages, "Results", user: msg.Author, options: new AppearanceOptions { Timeout = TimeSpan.FromMinutes(10) }); return(null, null, paginated); } else { return(tuple.Item1, tuple.Item2, null); } } catch (Exception e) { Console.WriteLine(e.ToString()); return("Uh-oh... I think some pipes have broken...", null, null); } } } return(null, null, null); }
MyViewModelCommandSynchronizer(MyViewModel viewModel, MyCommandContext context) { this.viewModel = viewModel; this.context = context; }
public MyViewModelCommandManager(MyViewModelCommandContext context) { this.context = context;