void FillSimpleItems(ItemList.SimpleItem[] simpleItems, SynesisTripWireRuleModel model)
        {
            simpleItems.ForEach(x => {
                switch (x.name)
                {
                case "Direction":
                    switch (x.value)
                    {
                    case "FromLeft":
                        model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromLeft;
                        break;

                    case "FromRight":
                        model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromRight;
                        break;

                    case "FromBoth":
                        model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromBoth;
                        break;
                    }
                    //model.ruleId = XmlConvert.ToInt32(x.Value);
                    break;
                }
            });
        }
        public bool Init(IUnityContainer container, StreamInfoArgs args, odm.ui.activities.ConfigureAnalyticView.ModuleDescriptor modulDescr)
        {
            this.modulDescr = modulDescr;
            this.container  = container;

            this.videoDescr = new ConfigureAnalyticView.AnalyticsVideoDescriptor()
            {
                videoInfo = new VideoInfo()
                {
                    MediaUri = args.streamUri, Resolution = new Size()
                    {
                        Width = args.sourceResolution.Width, Height = args.sourceResolution.Height
                    }
                },
                videoSourceResolution = new Size()
                {
                    Width = args.encoderResolution.Width, Height = args.encoderResolution.Height
                }
            };

            this.videoInfo = videoDescr.videoInfo;

            videoSourceSize  = new Size(videoDescr.videoSourceResolution.Width, videoDescr.videoSourceResolution.Height);
            videoEncoderSize = new Size(videoDescr.videoInfo.Resolution.Width, videoDescr.videoInfo.Resolution.Height);

            model = new SynesisTripWireRuleModel();

            try {
                FillSimpleItems(modulDescr.config.parameters.simpleItem, model);
            } catch (Exception err) {
                dbg.Error(err);
                return(false);
            }
            try{
                FillElementItems(modulDescr.config.parameters.elementItem, model);
            } catch (Exception err) {
                dbg.Error(err);
                return(false);
            }

            try{
                BindData();
                VideoStartup(args);
            } catch (Exception err) {
                dbg.Error(err);
                return(false);
            }
            return(true);
        }
 void FillElementItems(ItemList.ElementItem[] elementItems, SynesisTripWireRuleModel model)
 {
     elementItems.ForEach(x => {
         switch (x.name)
         {
         case "Points":
             model.TripPoints = x.any.Deserialize <synesis.TripWirePoints>();
             ScalePointsInput(model.TripPoints);
             break;
             //case "Direction":
             //    int i = 0;
             //    //model.TripDirection = x.Any.Deserialize<synesis.TripWireDirection>();
             //    break;
         }
     });
 }
 void FillSimpleItems(ItemList.SimpleItem[] simpleItems, SynesisTripWireRuleModel model) {
     simpleItems.ForEach(x => {
         switch (x.name) {
             case "Direction":
                 switch (x.value) { 
                     case "FromLeft":
                         model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromLeft;
                         break;
                     case "FromRight":
                         model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromRight;
                         break;
                     case "FromBoth":
                         model.TripDirection = controls.GraphEditor.TripWireEditor.TripWireDirection.FromBoth;
                         break;
                 }
                 //model.ruleId = XmlConvert.ToInt32(x.Value);
                 break;
         }
     });
 }
		public bool Init(IUnityContainer container, StreamInfoArgs args, odm.ui.activities.ConfigureAnalyticView.ModuleDescriptor modulDescr) {
			this.modulDescr = modulDescr;
			this.container = container;

			this.videoDescr = new ConfigureAnalyticView.AnalyticsVideoDescriptor() {
				videoInfo = new VideoInfo() { MediaUri = args.streamUri, Resolution = new Size() { Width = args.sourceResolution.Width, Height = args.sourceResolution.Height } },
				videoSourceResolution = new Size() { Width = args.encoderResolution.Width, Height = args.encoderResolution.Height }
			};

			this.videoInfo = videoDescr.videoInfo;

            videoSourceSize = new Size(videoDescr.videoSourceResolution.Width, videoDescr.videoSourceResolution.Height);
            videoEncoderSize = new Size(videoDescr.videoInfo.Resolution.Width, videoDescr.videoInfo.Resolution.Height);

            model = new SynesisTripWireRuleModel();

            try {
                FillSimpleItems(modulDescr.config.parameters.simpleItem, model);
            } catch (Exception err) {
                dbg.Error(err);
                return false;
            }
            try{
                FillElementItems(modulDescr.config.parameters.elementItem, model);
            } catch (Exception err) {
                dbg.Error(err);
                return false;
            }

            try{
                BindData();
				VideoStartup(args);
            } catch (Exception err) {
                dbg.Error(err);
                return false;
            }
            return true;
        }
 void FillElementItems(ItemList.ElementItem[] elementItems, SynesisTripWireRuleModel model) {
     elementItems.ForEach(x => {
         switch (x.name) {
             case "Points":
                 model.TripPoints = x.any.Deserialize<synesis.TripWirePoints>();
                 ScalePointsInput(model.TripPoints);
                 break;
             //case "Direction":
             //    int i = 0;
             //    //model.TripDirection = x.Any.Deserialize<synesis.TripWireDirection>();
             //    break;
         }
     });
 }