public void OpenSession(string url, bool forceSession) { string Login = string.Empty; string Password = string.Empty; using (AvtoritetEntities ae = new AvtoritetEntities()) { string sql = "SELECT dbo.ProviderAccount.Login, dbo.ProviderAccount.Password\r\n FROM dbo.Provider INNER JOIN\r\n dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId\r\n WHERE(dbo.Provider.Uri LIKE N'%partslink%') AND(dbo.ProviderAccount.Enable = 1)"; System.Collections.Generic.List <ProvAcc> provider = ae.Database.SqlQuery <ProvAcc>(sql, new object[0]).ToList <ProvAcc>(); if (provider.Count > 0) { System.Random random = new System.Random(); int randomValue = (provider.Count > 1) ? random.Next(provider.Count - 1) : 0; Login = provider[randomValue].Login; Password = provider[randomValue].Password; } } this.requestHandler = RequestHandlerFactory.Create(url, Login, Password, null); HttpResponseMessage responseMessage = this.GetResponse(url, forceSession, this.requestHandler, PartslinkPortal.CookieContainer); if (responseMessage != null) { this.requestHandler.GetSessionResultAsync(responseMessage); } }
private HttpResponseMessage ProcessCommand() { var requestHandler = RequestHandlerFactory.GetHandler(this.Command); if (requestHandler != null) { requestHandler.Initialize(this.Device, this.RequestContent); var responseMessage = new HttpResponseMessage(HttpStatusCode.OK); var responseObj = requestHandler.Handle(); var responseXml = responseObj.GetAsXML(); var encoder = new ASWBXML(); encoder.LoadXml(responseXml); var wbxmlContent = encoder.GetBytes(); responseMessage.Content = new ByteArrayContent(wbxmlContent); responseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.ms-sync.wbxml"); return(responseMessage); } else { //TODO: Return appropriate ResponseMessage //throw new InvalidCommandException(string.Format("Command {0} is not supported", this.Command.ToString())); return(new HttpResponseMessage(HttpStatusCode.BadRequest)); } //TODO: Resturn Appropriate Response return(new HttpResponseMessage(HttpStatusCode.OK)); }
private static async void DispatchHttpRequestsAsync(System.Net.HttpListener httpListener, CancellationToken cancellationToken) { // Create a request handler factory that uses basic authentication var requestHandlerFactory = new RequestHandlerFactory(); // Create WebDAV dispatcher var homeFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); var webDavDispatcher = new WebDavDispatcher(new DiskStore(homeFolder), requestHandlerFactory); // Determine the WebDAV username/password for authorization // (only when basic authentication is enabled) var webdavUsername = ConfigurationManager.AppSettings["webdav.username"] ?? "test"; var webdavPassword = ConfigurationManager.AppSettings["webdav.password"] ?? "test"; HttpListenerContext httpListenerContext; while (!cancellationToken.IsCancellationRequested && (httpListenerContext = await httpListener.GetContextAsync().ConfigureAwait(false)) != null) { // Determine the proper HTTP context IHttpContext httpContext; if (httpListenerContext.Request.IsAuthenticated) { httpContext = new HttpBasicContext(httpListenerContext, checkIdentity: i => i.Name == webdavUsername && i.Password == webdavPassword); } else { httpContext = new HttpContext(httpListenerContext); } // Dispatch the request await webDavDispatcher.DispatchRequestAsync(httpContext).ConfigureAwait(false); } }
public Session(GlobalConfiguration globalConfiguration, IAccountManager accountManager, IZoneManager zoneManager, ICustomDictionary customDictionary, Socket socket, Func <string, Command> commandFactory, RequestHandlerFactory <IRequest> requestHandlerFactory, RequestHandlerFactory <IZoneRequest> zoneRequestHandlerFactory) { Id = SessionID.New(); _connection = new SessionConnection(socket) { RsaKeyReceived = OnRsaKeyReceived }; _connection.Disconnected += OnDisconnected; _connection.Received += OnDataReceived; _globalConfiguration = globalConfiguration; _accountManager = accountManager; _zoneManager = zoneManager; _customDictionary = customDictionary; _commandFactory = commandFactory; _requestHandlerFactory = requestHandlerFactory; _zoneRequestHandlerFactory = zoneRequestHandlerFactory; _accessLevel = AccessLevel.notDefined; }
public void OpenSession(string url, bool forceSession) { string Login = string.Empty; string Password = string.Empty; using (AvtoritetEntities ae = new AvtoritetEntities()) { string sql = "SELECT TOP (1) dbo.ProviderAccount.Login, dbo.ProviderAccount.Password\r\n FROM dbo.Provider INNER JOIN\r\n dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId\r\n WHERE(dbo.Provider.Uri LIKE N'%imtportal.gm.com/chevrolet%') AND(dbo.ProviderAccount.Enable = 1)"; ProvAcc provider = ae.Database.SqlQuery <ProvAcc>(sql, new object[0]).FirstOrDefault <ProvAcc>(); if (provider != null) { Login = provider.Login; Password = provider.Password; } } //Login = "******"; //Password = "******"; this.requestHandler = RequestHandlerFactory.Create(url, Login, Password, null); HttpResponseMessage responseMessage = this.GetResponse(url, forceSession, this.requestHandler, ChevroletPortal.CookieContainer); if (responseMessage != null) { this.requestHandler.GetSessionResultAsync(responseMessage); } }
public ActionResult PostLogin(UserLoginViewModel model, string returnUrl) { try { var redirectUrl = nameof(Login); var loginRequest = new LoginRequest { Password = model.Password, Username = model.UserName }; var handlerFactory = new RequestHandlerFactory(); var requestHandler = handlerFactory.GetHandler(); requestHandler.HandleLoginQuery(loginRequest, // onSuccess async(user) => { await CreateCookie(user); redirectUrl = returnUrl ?? "/Home"; }, //onFailure errorMessage => { TempData[errorMessageString] = errorMessage; }); return(Redirect(redirectUrl)); } catch (Exception ex) { TempData["Exception"] = ex; TempData["Model"] = model; return(View("Error")); } }
private HttpResponseMessage ProcessOptions() { try { if (Device.Credential == null) { return(new HttpResponseMessage(HttpStatusCode.NonAuthoritativeInformation)); } var isAuthenticated = AuthenticationService.Authenticate(Device.Credential.UserName, Device.Credential.Password); if (!isAuthenticated) { return(new HttpResponseMessage(HttpStatusCode.Unauthorized)); } } catch (Exception) { return(new HttpResponseMessage(HttpStatusCode.ServiceUnavailable)); } var response = new HttpResponseMessage(HttpStatusCode.OK); response.Headers.Add("MS-ASProtocolVersions", PorotocolsVersion); response.Headers.Add("MS-ASProtocolCommands", RequestHandlerFactory.GetSupportingCommands()); return(response); }
public override void OpenSession(string url, long providerId, bool forceSession) { string url_session = string.Empty; int validateSession = -1; //uri = new Uri(url); //urlSession = string.Format("{0}://{1}/", uri.Scheme, uri.Host); url_session = url; if (!((validateSession = GetValidateSession(url_session, forceSession, ChevroletPortal.CookieContainer)) == 0)) { string login = string.Empty, password = string.Empty; if (validateSession == -1) { using (AvtoritetEntities ae = new AvtoritetEntities()) { string sql = //string.Format( ////"SELECT TOP (1) dbo.ProviderAccount.Login, dbo.ProviderAccount.Password\r\n FROM dbo.Provider INNER JOIN\r\n dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId\r\n WHERE(dbo.Provider.Uri LIKE N'%{0}%') AND(dbo.ProviderAccount.Enable = 1)" ////, CatalogApi.UrlConstants.ChevroletOpelGroupRoot) //"SELECT TOP (1) dbo.ProviderAccount.Login, dbo.ProviderAccount.Password{0}{1}" // + "FROM dbo.Provider{0}{1}" // + "INNER JOIN dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId{0}{1}" // + "WHERE(dbo.Provider.Uri = N'{2}') AND (dbo.ProviderAccount.Enable = 1)" // , "\r\n", " ", url_session) GetQueryCreditionals(providerId) ; ProvAcc provider = ae.Database.SqlQuery <ProvAcc>(sql, new object[0]).FirstOrDefault <ProvAcc>(); if (provider != null) { login = provider.Login; password = provider.Password; } } //uri = new Uri(url); //urlSession = string.Format("{0}://{1}/", uri.Scheme, uri.Host); url_session = url; this.m_requestHandler = RequestHandlerFactory.Create(url_session, login, password, null); } else { ; } } else { ; } HttpResponseMessage responseMessage = this.GetResponse(url_session, providerId, validateSession, this.m_requestHandler, ChevroletPortal.CookieContainer); if (responseMessage != null) { this.m_requestHandler.GetSessionResultAsync(responseMessage); } }
public override void OpenSession(string url, long providerId, bool forceSession) { string url_session = url; int validateSession = -1; if (!((validateSession = GetValidateSession(url_session, forceSession, PartslinkPortal.CookieContainer)) == 0)) { string login = string.Empty , password = string.Empty; if (validateSession < 0) { using (AvtoritetEntities ae = new AvtoritetEntities()) { string sql = string.Format("SELECT dbo.ProviderAccount.Login, dbo.ProviderAccount.Password{1}{0}{0}{0}{0}" + "FROM dbo.Provider{1}{0}{0}{0}{0}" + "INNER JOIN dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId{1}{0}{0}{0}{0}" + "WHERE(dbo.Provider.Uri LIKE N'%{2}%') AND (dbo.ProviderAccount.Enable = 1)" , " " , "\r\n" , ResourceManager.Urls[CatalogApi.UrlConstants.Key.PartslinkRoot]) //GetQueryCreditionals(providerId) ; System.Collections.Generic.List <ProvAcc> provider = ae.Database.SqlQuery <ProvAcc>(sql, new object[0]).ToList <ProvAcc>(); if (provider.Count > 0) { System.Random random = new System.Random(); int randomValue = (provider.Count > 1) ? random.Next(provider.Count - 1) : 0; login = provider[randomValue].Login; password = provider[randomValue].Password; } } this.m_requestHandler = RequestHandlerFactory.Create(url_session, login, password, null); } else { ; } } else { ; } HttpResponseMessage responseMessage = this.GetResponse(url_session, providerId, validateSession, this.m_requestHandler, PartslinkPortal.CookieContainer); if (responseMessage != null) { this.m_requestHandler.GetSessionResultAsync(responseMessage); } else { ; } }
private static IWebDavDispatcher GetWebDavDispatcher() { // Create a request handler factory that uses basic authentication var requestHandlerFactory = new RequestHandlerFactory(); // Create a WebDAV dispatcher for the home folder var homeFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); return(new WebDavDispatcher(new DiskStore(homeFolder), requestHandlerFactory)); }
public ActionResult Delete(int id) { return(Execute(() => { var request = new DeleteHourLineRequest(id); RequestHandlerFactory .Get <DeleteHourLineRequest, ResponseBase>(request) .Handle(); })); }
public void Init(HttpApplication context) { var requestHandlerFactory = new RequestHandlerFactory(); _worker = new Worker(requestHandlerFactory, () => new WorkerContext(context)); context.BeginRequest += (sender, args) => _worker.BeginRequest(); context.PreRequestHandlerExecute += (sender, args) => _worker.PreRequestHandlerExecute(); context.PostRequestHandlerExecute += (sender, args) => _worker.PostRequestHandlerExecute(); context.PostReleaseRequestState += (sender, args) => _worker.PostReleaseRequestState(); context.EndRequest += (sender, args) => _worker.EndRequest(); }
public AggregateReportApi() { _getAggregatedHeadLineStatisticsRequestHandler = RequestHandlerFactory.Create <IGetAggregatedHeadlineStatisticsRequestHandler>(); _getAggregatedTrustStatisticsRequestHandler = RequestHandlerFactory.Create <IGetAggregatedTrustStatisticsRequestHandler>(); _getAggregatedComplianceStatisticsRequestHandler = RequestHandlerFactory.Create <IGetAggregatedComplianceStatisticsRequestHandler>(); _getAggregatedDispositionStatisticsRequestHandler = RequestHandlerFactory.Create <IGetAggregatedDispositionStatisticsRequestHandler>(); _getDailyHeadLineStatisticsRequestHandler = RequestHandlerFactory.Create <IGetDailyHeadlineStatisticsRequestHandler>(); _getDailyTrustStatisticsRequestHandler = RequestHandlerFactory.Create <IGetDailyTrustStatisticsRequestHandler>(); _getDailyComplianceStatisticsRequestHandler = RequestHandlerFactory.Create <IGetDailyComplianceStatisticsRequestHandler>(); _getDailyDispositionStatisticsRequestHandler = RequestHandlerFactory.Create <IGetDailyDispositionStatisticsRequestHandler>(); _getDomainSearchRequestHandler = RequestHandlerFactory.Create <IGetMatchingDomainsRequestHandler>(); }
public void SetUp() { _processor = new RequestProcessor(_ruleThatReturnsFirstHandler, new RequestHandlerList()); _requestHandlerFactory = new RequestHandlerFactory(_processor); _dataProducer = MockRepository.GenerateStub <IDataProducer>(); _httpResponseDelegate = MockRepository.GenerateStub <IHttpResponseDelegate>(); _ruleThatReturnsFirstHandler = MockRepository.GenerateStub <IMatchingRule>(); _ruleThatReturnsFirstHandler.Stub(x => x.IsEndpointMatch(null, new HttpRequestHead())).IgnoreArguments().Return(true).Repeat.Once(); _ruleThatReturnsNoHandlers = MockRepository.GenerateStub <IMatchingRule>(); _ruleThatReturnsNoHandlers.Stub(x => x.IsEndpointMatch(null, new HttpRequestHead())).IgnoreArguments().Return(false); }
public ActionResult <TimeSheet> Post([FromBody] TimeSheet timeSheet) { return(Execute(() => { var request = new StoreTimeSheetRequest(timeSheet); RequestHandlerFactory .Get <StoreTimeSheetRequest, ResponseBase>(request) .Handle(); return timeSheet; })); }
public ActionResult <TimeSheet> Get(int id) { // TODO: Dtos something something? return(Execute(() => { var request = new GetTimeSheetRequest(id); var response = RequestHandlerFactory .Get <GetTimeSheetRequest, GetTimeSheetReponse>(request) .Handle(); return response.TimeSheet.ValueOr(() => throw new EntityNotFoundException()); })); }
public override void OpenSession(string url, long providerId, bool forceSession) { string url_session = url; int validateSession = -1; if (!((validateSession = GetValidateSession(url_session, forceSession, PeugeotPortal.CookieContainer)) == 0)) { string login = string.Empty , password = string.Empty; if (validateSession < 0) { using (AvtoritetEntities ae = new AvtoritetEntities()) { string sql = //string.Format("SELECT TOP (1) dbo.ProviderAccount.Login, dbo.ProviderAccount.Password{0}" // + " FROM dbo.Provider{0}" // + " INNER JOIN dbo.ProviderAccount ON dbo.Provider.ProviderId = dbo.ProviderAccount.ProviderId{0}" // + " WHERE(dbo.Provider.Uri LIKE N'%peugeot%') AND(dbo.ProviderAccount.Enable = 1)" // , "\r\n") GetQueryCreditionals(providerId) ; ProvAcc provider = ae.Database.SqlQuery <ProvAcc>(sql, new object[0]).FirstOrDefault <ProvAcc>(); login = provider.Login; password = provider.Password; } this.m_requestHandler = RequestHandlerFactory.Create(url_session, login, password, null); } else { ; } } else { ; } HttpResponseMessage responseMessage = this.GetResponse(url_session, providerId, validateSession, this.m_requestHandler, PeugeotPortal.CookieContainer); if (responseMessage != null) { this.m_requestHandler.GetSessionResultAsync(responseMessage); } else { ; } }
public void TestWithDefault() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <int, Action <int> > .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q.Sync(p => p.Single("a", int.Parse), cf => cf().Method)), n => n); var uri = new Uri("http://localhost?a=192"); var responder = handler("get", uri, 543, _cts.Token).Result; responder(100); Assert.AreEqual((Action <int>)ExpectedResponder, responder); }
public ActionResult <TimeSheet[]> Get() { var currentUser = _currentUserService.Provide(); return(Execute(() => { var request = new TimeSheetOverviewRequest(currentUser.Id); var response = RequestHandlerFactory .Get <TimeSheetOverviewRequest, TimeSheetOverviewReponse>(request) .Handle(); return response.TimeSheets.ToArray(); })); }
public void OnGet(int id) { PageTitle = "Edit Timesheet"; Execute(() => { var request = new GetTimeSheetRequest(id); var response = RequestHandlerFactory .Get <GetTimeSheetRequest, GetTimeSheetReponse>(request) .Handle(); TimeSheet = response .TimeSheet .ValueOr(() => throw new BusinessLogicException("Timesheet not found")); }); }
public void CloseSession(string url) { if (this.requestHandler != null) { this.requestHandler.Close(CitroenPortal.CookieContainer).Wait(); } else { IRequestHandler request = RequestHandlerFactory.Create(url, string.Empty, string.Empty, null); if (request != null) { request.Close(CitroenPortal.CookieContainer).Wait(); } } ConsoleHelper.Info("Session was closed"); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app) { // Create the request handler factory var requestHandlerFactory = new RequestHandlerFactory(); // Create WebDAV dispatcher var homeFolder = Environment.GetEnvironmentVariable("HOME") ?? Environment.GetEnvironmentVariable("USERPROFILE"); var webDavDispatcher = new WebDavDispatcher(new DiskStore(homeFolder), requestHandlerFactory); app.Run(async context => { // Create the proper HTTP context var httpContext = new AspNetCoreContext(context); // Dispatch request await webDavDispatcher.DispatchRequestAsync(httpContext).ConfigureAwait(false); }); }
private static async void DispatchHttpRequestsAsync(HttpListener httpListener, CancellationToken cancellationToken, int maxThreadCount = Int32.MaxValue) { // Create a request handler factory that uses basic authentication var requestHandlerFactory = new RequestHandlerFactory(); // Create WebDAV dispatcher var homeFolder = new MailruStore(); var webDavDispatcher = new WebDavDispatcher(homeFolder, requestHandlerFactory); using (var sem = new SemaphoreSlim(maxThreadCount)) { var semclo = sem; while (!cancellationToken.IsCancellationRequested) { HttpListenerContext httpListenerContext; try { httpListenerContext = await httpListener.GetContextAsync().ConfigureAwait(false); } catch (Exception) { return; } IHttpContext httpContext = new HttpContext(httpListenerContext); await semclo.WaitAsync(cancellationToken); await Task .Run(async() => { try { await webDavDispatcher.DispatchRequestAsync(httpContext); } catch (Exception ex) { throw new Exception(ex.Message); } }, cancellationToken) .ContinueWith(t => semclo.Release(), cancellationToken); } } }
public void TestHandleNonMultipart() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <Stream, bool> .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q .Sync(p => p .Context(FormUrlencodedDeserialize <SomeEntity>), cf => HandleSomeEntity)), n => n); var uri = new Uri("http://localhost"); var body = "IntField=12&BoolField=true&StringField=asdf"; var stream = GenerateStreamFromString(body); var result = handler("get", uri, stream, _cts.Token).Result; Assert.IsTrue(result); }
public bool IsServiceAvailable() { bool result; try { CookieContainer cookieContainer = new CookieContainer(); IRequestHandler requestHandler = RequestHandlerFactory.Create("http://www.partslink24.com/", string.Empty, string.Empty, null); Task <HttpResponseMessage> responseMessage = requestHandler.GetSessionAsync("http://www.partslink24.com/", cookieContainer); string content = responseMessage.Result.Content.ReadAsStringAsync().Result; result = (!content.Contains("maintenance_general") && int.Parse(RequestProcessor.GetConfig("Partslink")) > 0); } catch (System.Exception ex) { ErrorLogHelper.AddErrorInLog("IsServiceAvailable()", ex.Message + "|" + ex.StackTrace); ConsoleHelper.Error(string.Format("{0} || {1} || {2}", ex.Message, ex.StackTrace, ex.Data)); result = false; } return(result); }
public static void Main(string[] args) { var cts = new CancellationTokenSource(); var c = CreateContainer(); var handler = RequestHandlerFactory <HttpListenerRequest, View> .CreateHandler(c.Resolve <HomeController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Context(), cf => cf().EreIndex)) .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("name"), cf => cf().EreIndex)) .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("name", "default"), cf => cf().EreIndex)) .Method(Mn.Post, queries => queries .Sync(ps => ps.Context(DeserializeAsync <SimpleForm>), cp => cp().PostAnswer)), rs0 => rs0 .Named("about", ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, c.ResolveKeyed <Func <View> >("About"))), rs1 => rs1 .Named("organization", ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, c.ResolveKeyed <Func <View> >("About"))), rs2 => rs2 .Valued(int.Parse, c.Resolve <NewsController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Multiple("order", bool.Parse) .Custom(ParseInt), cp => cp().Index))))) .Named("news", c.Resolve <NewsController>, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps.Single("page", int.Parse, 0).Multiple("order", bool.Parse) .Custom(ParseInt), cp => cp().Index)), rs1 => rs1 .Valued(int.Parse, ms => ms .Method(Mn.Get, qs => qs .Sync(ps => ps, cp => cp().Get))))); new Server(handler) .RunAsync(cts.Token).Wait(); }
public void StartWebDavServer(int port, LogLevel logLevel, bool readOnly) { using (var manager = OpenQcdmManager()) { EfsFileManager.Instance.UpdateEntries(manager, "/"); using (var httpListener = new HttpListener()) { var uri = $"http://127.0.0.1:{port}/"; httpListener.Prefixes.Add(uri); httpListener.AuthenticationSchemes = AuthenticationSchemes.Anonymous; httpListener.Start(); if (_logger != null && logLevel >= LogLevel.Info) { _logger.LogInfo(Strings.WebDavServerStartedFormat, uri); } var cancellationTokenSource = new CancellationTokenSource(); var cancellationToken = cancellationTokenSource.Token; Console.CancelKeyPress += ((sender, args) => cancellationTokenSource.Cancel()); var requestHandlerFactory = new RequestHandlerFactory(); var webDavDispatcher = new WebDavDispatcher(new EfsStore(manager, readOnly, _logger, logLevel), requestHandlerFactory); //var homeFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile); //var webDavDispatcher = new WebDavDispatcher(new DiskStore(homeFolder), requestHandlerFactory); while (!cancellationToken.IsCancellationRequested) { var contextTask = httpListener.GetContextAsync(); contextTask.Wait(cancellationToken); var httpListenerContext = contextTask.Result; if (httpListenerContext != null) { var httpContext = new HttpContext(httpListenerContext); var dispatchRequestTask = webDavDispatcher.DispatchRequestAsync(httpContext); dispatchRequestTask.Wait(cancellationToken); } } } manager.Close(); } }
public void TestWithAlternative() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <int, Action <int> > .CreateHandler( () => new Ctrlr(ExpectedResponder), m => m .Method("get", q => q .Sync(p => p .Single("s", s => s) .Single("b", bool.Parse), cf => new Ctrlr2(ExpectedResponder).Method)), n => n); var uri = new Uri("http://localhost?s=asdfasdfasdf&b=true"); var responder = handler("get", uri, 543, _cts.Token).Result; responder(100); Assert.AreEqual((Action <int>)ExpectedResponder, responder); }
private async void Loop() { token = new CancellationTokenSource(); var requestHandlerFactory = new RequestHandlerFactory(); var store = new DavSystem(sys); var webDavDispatcher = new WebDavDispatcher(store, requestHandlerFactory); HttpListenerContext context; while (!token.IsCancellationRequested && (context = await listener.GetContextAsync().ConfigureAwait(false)) != null) { IHttpContext httpCtx; if (context.Request.IsAuthenticated) { httpCtx = new HttpBasicContext(context, checkIdentity: CheckAuth); } else { httpCtx = new HttpContext(context); } await webDavDispatcher.DispatchRequestAsync(httpCtx).ConfigureAwait(false); } }
public void TestHandleJson() { void ExpectedResponder(int response) { } var handler = RequestHandlerFactory <Stream, bool> .CreateHandler(() => new Ctrlr(ExpectedResponder), m => m.Method("get", q => q .Sync(p => p .Context(JsonDeserialize <SomeEntity>), cf => HandleSomeEntity)), n => n); var uri = new Uri("http://localhost"); var json = @"{ ""intField"": 12, ""boolField"": true, ""stringField"": ""asdf"", }"; var stream = GenerateStreamFromString(json); var result = handler("get", uri, stream, _cts.Token).Result; Assert.IsTrue(result); }
public void SetUp() { _processor = new RequestProcessor(_ruleThatReturnsFirstHandler, new RequestHandlerList()); _requestHandlerFactory = new RequestHandlerFactory(_processor); _dataProducer = MockRepository.GenerateStub<IDataProducer>(); _httpResponseDelegate = MockRepository.GenerateStub<IHttpResponseDelegate>(); _ruleThatReturnsFirstHandler = MockRepository.GenerateStub<IMatchingRule>(); _ruleThatReturnsFirstHandler.Stub(x => x.IsEndpointMatch(null, new HttpRequestHead())).IgnoreArguments().Return(true).Repeat.Once(); _ruleThatReturnsNoHandlers = MockRepository.GenerateStub<IMatchingRule>(); _ruleThatReturnsNoHandlers.Stub(x => x.IsEndpointMatch(null, new HttpRequestHead())).IgnoreArguments().Return(false); }