示例#1
0
        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)));
        }