using System.Text.RegularExpressions;
using System.Threading.Tasks;

namespace Kean.Infrastructure.Configuration
{
    /// <summary>
    /// 条码验证器
    /// </summary>
    public sealed class BarcodeValidator
    {
        /// <summary>
        /// 验证条码是否合法
        /// </summary>
        /// <param name="barcode">条码内容</param>
        /// <returns>如果合法,为 True;否则为 False</returns>
        public Task<bool> Validate(string barcode)
        {
            //return Task.FromResult(barcode != null && 
            //    (barcode.StartsWith("#@") || Regex.IsMatch(barcode, "^[AB][0-9]{5}$")));

            //return Task.FromResult(barcode != null &&
            //    Regex.IsMatch(barcode, "^T[CA][0-9]{3}-[0-9]{6}$"));

            //return Task.FromResult(barcode != null &&
            //    Regex.IsMatch(barcode, "^M[2-3][A|C][0-9]{4}$"));

            string pattern = @"^LC[A|B|C|D|E|F|G](\d{4}|\d{17})$";
            Regex regex = new Regex(pattern);

            return Task.FromResult(barcode != null &&
                regex.IsMatch(barcode));
        }
    }
}