/// <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); } }
/// <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(); }
/// <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; } } }
/// <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(); }
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), }; } }
/// <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; } } }