Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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;
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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"));
            }
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
            }
        }
Exemplo n.º 9
0
        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
            {
                ;
            }
        }
Exemplo n.º 10
0
        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));
        }
Exemplo n.º 11
0
        public ActionResult Delete(int id)
        {
            return(Execute(() =>
            {
                var request = new DeleteHourLineRequest(id);

                RequestHandlerFactory
                .Get <DeleteHourLineRequest, ResponseBase>(request)
                .Handle();
            }));
        }
Exemplo n.º 12
0
        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>();
 }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        public ActionResult <TimeSheet> Post([FromBody] TimeSheet timeSheet)
        {
            return(Execute(() =>
            {
                var request = new StoreTimeSheetRequest(timeSheet);

                RequestHandlerFactory
                .Get <StoreTimeSheetRequest, ResponseBase>(request)
                .Handle();

                return timeSheet;
            }));
        }
Exemplo n.º 16
0
        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());
            }));
        }
Exemplo n.º 17
0
        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
            {
                ;
            }
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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();
            }));
        }
Exemplo n.º 20
0
        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"));
            });
        }
Exemplo n.º 21
0
 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");
 }
Exemplo n.º 22
0
        // 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);
            });
        }
Exemplo n.º 23
0
        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);
                }
            }
        }
Exemplo n.º 24
0
        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);
        }
Exemplo n.º 25
0
        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);
        }
Exemplo n.º 26
0
        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();
        }
Exemplo n.º 27
0
        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();
            }
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        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);
            }
        }
Exemplo n.º 30
0
        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);
        }
Exemplo n.º 31
0
        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);
        }