using System; using System.Linq; using System.Collections.Generic; using BFR.Helpers; using BFR.Operations.Attributes; namespace BFR.Operations { public class ReplaceOperationMode : OperationMode { public bool IsPattern => Index == ReplaceMode.Pattern; public bool IsCharacters => Index == ReplaceMode.Characters; public bool IsFromNToN => Index == ReplaceMode.FromNToN; public bool IsFirstN => Index == ReplaceMode.FirstN; public bool IsLastN => Index == ReplaceMode.LastN; public readonly static ReplaceOperationMode[] Modes = All(); protected ReplaceOperationMode(ReplaceMode index, string name, string description) : base(index, name, description) { } protected static ReplaceOperationMode[] All() => ((IEnumerable)Enum.GetValues(typeof(ReplaceMode))).Select(x => new ReplaceOperationMode( x, x.GetAttribute().DisplayName, x.GetAttribute().Description )).ToArray(); } public enum ReplaceMode { [DisplayName(nameof(Pattern)), Description("Replaces the specified pattern.")] Pattern, [DisplayName(nameof(Characters)), Description("Replaces each of the specified characters.")] Characters, [DisplayName("From N to N"), Description("Replaces everything in the specified range (zero-based indeces).")] FromNToN, [DisplayName("First N"), Description("Replaces the first N characters.")] FirstN, [DisplayName("Last N"), Description("Replaces the last N characters.")] LastN, } }