Example #1
0
 /// <summary>
 /// Initializes display names for features tree.
 /// </summary>
 /// <param name="featuresSet"></param>
 public static void Translate(FeaturesSet featuresSet)
 {
     foreach (FeatureNode node in featuresSet.Nodes)
     {
         Translate(node);
     }
 }
Example #2
0
        /// <summary>
        /// Builds features tree.
        /// This operatio is performed when control is created.
        /// </summary>
        void BuildFeaturesTree()
        {
            _featureNodes.Clear();
            _featuresSet = FeaturesHelper.CreateFeaturesSet();

            foreach (FeatureNode node in _featuresSet.Nodes)
            {
                AddFeatureNode(null, node);
            }

            tvFeatures.ExpandAll();
        }
Example #3
0
        /// <summary>
        /// Handles service/feature selection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvFeatures_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode    node        = e.Node;
            FeatureNode featureNode = (FeatureNode)node.Tag;

            System.Diagnostics.Debug.WriteLine(
                string.Format("tvFeatures_AfterCheck [processing] {0}", node.Text));

            // update list of selected features
            if (node.Checked)
            {
                if (!_features.Contains(featureNode.Feature))
                {
                    _features.Add(featureNode.Feature);
                }
            }
            else
            {
                _features.RemoveAll(v => (v == featureNode.Feature));
            }

            if (e.Action != TreeViewAction.ByMouse && e.Action != TreeViewAction.ByKeyboard)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("{0} checked automatically - skip part of processing", featureNode.DisplayName));
                return;
            }

            System.Diagnostics.Debug.WriteLine(string.Format(" --- check feature {0}", featureNode.DisplayName));
            featureNode.Checked = node.Checked;

            FeaturesSet.UpdateChildFeatures(featureNode);
            SetupChildFeatures(featureNode);

            // for PTZ Configurable Home / Fixed Home:
            // only one feature can be implemented
            if (featureNode.Feature == Feature.PTZConfigurableHome && node.Checked)
            {
                _featureNodes[Feature.PTZFixedHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZFixedHome && node.Checked)
            {
                _featureNodes[Feature.PTZConfigurableHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZHome && featureNode.Checked)
            {
                if (!(_featureNodes[Feature.PTZConfigurableHome].Checked || _featureNodes[Feature.PTZFixedHome].Checked))
                {
                    _featureNodes[Feature.PTZConfigurableHome].Checked = true;
                }
            }
        }
Example #4
0
        /// <summary>
        /// Builds features tree.
        /// This operatio is performed when control is created.
        /// </summary>
        void BuildFeaturesTree()
        {
            _featureNodes.Clear();
            _featuresSet = FeaturesSet.CreateFeaturesSet();
            FeaturesHelper.Translate(_featuresSet);

            foreach (FeatureNode node in _featuresSet.Nodes)
            {
                AddFeatureNode(null, node);
            }

            tvFeatures.ExpandAll();

            TreeNode tn = tvFeatures.Nodes[0];

            tn.EnsureVisible();
        }
Example #5
0
        static void Main(string[] args)
        {
            foreach (var file in Directory.GetFiles(movieDetailFileRootPath))
            {
                String fileName = Path.GetFileNameWithoutExtension(file);
                String title    = fileName.Split("_")[0];
                String tmdbId   = fileName.Split("_")[2];

                var movieDetail = JsonSerializer.Deserialize <MovieDetail>(System.IO.File.ReadAllText(file));
                movieDetails.Add(movieDetail);
            }

            foreach (var targetMovie in movieDetails)
            {
                FeaturesSet featuresSet = new FeaturesSet()
                {
                    Name   = targetMovie.OriginalTitle,
                    TMDbId = targetMovie.Id,
                    IMDbId = targetMovie.ImdbId
                };

                var moviesOfDirector = movieDetails.Where(x => x.OMDbMovieDetail.Director == targetMovie.OMDbMovieDetail.Director);

                featuresSet.HistoricalFeature = new HistoricalFeature()
                {
                    DirectorAvgRating = GetDirecotAvgRating(moviesOfDirector),
                    DirectorAvgGross  = GetDirectorAvgGross(moviesOfDirector),
                    DirectorSumMovies = moviesOfDirector.Count(),
                    ActorAvgRating    = GetActorAvgRating(targetMovie),
                    ActorAvgGross     = GetActorAvgGross(targetMovie),
                    ActorSumMovies    = GetActorSumMovies(targetMovie),


                    GenresAvgRating = GetGenresAvgRating(targetMovie),
                    GenresAvgGross  = GetGenresAvgGross(targetMovie),
                };
            }
        }
Example #6
0
        /// <summary>
        /// Handles service/feature selection
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tvFeatures_AfterCheck(object sender, TreeViewEventArgs e)
        {
            TreeNode    node        = e.Node;
            FeatureNode featureNode = (FeatureNode)node.Tag;

            System.Diagnostics.Debug.WriteLine(
                string.Format("tvFeatures_AfterCheck [processing] {0}", node.Text));

            // update list of selected features
            if (node.Checked)
            {
                switch (featureNode.Feature)
                {
                case Feature.ManagementService:
                    if (!_services.Contains(Service.Device))
                    {
                        _services.Add(Service.Device);
                    }
                    break;

                case Feature.MediaService:
                    if (!_services.Contains(Service.Media))
                    {
                        _services.Add(Service.Media);
                    }
                    break;

                case Feature.EventsService:
                    if (!_services.Contains(Service.Events))
                    {
                        _services.Add(Service.Events);
                    }
                    break;

                case Feature.PTZ:
                    if (!_services.Contains(Service.PTZ))
                    {
                        _services.Add(Service.PTZ);
                    }
                    if (!_features.Contains(featureNode.Feature))
                    {
                        _features.Add(featureNode.Feature);
                    }
                    break;

                default:
                    if (!_features.Contains(featureNode.Feature))
                    {
                        _features.Add(featureNode.Feature);
                    }
                    break;
                }
            }
            else
            {
                switch (featureNode.Feature)
                {
                case Feature.ManagementService:
                    _services.RemoveAll(v => (v == Service.Device));
                    _features.RemoveAll(v => (v == Feature.ManagementService));
                    break;

                case Feature.MediaService:
                    _services.RemoveAll(v => (v == Service.Media));
                    _features.RemoveAll(v => (v == Feature.MediaService));
                    break;

                case Feature.EventsService:
                    _services.RemoveAll(v => (v == Service.Events));
                    _features.RemoveAll(v => (v == Feature.EventsService));
                    break;

                case Feature.PTZ:
                    _services.RemoveAll(v => (v == Service.PTZ));
                    _features.RemoveAll(v => (v == Feature.PTZ));
                    break;

                default:
                    _features.RemoveAll(v => (v == featureNode.Feature));
                    break;
                }
            }

            if (e.Action != TreeViewAction.ByMouse && e.Action != TreeViewAction.ByKeyboard)
            {
                System.Diagnostics.Debug.WriteLine(string.Format("{0} checked automatically - skip part of processing", featureNode.DisplayName));
                return;
            }

            System.Diagnostics.Debug.WriteLine(string.Format(" --- check feature {0}", featureNode.DisplayName));
            featureNode.Check(node.Checked, true);

            // enable/disable PTZ depending on Media
            if (featureNode.Feature == Feature.MediaService)
            {
                _featuresSet.EnablePTZ();

                TreeNode    ptzNode        = _featureNodes[Feature.PTZ];
                FeatureNode ptzFeatureNode = ptzNode.Tag as FeatureNode;

                TransmitProperties(ptzFeatureNode, ptzNode);
                SetupChildFeatures(ptzFeatureNode);
            }

            FeaturesSet.UpdateChildFeatures(featureNode);
            SetupChildFeatures(featureNode);

            // for PTZ Configurable Home / Fixed Home:
            // only one feature can be implemented
            if (featureNode.Feature == Feature.PTZConfigurableHome && node.Checked)
            {
                _featureNodes[Feature.PTZFixedHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZFixedHome && node.Checked)
            {
                _featureNodes[Feature.PTZConfigurableHome].Checked = false;
            }
            else if (featureNode.Feature == Feature.PTZHome && featureNode.Checked)
            {
                if (!(_featureNodes[Feature.PTZConfigurableHome].Checked || _featureNodes[Feature.PTZFixedHome].Checked))
                {
                    _featureNodes[Feature.PTZConfigurableHome].Checked = true;
                }
            }
        }