Ejemplo n.º 1
0
        public static async Task <string> BlockIPWafOrchestration(
            [OrchestrationTrigger] IDurableOrchestrationContext context)
        {
            Payload data = context.GetInput <Payload>();

            RequestParam reqparam = new RequestParam {
                action   = "add",
                blockips = new List <string> {
                    $"{data.blockip}"
                }
            };

            //var output1 = await context.CallActivityAsync<string>("UpdateWafPolicy", reqparam);
            //var output2 = await context.CallActivityAsync<string>("InsertToDB", reqparam);

            //run parallel
            var tasks = new Task <string> [2];

            tasks[0] = context.CallActivityAsync <string>("UpdateWafPolicy", reqparam);
            tasks[1] = context.CallActivityAsync <string>("InsertToDB", reqparam);

            await Task.WhenAll(tasks);

            return(tasks[0].Result);
        }
Ejemplo n.º 2
0
        public static async Task <string> TTLTimerOrchestration(
            [OrchestrationTrigger] IDurableOrchestrationContext context)
        {
            List <string> ttllist = await context.CallActivityAsync <List <string> >("UpdateTTL", null);

            string policy = "nothing updated";

            if (ttllist.Count > 0)
            {
                RequestParam reqparam = new RequestParam {
                    action   = "remove",
                    blockips = ttllist
                };

                policy = await context.CallActivityAsync <string>("UpdateWafPolicy", reqparam);
            }
            return(policy);
        }