Exemple #1
0
        public DeviceTemplate(string name, JArray jobs)
        {
            Name = name;

            var jobDescs = new HashSet <JobDesc>();

            foreach (var job in jobs)
            {
                var jobName  = job.Value <string>("name");
                var interval = job.Value <int>("interval");

                if (interval <= 0)
                {
                    throw new ApplicationException(string.Format(CultureInfo.InvariantCulture, "{0}.interval = {1}. Please assign it a positive value to avoid tight loop without interval", name, interval));
                }

                var sourceDesc = FilterDesc.Create(job["sourceFilter"]);

                var intermedias     = job["intermediaFilters"] as JArray;
                var intermediaDescs = intermedias == null || intermedias.Count == 0 ?
                                      new List <FilterDesc>() :
                                      intermedias.Select(t => FilterDesc.Create(t));

                var sinkDesc = FilterDesc.Create(job["sinkFilter"]);

                var jobDesc = new JobDesc(jobName, interval, sourceDesc, intermediaDescs, sinkDesc);
                jobDescs.Add(jobDesc);
            }

            Jobs = jobDescs;
        }