示例#1
0
        private bool BlockIsColorReplacementCandidate(ReplaceColorsParameterSet replaceColorsParameterSet, ItemFilterBlock block)
        {
            var textColorItem = block.HasBlockItemOfType <TextColorBlockItem>()
                ? block.BlockItems.OfType <TextColorBlockItem>().First()
                : null;
            var backgroundColorItem = block.HasBlockItemOfType <BackgroundColorBlockItem>()
                ? block.BlockItems.OfType <BackgroundColorBlockItem>().First()
                : null;
            var borderColorItem = block.HasBlockItemOfType <BorderColorBlockItem>()
                ? block.BlockItems.OfType <BorderColorBlockItem>().First()
                : null;

            // If we don't have all of the things we want to replace, then we aren't a candidate for replacing those things.
            if ((textColorItem == null && replaceColorsParameterSet.ReplaceTextColor) ||
                (backgroundColorItem == null && replaceColorsParameterSet.ReplaceBackgroundColor) ||
                (borderColorItem == null && replaceColorsParameterSet.ReplaceBorderColor))
            {
                return(false);
            }

            if ((replaceColorsParameterSet.ReplaceTextColor &&
                 textColorItem.Color != replaceColorsParameterSet.OldTextColor) ||
                (replaceColorsParameterSet.ReplaceBackgroundColor &&
                 backgroundColorItem.Color != replaceColorsParameterSet.OldBackgroundColor) ||
                (replaceColorsParameterSet.ReplaceBorderColor &&
                 borderColorItem.Color != replaceColorsParameterSet.OldBorderColor))
            {
                return(false);
            }

            return(true);
        }
示例#2
0
 public void ReplaceColors(ReplaceColorsParameterSet replaceColorsParameterSet)
 {
     foreach (
         var block in
         ItemFilterBlocks.Where(b => BlockIsColorReplacementCandidate(replaceColorsParameterSet, b)))
     {
         if (replaceColorsParameterSet.ReplaceTextColor)
         {
             var textColorBlockItem = block.BlockItems.OfType <TextColorBlockItem>().First();
             textColorBlockItem.Color = replaceColorsParameterSet.NewTextColor;
         }
         if (replaceColorsParameterSet.ReplaceBackgroundColor)
         {
             var backgroundColorBlockItem = block.BlockItems.OfType <BackgroundColorBlockItem>().First();
             backgroundColorBlockItem.Color = replaceColorsParameterSet.NewBackgroundColor;
         }
         if (replaceColorsParameterSet.ReplaceBorderColor)
         {
             var borderColorBlockItem = block.BlockItems.OfType <BorderColorBlockItem>().First();
             borderColorBlockItem.Color = replaceColorsParameterSet.NewBorderColor;
         }
     }
 }