private bool AddTaskToNewFrequency(TaskDetails taskProperties, WorkItems template)
 {
     template.TaskSet.Add(this.CreateTaskSetItem(taskProperties));
     return true;
 }
 private TaskSet CreateTaskSetItem(TaskDetails taskProperties)
 {
     var tasks = new List<Task> { CreateTask(taskProperties) };
     var taskSetItem = new TaskSet { Frequency = taskProperties.Frequency, Tasks = tasks };
     return taskSetItem;
 }
 private static Task CreateTask(TaskDetails taskProperties)
 {
     return new Task { JobName = taskProperties.JobName };
 }
        private bool AddIfRolesAreTheSame(TaskDetails taskProperties, bool added, WorkItems template)
        {
            if (template.RoleName == taskProperties.Role)
            {
                foreach (var t in template.TaskSet)
                {
                    added = AddTaskIfFrequencyIsTheSame(taskProperties, t);
                }

                if (!added)
                {
                    added = this.AddTaskToNewFrequency(taskProperties, template);
                }
            }

            return added;
        }
        private static bool AddTaskIfFrequencyIsTheSame(TaskDetails taskProperties, TaskSet t)
        {
            bool added = false;
            if (t.Frequency == taskProperties.Frequency)
            {
                t.Tasks.Add(CreateTask(taskProperties));
                added = true;
            }

            return added;
        }
        public void AddTask(TaskDetails taskProperties)
        {
            var added = false;
            foreach (var template in this.masterConfig.Templates)
            {
                foreach (var wi in template.WorkItems)
                {
                    added = this.AddIfRolesAreTheSame(taskProperties, added, wi);
                }
            }

            if (!added)
            {
                var taskSetItem = CreateTaskSetItem(taskProperties);
                if (masterConfig.Templates.Count == 0)
                {
                    masterConfig.Templates.Add(new Template());
                }

                var workItem = new WorkItems { RoleName = taskProperties.Role, TaskSet = new List<TaskSet> { taskSetItem } };
                this.masterConfig.Templates[0].WorkItems.Add(workItem);
            }
        }
 private static void AssertThatTaskEqualToTaskProperty(TaskDetails t, Task task)
 {
     Assert.Fail("commented out shit");
     //Assert.That(task.client, Is.EqualTo(t.Client));
     //Assert.That(task.connectionstring, Is.EqualTo(t.Connectionstring));
     //Assert.That(task.name, Is.EqualTo(t.Name));
     //Assert.That(task.path, Is.EqualTo(t.Path));
     //Assert.That(task.port, Is.EqualTo(t.Port));
     //Assert.That(task.sql, Is.EqualTo(t.Sql));
     //Assert.That(task.type, Is.EqualTo(t.Type));
 }
        public void Should_add_task_to_role()
        {
            var roleName = "someRole";
            var frequency = 1000;
            var jobName = "jobName";
            var t = new TaskDetails(roleName, frequency, jobName);

            //Test
            repository.AddTask(t);
            //Assert
            var templates = repository.GetTemplates();
            Assert.That(templates.Count, Is.EqualTo(1));
            Assert.That(templates[0].WorkItems[0].RoleName, Is.EqualTo(t.Role));
            Assert.That(templates[0].WorkItems[0].TaskSet[0].Frequency, Is.EqualTo(t.Frequency));
            Assert.That(templates[0].WorkItems[0].TaskSet[0].Tasks[0].JobName, Is.EqualTo(jobName));
        }
        public void Should_add_task_to_new_role()
        {
            var t0 = new TaskDetails("someRole1", 1000, "job1");
            var t1 = new TaskDetails("someRole2", 1000, "client");
            //Test
            repository.AddTask(t0);
            repository.AddTask(t1);
            //Assert
            var templates = repository.GetTemplates();
            Assert.That(templates[0].WorkItems.Count, Is.EqualTo(2));

            Assert.That(templates[0].WorkItems[0].RoleName, Is.EqualTo(t0.Role));
            Assert.That(templates[0].WorkItems[0].TaskSet[0].Frequency, Is.EqualTo(t0.Frequency));
            Assert.That(templates[0].WorkItems[0].TaskSet[0].Tasks[0].JobName, Is.EqualTo(t0.JobName));
            Assert.That(templates[0].WorkItems[1].RoleName, Is.EqualTo(t1.Role));
            Assert.That(templates[0].WorkItems[1].TaskSet[0].Frequency, Is.EqualTo(t1.Frequency));
            Assert.That(templates[0].WorkItems[1].TaskSet[0].Tasks[0].JobName, Is.EqualTo(t1.JobName));
        }