using PARR.BLL.Services.Interfaces;
using System.Text.RegularExpressions;

namespace PARR.BLL.Services.Implementations
{
    internal class TemplateMaskValidator : ITemplateMaskValidator
    {
        public bool IsValid(string mask)
        {
            if (!mask.Contains("ПАРР"))
                return false;

            var shortcodePattern = "%[^%\\s]+%";
            var shortcodesInMask = Regex.Matches(mask, shortcodePattern).ToList();

            if (shortcodesInMask.Count() == 0)
                return false;

            var validShortcodes = GetShortcodesNames();

            foreach (var shortcode in shortcodesInMask)
            {
                if (!validShortcodes.Contains(shortcode.ToString().ToUpper()))
                    return false;
            }

            return true;
        }

        private List<string> GetShortcodesNames()//TODO Ну ты опять этот метод дублируешь?! 
        {
            var result = new List<string> {
                "%ЭК%",
                "%ЗО%",
                "%РАБОТА%"
            };

            return result;
        }
    }
}
