コード例 #1
0
        private static bool ValidateWebPage(Reference reference, ref ICollection<string> errors)
        {
            if (!reference.Title.Defined()) errors.Add("Title not defined");

            if (!reference.Url.Defined()) errors.Add("URL not defined");

            if (!reference.SiteVisited.Defined()) errors.Add("URL visiting time not defined");

            return errors.Count == 0;
        }
コード例 #2
0
        private static bool ValidateBook(Reference reference, ref ICollection<string> errors)
        {
            if (!reference.Title.Defined()) errors.Add("Title not defined");

            if (!reference.Publisher.Defined()) errors.Add("Publisher not defined");

            if (!reference.Year.Defined()) errors.Add("Year not defined");

            if (!reference.Pages.Defined() && !(reference.From.Defined() && reference.To.Defined()))
            {
                errors.Add("Pages number (or interval) not defined");
            }

            return errors.Count == 0;
        }
コード例 #3
0
        private static bool ValidateArticle(Reference reference, ref ICollection<string> errors)
        {
            if (!reference.Title.Defined()) errors.Add("Title not defined");

            if (!reference.Source.Defined()) errors.Add("Magazine name not defined");

            if (!reference.Year.Defined()) errors.Add("Year not defined");

            if (!reference.Issue.Defined()) errors.Add("Issue not defined");

            if (!reference.Pages.Defined() && !(reference.From.Defined() && reference.To.Defined()))
            {
                errors.Add("Pages number (or interval) not defined");
            }

            return errors.Count == 0;
        }
コード例 #4
0
        /// <summary>
        /// Метод, который проверяет достаточность данных в объекте Reference для того или иного
        /// типа библиографической ссылки.
        /// </summary>
        /// <returns>
        /// Возвращает true или false, в зависимости от валидности проверяемого объекта. В последнем 
        /// случае список найденных ошибок сохраняется в коллекции validationErrors.
        /// </returns>
        public static bool Validate(Reference reference, out ICollection<string> validationErrors)
        {
            validationErrors = new List<string>();

            switch (reference.Type)
            {
                case ReferenceType.Book:
                    return ValidateBook(reference, ref validationErrors);

                case ReferenceType.Article:
                    return ValidateArticle(reference, ref validationErrors);

                case ReferenceType.WebPage:
                    return ValidateWebPage(reference, ref validationErrors);

                case ReferenceType.WebSite:
                    return ValidateWebSite(reference, ref validationErrors);

                default:
                    validationErrors.Add("Type not defined or has incorrect value");
                    return false;
            }
        }