Esempio n. 1
0
        public async Task SetRulesRequest(string host, SetRulesRequest rules)
        {
            using (var handler = getHandler())
            {
                using (var client = new HttpClient(handler))
                {
                    // Configure client
                    UriBuilder uriBuilder = new UriBuilder(HTTPS_SCHEME, host, PORT_NUMBER);
                    client.BaseAddress = uriBuilder.Uri;

                    // Configure content
                    var json    = JsonConvert.SerializeObject(rules);
                    var content = new StringContent(json);
                    content.Headers.ContentType = new MediaTypeHeaderValue(CONTENT_TYPE);

                    // Make request
                    var response = await client.PutAsync(RULES_ENDPOINT, content);

                    if (!response.IsSuccessStatusCode)
                    {
                        throw new Exception();
                    }
                }
            }
        }
Esempio n. 2
0
        public SetRulesResponse UpdateRules(SetRulesRequest rules)
        {
            ToastHelper.PopToast("Update rules");

            var rulesToApply = rules.GenericRequest;

            if (rulesToApply.Count <= 0)
            {
                return(new SetRulesResponse()
                {
                    Success = false
                });
            }

            List <Rule> domainRules = rulesToApply.Select(x => (Rule)(new WindowsRuleAdapter(x).NativeType)).ToList();

            foreach (var rule in domainRules)
            {
                FirewallHelper.NewRule(rule);
            }

            return(new SetRulesResponse()
            {
                Success = true
            });
        }
Esempio n. 3
0
        public async Task <IActionResult> ApplyTo(string id)
        {
            var policy = policyRepo.GetPolicy(id);

            if (policy.Rules.Count <= 0)
            {
                return(RedirectToAction("Index"));
            }

            var f    = Request.Form;
            var devs = f["Device"];

            var rulesRequest = new SetRulesRequest();
            var client       = new AgentApiClient();
            var tasks        = new List <Task>(devs.Count);

            rulesRequest.GenericRequest = Mapper.Map <List <Selly.Agent.Generic.Models.Rule> >(policy.Rules.ToList());

            foreach (var device in devs)
            {
                var d = deviceRepo.GetDevice(device);
                tasks.Add(client.SetRulesRequest(d.Address, rulesRequest));
            }

            await Task.WhenAll(tasks);

            return(RedirectToAction("Index"));
        }
Esempio n. 4
0
 public SetRulesResponse Put([FromBody] SetRulesRequest value)
 {
     return(Program.Callbacks.UpdateRules(value));
 }