コード例 #1
0
ファイル: Request.cs プロジェクト: ioleksiy/gate
        public Task<IForm> ReadFormAsync()
        {
            if (!HasFormData && !HasParseableData && !HasBoundary)
            {
                return TaskHelpers.FromResult((IForm) new Form.Form());
            }

            var form = Environment.Get<IForm>("Gate.Request.Form");
            var thisInput = Body;
            var lastInput = Environment.Get<object>("Gate.Request.Form#input");
            if (form != null && ReferenceEquals(thisInput, lastInput))
            {
                return TaskHelpers.FromResult(form);
            }

            Request thisRequest = this;

            var boundary = Boundary;
            if (boundary == null)
                return ReadTextAsync().Then(text =>
                {
                    form = new Form.Form(text);
                    thisRequest.Environment.Set("Gate.Request.Form#input", thisInput);
                    thisRequest.Environment.Set("Gate.Request.Form", form);
                    return form;
                });
            return TaskHelpers.FromResult(form = new Form.Form(boundary, thisInput)).Then(x =>
            {
                thisRequest.Environment.Set("Gate.Request.Form#input", thisInput);
                thisRequest.Environment.Set("Gate.Request.Form", x);
                return x;
            });
        }
コード例 #2
0
ファイル: Request.cs プロジェクト: ioleksiy/gate
        public IForm ReadForm()
        {
            if (!HasFormData && !HasParseableData && !HasBoundary)
            {
                return new Form.Form();
            }

            var form = Environment.Get<IForm>("Gate.Request.Form");
            var thisInput = Body;
            var lastInput = Environment.Get<object>("Gate.Request.Form#input");
            if (form != null && ReferenceEquals(thisInput, lastInput))
            {
                return form;
            }

            var boundary = Boundary;
            if (boundary == null)
            {
                var text = ReadText();
                form = new Form.Form(text);
            }
            else
            {
                form = new Form.Form(boundary, thisInput);
            }
            Environment.Set("Gate.Request.Form#input", thisInput);
            Environment.Set("Gate.Request.Form", form);
            return form;
        }