/// <inheritdoc />
        public override bool Execute()
        {
            foreach (var r in Required)
            {
                if (Omitted.Any(x => x.ToString().Equals(r.ToString(), StringComparison.OrdinalIgnoreCase)))
                {
                    Log.LogMessage(MessageImportance.Low, $"Required reference '{r}' is set to omit.");
                    continue;
                }

                Log.LogMessage(MessageImportance.Low, $"Checking required reference: {r}");
                if (References.Any(x => x.ToString().Equals(r.ToString(), StringComparison.OrdinalIgnoreCase)))
                {
                    // found.
                    continue;
                }

                Log.LogWarning(
                    null,
                    "CCG0005",
                    string.Empty, // TODO: Can we get HelpLink like in roslyn analysers?
                    ProjectFile ?? string.Empty,
                    0,
                    0,
                    0,
                    0,
                    $"No reference to '{r}' found. Usage of '{r}' is strongly recommended");
            }

            return(true);
        }
        /// <summary>
        ///     Create a deep clone for this object.
        /// </summary>
        /// <returns>A clone of this object.</returns>
        public PagerItemOptionsSet Clone()
        {
            var result = (PagerItemOptionsSet)MemberwiseClone();

            result.Default            = Default.Clone();
            result.Current            = Current.Clone();
            result.Normal             = Normal.Clone();
            result.Omitted            = Omitted.Clone();
            result.FirstPageButton    = FirstPageButton.Clone();
            result.LastPageButton     = LastPageButton.Clone();
            result.PreviousPageButton = PreviousPageButton.Clone();
            result.NextPageButton     = NextPageButton.Clone();

            return(result);
        }