/// <summary>
 ///
 /// </summary>
 public void Dispose()
 {
     UploadFolderToken?.Dispose();
     ReadAvatarToken?.Cancel();
     ReadToken?.Cancel();
     GC.SuppressFinalize(this);
 }
示例#2
0
        public static Task <T> GetJsonAsync <T>(this IFlurlRequest request, ReadToken <T> readToken) where T : class
        {
            // Will never return null because no null status codes are provided
#pragma warning disable CS8619 // Nullability of reference types in value doesn't match target type.
            return(request.SendJsonAsync(request => request.GetAsync(), readToken, false));

#pragma warning restore CS8619 // Nullability of reference types in value doesn't match target type.
        }
示例#3
0
        private static Task <T?> PostMultipartAsync <T>(this IFlurlRequest request,
                                                        MakeRequest makeRequest, ReadToken <T> readToken, bool defaultIfNotJson, params HttpStatusCode[] defaultStatusCodes) where T : class
        {
            return(request.SendAsync(makeRequest, (response, content) =>
            {
                if (defaultIfNotJson && response.ResponseMessage.Content.Headers.ContentType.MediaType != "application/json")
                {
                    return default;
                }

                var token = JToken.Parse(content);

                return readToken(token);
            }, defaultStatusCodes));
        }
示例#4
0
        public Token GetToken()
        {
            State = LexicAnalyserState.Initial;
            Value = HasNext ? Character.ToString() : "";
            Token token = null;

            while (HasNext && token == null)
            {
                switch (State)
                {
                case LexicAnalyserState.Initial:
                    HandleInitial();
                    break;

                case LexicAnalyserState.NonTerminal:
                    token = new NonTerminalToken(Value);
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Space:
                    token = new SpaceToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Terminal:
                    token = new TerminalToken(Value);
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Empty:
                    token = new EmptyToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.NewLine:
                    token = new NewLineToken(Value);
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Identifier:
                    token = new IdentifierToken(Value);
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Number:
                    token = new NumberToken(Value);
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Var:
                    token = new VarToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Write:
                    token = new WriteToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Read:
                    token = new ReadToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.If:
                    token = new IfToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.End:
                    token = new EndToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Then:
                    token = new ThenToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Begin:
                    token = new BeginToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.While:
                    token = new WhileToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Do:
                    token = new DoToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.SemiColon:
                    token = new SemiColonToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.OpenParentheses:
                    token = new OpenParenthesesToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.CloseParentheses:
                    token = new CloseParenthesesToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Plus:
                    token = new PlusToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Sub:
                    token = new SubToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Great:
                    token = new GreatToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Less:
                    token = new LessToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Equal:
                    token = new EqualToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Repeat:
                    token = new RepeatToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Until:
                    token = new UntilToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.Attribution:
                    token = new AttributionToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.NotEqual:
                    token = new NotEqualToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.GreatOrEqual:
                    token = new GreatOrEqualToken();
                    CurrentIndex++;
                    break;

                case LexicAnalyserState.LessOrEqual:
                    token = new LessOrEqualToken();
                    CurrentIndex++;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }

            return(token);
        }
示例#5
0
 public static Task <T?> PostMultipartAsync <T>(this IFlurlRequest request, Action <CapturedMultipartContent> buildContent, ReadToken <T> readToken, bool defaultIfNotJson, params HttpStatusCode[] defaultStatusCodes) where T : class
 {
     return(request.PostMultipartAsync(request => request.PostMultipartAsync(buildContent), readToken, defaultIfNotJson, defaultStatusCodes));
 }
示例#6
0
 public static Task <T?> GetJsonAsync <T>(this IFlurlRequest request, ReadToken <T> readToken, bool defaultIfNotJson, params HttpStatusCode[] defaultStatusCodes) where T : class
 {
     return(request.SendJsonAsync(request => request.GetAsync(), readToken, defaultIfNotJson, defaultStatusCodes));
 }