protected override async Task <CommandResponse <Submission> > ExecuteStage(CommandStage stage, CommandResponse <Submission> previous) { switch (stage) { case CommandStage.OnValidation: if (_userSubmission.Content.Length > 10000) { return(CommandResponse.FromStatus <Submission>(null, Status.Invalid, "Content can not exceed 10,000 characters")); } break; } return(await base.ExecuteStage(stage, previous)); }
protected override async Task <CommandResponse <Models.Comment> > ExecuteStage(CommandStage stage, CommandResponse <Models.Comment> previous) { switch (stage) { case CommandStage.OnValidation: if (Content.Length > 10000) { return(CommandResponse.FromStatus <Models.Comment>(null, Status.Denied, "Comment can not exceed 10,000 characters")); } break; } return(CommandResponse.FromStatus <Models.Comment>(null, Status.Success)); }
protected override async Task <Tuple <CommandResponse <Domain.Models.Submission>, Data.Models.Submission> > CacheExecute() { using (var db = new Repository(User)) { var result = await db.EditSubmission(_submissionID, _userSubmission); if (result.Success) { return(Tuple.Create(CommandResponse.FromStatus(result.Response.Map(), Status.Success, ""), result.Response)); } else { return(Tuple.Create(CommandResponse.FromStatus((Submission)null, result.Status, result.Message), result.Response)); } } }
public override Task <T> Execute() { _commands.Add(this); return(Task.FromResult((T)CommandResponse.FromStatus(Status.Queued))); }
//So any command can invoke the rules engine //protected RulesEngine.RulesEngine<VoatRuleContext> rulesEngine = VoatRulesEngine.Instance; protected CommandResponse Map(RulesEngine.RuleOutcome outcome) { return(CommandResponse.FromStatus(outcome.Message, Status.Denied, outcome.ToString())); }
protected CommandResponse <T> Map <T>(RulesEngine.RuleOutcome outcome) { return(CommandResponse.FromStatus(default(T), Status.Denied, outcome.Message)); }