コード例 #1
0
        public async Task Dispatch(RequestDispatchContext requestDispatchContext)
        {
            var req = requestDispatchContext.HttpContext.Request;
            var res = requestDispatchContext.HttpContext.Response;

            if (req.Method != "GET")
            {
                res.StatusCode = 405;
                return;
            }

            var indexPage = Path.Combine(_appEnvironment.ApplicationBasePath, "Views", "ISwitch", "Index.cshtml");

            using (var reader = new StreamReader(indexPage))
            {
                var output = await reader.ReadToEndAsync();

                await res.WriteAsync(output);
            }
        }
コード例 #2
0
        public async Task Dispatch(RequestDispatchContext requestDispatchContext)
        {
            var req = requestDispatchContext.HttpContext.Request;
            var res = requestDispatchContext.HttpContext.Response;

            if (req.Method != "POST")
            {
                res.StatusCode = 405;
                return;
            }

            var featuresToEnable  = req.Form["enableFeatures"] as IEnumerable <string>;
            var featuresToDisable = req.Form["disableFeatures"] as IEnumerable <string>;

            featuresToEnable.ToList().ForEach(
                async x => await _featureService.EnableFeature(x).ConfigureAwait(false));
            featuresToDisable.ToList().ForEach(
                async x => await _featureService.DisableFeature(x).ConfigureAwait(false));

            res.StatusCode = (int)HttpStatusCode.NoContent;
        }
コード例 #3
0
        public async Task Invoke(HttpContext context)
        {
            var requestDispatchContext = new RequestDispatchContext {
                HttpContext = context
            };
            var key = requestDispatchContext.HttpContext.Request.Path.Value ?? "";

            if (key == "")
            {
                key = "/";
            }

            var dispatcher = _requestDispatchIndex[key];

            if (dispatcher == null)
            {
                return;
            }

            await dispatcher.Dispatch(requestDispatchContext);
        }
コード例 #4
0
        public async Task Dispatch(RequestDispatchContext requestDispatchContext)
        {
            var req = requestDispatchContext.HttpContext.Request;
            var res = requestDispatchContext.HttpContext.Response;

            if (req.Method != "GET")
            {
                res.StatusCode = 405;
                return;
            }

            var settings = new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver(),
                Converters       = new JsonConverter[] { new StringEnumConverter {
                                                             CamelCaseText = true
                                                         } }
            };
            var serialized = JsonConvert.SerializeObject(_featureInfoService.GetFeaturesItems(), settings);

            res.ContentType = "application/json";
            await res.WriteAsync(serialized);
        }