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; }); }
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; }