示例#1
0
        private bool CheckISBN()
        {
            if (string.IsNullOrWhiteSpace(ISBN))
            {
                return(true);
            }

            var pure = ISBN.Replace("-", "");

            try
            {
                if (PublishYear >= 2007)
                {
                    if (pure.Length != Const.DigitsInISBN)
                    {
                        return(false);
                    }

                    var sum = 0;
                    for (var i = 1; i < 12; i = i + 2)
                    {
                        var first  = int.Parse(pure[i - 1].ToString());
                        var second = int.Parse(pure[i].ToString());
                        sum = sum + first + 3 * second;
                    }
                    var last     = int.Parse(pure[12].ToString());
                    var reminder = sum % 10;

                    return(10 - reminder == last);
                }
                else
                {
                    if (pure.Length != Const.DigitsInISBNBefore2007)
                    {
                        return(false);
                    }
                    var sum = 0;
                    for (var i = 0; i <= 9; i++)
                    {
                        sum = sum + int.Parse(pure[i].ToString()) * (10 - i);
                    }
                    return(sum % 11 == 0);
                }
            }
            catch
            {
                return(false);
            }
        }