示例#1
0
        public void Monitor(ICollectionView view, IEnumerable <Entry> entries)
        {
            foreach (var filter in AllFilters)
            {
                filter.PropertyChanged += (o, e) =>
                {
                    view.Refresh();
                    OnPropertyChanged(nameof(EngineerFilters));
                    OnPropertyChanged(nameof(GradeFilters));
                    OnPropertyChanged(nameof(TypeFilters));
                    OnPropertyChanged(nameof(CraftableFilters));
                    OnPropertyChanged(nameof(IgnoredFavoriteFilters));
                };
            }

            foreach (var item in entries)
            {
                item.PropertyChanged += (o, e) => Application.Current.Dispatcher.Invoke(view.Refresh);
            }

            view.Filter = o =>
            {
                var blueprint = (Blueprint)o;

                var ret = GradeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          EngineerFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          TypeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          IgnoredFavoriteFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          CraftableFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint));

                return(ret);
            };
        }
示例#2
0
        public void SaveSettings()
        {
            var settings = MainViewModel.Default.AppSettings;

            settings.MoviesSettings.StateFilters    = StateFilters.Select(p => p.Value.ToModel()).ToList();
            settings.MoviesSettings.TypeFilters     = TypeFilters.Select(p => p.Value.ToModel()).ToList();
            settings.MoviesSettings.SelectedMovieID = SelectedItem?.ID ?? 0;
            //settings.SaveAppSettings();
        }
        /// <summary>
        /// Registers all controller types from the given assemblies.
        /// </summary>
        /// <param name="map">The target dependency map.</param>
        /// <param name="assemblies">The list of assemblies that contain the controller types being registered.</param>
        public static void RegisterAllControllersFrom(this DependencyMap map, IEnumerable <Assembly> assemblies)
        {
            Action <DependencyMap, Type> registerTypeAction = (dependencyMap, controllerType) =>
            {
                var typeName = controllerType.Name;
                dependencyMap.AddService(typeName, typeof(IController), controllerType);
            };

            map.AddServicesFrom(assemblies, TypeFilters.IsDerivedFrom <IController>(), registerTypeAction);
        }
示例#4
0
        public void Monitor(CollectionViewSource source, IEnumerable <Entry> entries)
        {
            foreach (var filter in AllFilters.Concat(IngredientFilters))
            {
                filter.PropertyChanged += (o, e) =>
                {
                    source.View.Refresh();
                    OnPropertyChanged(nameof(EngineerFilters));
                    OnPropertyChanged(nameof(GradeFilters));
                    OnPropertyChanged(nameof(TypeFilters));
                    OnPropertyChanged(nameof(CraftableFilters));
                    OnPropertyChanged(nameof(IgnoredFavoriteFilters));
                };
            }

            foreach (var item in entries)
            {
                item.PropertyChanged += (o, e) =>
                {
                    var extended = e as PropertyChangedExtendedEventArgs <int>;

                    if (e.PropertyName == "Count" || extended?.OldValue * extended?.NewValue == 0)
                    {
                        Application.Current.Dispatcher.Invoke(source.View.Refresh);
                    }
                };
            }

            foreach (var blueprint in (IEnumerable <Blueprint>)source.Source)
            {
                blueprint.PropertyChanged += (o, e) =>
                {
                    if (e.PropertyName == "Favorite" || e.PropertyName == "Ignored")
                    {
                        source.View.Refresh();
                    }
                };
            }

            source.Filter += (o, e) =>
            {
                var blueprint                = (Blueprint)e.Item;
                var checkedIngredients       = IngredientFilters.Where(f => f.Checked).ToList();
                var satisfyIngredientFilters = !checkedIngredients.Any() || checkedIngredients.Any(i => blueprint.Ingredients.Any(b => b.Entry == i.Entry));

                var ret = satisfyIngredientFilters &&
                          GradeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          EngineerFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          TypeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          IgnoredFavoriteFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          CraftableFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint));

                e.Accepted = ret;
            };
        }
示例#5
0
 public bool?Filter(Type t)
 {
     if (t.Parent.Name == Namespace)
     {
         if (TypeFilters.ContainsKey(t.Name))
         {
             return(TypeFilters[t.Name]);
         }
         return(DefaultValue);
     }
     return(null);
 }
示例#6
0
 public IEnumerable <Type> GetTypes(Func <Type, bool> where)
 {
     return(GetAssemblies().SelectMany(
                a =>
     {
         try
         {
             return a.GetTypes().Where(t => where (t) && TypeFilters.All(func => func(t)));
         }
         catch { return new Type[0]; }
     }));
 }
示例#7
0
        private void InsertMagicFilters()
        {
            var magicTypeFilters = new TypeFilter("TFmagic")
            {
                Checked = true,
                Magic   = true
            };

            TypeFilters.Insert(0, magicTypeFilters);

            var magicEngineerFilters = new EngineerFilter("EFmagic")
            {
                Checked = true,
                Magic   = true
            };

            EngineerFilters.Insert(0, magicEngineerFilters);

            var magicGradeFilter = new GradeFilter("GFmagic")
            {
                Checked = true,
                Magic   = true
            };

            GradeFilters.Insert(0, magicGradeFilter);

            magicGradeFilter.PropertyChanged += (o, e) =>
            {
                foreach (var filter in GradeFilters)
                {
                    filter.Checked = magicGradeFilter.Checked;
                }
            };

            magicEngineerFilters.PropertyChanged += (o, e) =>
            {
                foreach (var filter in EngineerFilters)
                {
                    filter.Checked = magicEngineerFilters.Checked;
                }
            };

            magicTypeFilters.PropertyChanged += (o, e) =>
            {
                foreach (var filter in TypeFilters)
                {
                    filter.Checked = magicTypeFilters.Checked;
                }
            };
        }
