public async Task <ChangeSetResponse> ServiceApplyChangeSet(ChangeSetRequest changeSet) { ICRUDOperationsUseCaseFactory factory = ServiceContainer.CRUDOperationsUseCaseFactory; CRUDServiceMethods serviceMethods = new CRUDServiceMethods( (err) => { _OnError(err); return(GetFriendlyErrorMessage(err)); }, (row) => TrackChangesToEntity(row), async() => { await ExecuteChangeSet(); }, async() => { await AfterExecuteChangeSet(changeSet); }, async(subResults) => { await AfterChangeSetCommited(changeSet, subResults); }); ICRUDOperationsUseCase uc = factory.Create(this, serviceMethods); IResponsePresenter <ChangeSetResponse, ChangeSetResponse> output = ServiceContainer.GetRequiredService <IResponsePresenter <ChangeSetResponse, ChangeSetResponse> >(); bool res = await uc.Handle(changeSet, output); return(output.Response); }
public HttpStatusCode Process(HttpListenerContext context, IResponsePresenter presenter) { Validate(context); var query = context.Request.QueryString; var url = query.GetValues("url").Single(); var content = new byte[0]; using (var client = new WebClient()) { try { content = client.DownloadData(url); } catch (WebException ex) { var result = HttpStatusCode.BadGateway; using (var error = ex.Response.GetResponseStream()) { if (error != null) { content = new byte[error.Length]; error.Read(content, 0, content.Length); } } context.Response.StatusCode = (int) result; } context.Response.Headers.Set(HttpResponseHeader.ContentEncoding, client.ResponseHeaders.Get("Content-Encoding")); context.Response.Headers.Set(HttpResponseHeader.ContentType, client.ResponseHeaders.Get("Content-Type")); context.Response.ContentLength64 = content.Length; context.Response.OutputStream.Write(content, 0, content.Length); context.Response.OutputStream.Close(); return HttpStatusCode.OK; } }
public HttpStatusCode Process(HttpListenerContext context, IResponsePresenter presenter) { var responseArray = Encoding.UTF8.GetBytes("<HTML><BODY>Helloworld!</BODY></HTML>"); context.Response.StatusCode = (int) HttpStatusCode.OK; context.Response.ContentType = "text/html; charset=utf-8"; context.Response.ContentLength64 = responseArray.Length; context.Response.OutputStream.Write(responseArray, 0, responseArray.Length); context.Response.OutputStream.Close(); return HttpStatusCode.OK; }
public async Task <InvokeResponse> ServiceInvokeMethod(InvokeRequest message) { IInvokeOperationsUseCaseFactory factory = ServiceContainer.InvokeOperationsUseCaseFactory; IInvokeOperationsUseCase uc = factory.Create(this, (err) => { _OnError(err); return(GetFriendlyErrorMessage(err)); }); IResponsePresenter <InvokeResponse, InvokeResponse> output = ServiceContainer.GetRequiredService <IResponsePresenter <InvokeResponse, InvokeResponse> >(); bool res = await uc.Handle(message, output); return(output.Response); }
public HttpStatusCode Process(HttpListenerContext context, IResponsePresenter presenter) { Validate(context); if (ConfigurationManager.AppSettings["DataStorageMode"] == "sqlite") { _repository = new GuestBookSqliteRepository(); } else { _repository = new GuestBookXmlRepository(); } string content; HttpStatusCode result; switch (context.Request.HttpMethod) { case "GET": var guestBook = _repository.List(); content = presenter.FormatGuestBook(guestBook.Item1, guestBook.Item2); result = HttpStatusCode.OK; break; case "POST": var query = context.Request.QueryString; var user = query.GetValues("user").First(); var message = query.GetValues("message").First(); _repository.AddEntry(user, message); content = ""; result = HttpStatusCode.NoContent; break; default: content = presenter.FormatError(HttpStatusCode.MethodNotAllowed, "Method not allowed..."); result = HttpStatusCode.MethodNotAllowed; break; } var responseArray = Encoding.UTF8.GetBytes(content); context.Response.StatusCode = (int) result; context.Response.ContentType = "text/html; charset=utf-8"; context.Response.ContentLength64 = responseArray.Length; context.Response.OutputStream.Write(responseArray, 0, responseArray.Length); context.Response.OutputStream.Close(); return result; }