예제 #1
0
        public void ShouldDeserializeComplexWorkflowConfiguration3()
        {
            var workFlow = new Workflow();
            workFlow.Configuration = "{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[{\"expression\":\"1==1\",\"friendly_name\":\"Prioritizing Filter\",\"targets\":[{\"priority\":\"1\",\"queue\":\"WQccc\",\"timeout\":\"300\"}]}]}";

            var workFlowConfiguration = new WorkflowConfiguration();
            var filter = new Filter
            {
                FriendlyName = "Prioritizing Filter",
                Expression = "1==1",
                Targets = new List<Target>() { 
                    new Target { 
                        Queue="WQccc",
                        Priority="1",
                        Timeout="300"
                    }
                }
            };

            workFlowConfiguration.Filters.Add(filter);
            workFlowConfiguration.DefaultFilter = new Target() { Queue = "WQccc" };

            var config = workFlow.WorkflowConfiguration;

            Assert.AreEqual(workFlowConfiguration.ToString(), config.ToString());
        }
예제 #2
0
        public void ShouldSerializeComplexWorkflowConfiguration1()
        {
            var workFlowConfiguration = new WorkflowConfiguration();
            var filter = new Filter
            {
                FriendlyName = "Prioritizing Filter",
                Expression   = "1==1",
                Targets      = new List <Target>()
                {
                    new Target {
                        Queue    = "WQccc",
                        Priority = "1",
                        Timeout  = "300"
                    }
                }
            };

            workFlowConfiguration.Filters.Add(filter);
            workFlowConfiguration.DefaultFilter = new Target()
            {
                Queue = "WQccc"
            };

            var result = workFlowConfiguration.ToString();

            Assert.AreEqual("{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[{\"expression\":\"1==1\",\"friendly_name\":\"Prioritizing Filter\",\"targets\":[{\"priority\":\"1\",\"queue\":\"WQccc\",\"timeout\":\"300\"}]}]}", result);
        }
예제 #3
0
        public void ShouldSerializeWorkflowDefaultFilterConfiguration()
        {
            var workFlowConfiguration = new WorkflowConfiguration();
            workFlowConfiguration.DefaultFilter = new Target() { Queue = "WQccc" };

            var result = workFlowConfiguration.ToString();

            Assert.AreEqual("{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[]}", result);
        }
예제 #4
0
        public void ShouldDeserializeWorkflowDefaultFilterConfiguration()
        {
            var workFlow = new Workflow();
            workFlow.Configuration = "{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[]}";

            var workFlowConfiguration = new WorkflowConfiguration();
            workFlowConfiguration.DefaultFilter = new Target() { Queue = "WQccc" };

            var config = workFlow.WorkflowConfiguration;

            Assert.AreEqual(workFlowConfiguration.ToString(), config.ToString());
        }
예제 #5
0
        public void ShouldSerializeWorkflowDefaultFilterConfiguration()
        {
            var workFlowConfiguration = new WorkflowConfiguration();

            workFlowConfiguration.DefaultFilter = new Target()
            {
                Queue = "WQccc"
            };

            var result = workFlowConfiguration.ToString();

            Assert.AreEqual("{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[]}", result);
        }
예제 #6
0
        public void ShouldDeserializeWorkflowDefaultFilterConfiguration()
        {
            var workFlow = new Workflow();

            workFlow.Configuration = "{\"default_filter\":{\"queue\":\"WQccc\"},\"filters\":[]}";

            var workFlowConfiguration = new WorkflowConfiguration();

            workFlowConfiguration.DefaultFilter = new Target()
            {
                Queue = "WQccc"
            };

            var config = workFlow.WorkflowConfiguration;

            Assert.AreEqual(workFlowConfiguration.ToString(), config.ToString());
        }
예제 #7
0
    static void Main(string[] args)
    {
        // Find your Account Sid and Auth Token at twilio.com/user/account
        string AccountSid   = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        string AuthToken    = "your_auth_token";
        string WorkspaceSid = "WSXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        string salesQueue     = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        string marketingQueue = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        string supportQueue   = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
        string everyoneQueue  = "WQXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";

        var client = new TaskRouterClient(AccountSid, AuthToken);

        // sales
        var salesRule = new Filter()
        {
            FriendlyName = "Sales",
            Expression   = "type == 'sales'",
            Targets      = new List <Target>()
            {
                new Target {
                    Queue = salesQueue
                }
            }
        };

        // marketing
        var marketingRule = new Filter()
        {
            FriendlyName = "Marketing",
            Expression   = "type == 'marketing'",
            Targets      = new List <Target>()
            {
                new Target {
                    Queue = marketingQueue
                }
            }
        };

        // support
        var supportRule = new Filter
        {
            FriendlyName = "Support",
            Expression   = "type == 'support'",
            Targets      = new List <Target>()
            {
                new Target {
                    Queue = supportQueue
                }
            }
        };

        var workflowConfiguration = new WorkflowConfiguration();

        workflowConfiguration.Filters.Add(salesRule);
        workflowConfiguration.Filters.Add(marketingRule);
        workflowConfiguration.Filters.Add(supportRule);
        workflowConfiguration.DefaultFilter = new Target()
        {
            Queue = everyoneQueue
        };

        // convert to json
        var workflowJSON = workflowConfiguration.ToString();

        // call rest api
        Workflow workflow = client.AddWorkflow(WorkspaceSid, "Sales, Marketing, Support Workflow", workflowJSON, "http://example.com", "http://example2.com", 30);

        Console.WriteLine(workflow.FriendlyName);
    }