示例#8
0
 public IEnumerable <Type> GetTypes(Func <Type, bool> where)
 {
     return(GetAssemblies().SelectMany(
                a =>
     {
         try
         {
             return a.GetTypes().Where(t => where (t) && TypeFilters.All(func => func(t)));
         }
         catch (Exception exception)
         {
             var msg = string.Format("Loading assembly {0} failed: \n{1}", a.FullName, exception);
             Trace.TraceWarning(msg);
             Debugger.Log((int)TraceLevel.Warning, "AppDomainHelper", msg);
             return new Type[0];
         }
     }));
 }
示例#9
0
        private void GetTypeFilters()
        {
            var types  = (EncounterOrder[])Enum.GetValues(typeof(EncounterOrder));
            var checks = types.Select(z => new CheckBox
            {
                Name     = z.ToString(),
                Text     = z.ToString(),
                AutoSize = true,
                Checked  = true,
                Padding  = Padding.Empty,
                Margin   = Padding.Empty,
            }).ToArray();

            foreach (var chk in checks)
            {
                TypeFilters.Controls.Add(chk);
                TypeFilters.SetFlowBreak(chk, true);
            }
        }
示例#10
0
        public TestRunState RunMember(ITestListener testListener, Assembly assembly, MemberInfo member)
        {
            Type type = member as Type;

            if (type != null)
            {
                TypeFixtureFilter filter     = new TypeFixtureFilter(type.FullName);
                TypeFilterBase    typeFilter = TypeFilters.Type(type.FullName);
                return(Run(testListener, assembly, filter, new AnyRunPipeFilter(), typeFilter));
            }
            else
            {
                TypeFixtureFilter           filter        = new TypeFixtureFilter(member.DeclaringType.FullName);
                TypeFilterBase              typeFilter    = TypeFilters.Type(member.DeclaringType.FullName);
                ContainsMemberRunPipeFilter runPipeFilter = new ContainsMemberRunPipeFilter(member);

                return(Run(testListener, assembly, filter, runPipeFilter, typeFilter));
            }
        }
示例#11
0
        private void InsertMagicFilters()
        {
            var magicTypeFilters = TypeFilter.MagicFilter;

            TypeFilters.Insert(0, magicTypeFilters);

            var magicEngineerFilters = EngineerFilter.MagicFilter;

            EngineerFilters.Insert(0, magicEngineerFilters);

            var magicGradeFilter = GradeFilter.MagicFilter;

            GradeFilters.Insert(0, magicGradeFilter);

            magicGradeFilter.PropertyChanged += (o, e) =>
            {
                foreach (var filter in GradeFilters)
                {
                    filter.Checked = magicGradeFilter.Checked;
                }
            };

            magicEngineerFilters.PropertyChanged += (o, e) =>
            {
                foreach (var filter in EngineerFilters)
                {
                    filter.Checked = magicEngineerFilters.Checked;
                }
            };

            magicTypeFilters.PropertyChanged += (o, e) =>
            {
                foreach (var filter in TypeFilters)
                {
                    filter.Checked = magicTypeFilters.Checked;
                }
            };
        }
示例#12
0
        public void Monitor(CollectionViewSource source, IEnumerable <Entry> entries, ObservableCollection <Entry> highlightedEntryData)
        {
            PropertyChanged += (o, e) =>
            {
                if (e.PropertyName == nameof(SearchText))
                {
                    source.View.Refresh();
                }
            };

            foreach (var filter in AllFilters)
            {
                filter.PropertyChanged += (o, e) =>
                {
                    source.View.Refresh();
                    OnPropertyChanged(nameof(EngineerFilters));
                    OnPropertyChanged(nameof(GradeFilters));
                    OnPropertyChanged(nameof(TypeFilters));
                    OnPropertyChanged(nameof(CraftableFilters));
                    OnPropertyChanged(nameof(IgnoredFavoriteFilters));
                };
            }

            highlightedEntryData.CollectionChanged += (o, e) =>
            {
                source.View.Refresh();
            };

            foreach (var item in entries)
            {
                item.PropertyChanged += (o, e) =>
                {
                    var extended = e as PropertyChangedExtendedEventArgs <int>;

                    if (e.PropertyName == "Count" || extended?.OldValue * extended?.NewValue == 0)
                    {
                        Application.Current.Dispatcher.Invoke(source.View.Refresh);
                    }
                };
            }

            foreach (var blueprint in (IEnumerable <Blueprint>)source.Source)
            {
                blueprint.PropertyChanged += (o, e) =>
                {
                    if (e.PropertyName == "Favorite" || e.PropertyName == "Ignored")
                    {
                        source.View.Refresh();
                    }
                };
            }

            source.Filter += (o, e) =>
            {
                var blueprint = (Blueprint)e.Item;

                var satisfySearchText = string.IsNullOrWhiteSpace(trimmedSearchText) ||
                                        trimmedSearchText.Split(' ').All(t =>
                                                                         blueprint.SearchableContent.IndexOf(t.Trim(),
                                                                                                             StringComparison.Ordinal) >= 0);

                var satisfyHighlightedFilters = !highlightedEntryData.Any() ||
                                                highlightedEntryData.Intersect(
                    blueprint.Ingredients.Select(i => i.Entry)).Any();

                var ret = satisfySearchText &&
                          satisfyHighlightedFilters &&
                          GradeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          EngineerFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          TypeFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          IgnoredFavoriteFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint)) &&
                          CraftableFilters.Where(f => f.Checked).Any(f => f.AppliesTo(blueprint));

                e.Accepted = ret;
            };
        }