public override Task <TypeReaderResult> ReadAsync(ICommandContext context, string input, IServiceProvider services) { var result = EnglishTimeParser.Parse(input); if (result is not ISuccessfulTimeParsingResult <DateTime> successfulTimeParsingResult) { return(Task.FromResult(TypeReaderResult.FromError(CommandError.ParseFailed, ErrorReason))); } return(Task.FromResult(TypeReaderResult.FromSuccess(successfulTimeParsingResult.Value))); }
public override Task <TypeReaderResult> ReadAsync(ICommandContext context, string input, IServiceProvider services) { var result = EnglishTimeParser.Parse(input); if (result is not ISuccessfulTimeParsingResult <DateTime> successfulTimeParsingResult) { return(Task.FromResult(TypeReaderResult.FromError(CommandError.ParseFailed, result.ToString()))); } var splitReason = input.Split(' ').Skip(successfulTimeParsingResult.LastParsedTokenIndex + 1); var reminderValue = string.Join(' ', splitReason); if (reminderValue.StartsWith("to ")) { reminderValue = reminderValue.ReplaceFirst("to ", ""); } var reminder = new Reminder(successfulTimeParsingResult.Value, context.User.Id, context.Channel.Id, reminderValue); return(Task.FromResult(TypeReaderResult.FromSuccess(reminder))); }