public void AddColorPalettes(IEnumerable <CodedPalette> newPalettes, bool replace = false) { Debug.Assert(newPalettes != null, "New palettes collection should not be null."); if (replace) { AvailablePalettes = null; } if (AvailablePalettes == null) { AvailablePalettes = newPalettes.ToList(); } else { foreach (var newPalette in newPalettes) { if (!AvailablePalettes.Any(palette => palette.Name.Equals(newPalette.Name, StringComparison.OrdinalIgnoreCase))) { AvailablePalettes.Add(newPalette); } } } if (SelectedPalette == null || replace) { var defaultPalette = (SelectedPalette != null ? AvailablePalettes.FirstOrDefault(p => p.Name.Equals(SelectedPalette.Name, StringComparison.OrdinalIgnoreCase)) : null) ?? AvailablePalettes.FirstOrDefault(); selectedPalette = null; if (defaultPalette != null) { PaletteName = defaultPalette.Name; } } }
public ImageColorsController(ImageColorsManipulator manipulator, IEnumerable <CodedPalette> availablePalettes = null, CodedPalette selectedPalette = null) : base(manipulator) { Debug.Assert(selectedPalette == null || availablePalettes != null && availablePalettes.Contains(selectedPalette), "selectedPalette should be included into availablePalettes collection."); using (SuspendCallManipulations()) { AvailablePalettes = availablePalettes?.ToList(); SelectedPalette = selectedPalette ?? AvailablePalettes?.FirstOrDefault(); RestoreDefaults(); CallManipulations(); } }