Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Результати виконання практичних завдань. Завдання 1. Реалізація граничних операторів для перевірки цілісності даних сховища
Завдання 1. Реалізація граничних операторів для перевірки цілісності даних сховища.
using Entities.Extensions; using System; using System.Linq; using WorldDivision.Domain;
namespace WorldDivision.Data {
// Методи перевірки цілісності даних в контексті сховища partial class WorldRepository {
/// <summary> /// Вказує, чи є відсутнім у сховищі даних /// об'єкт статистичної класифікації ООН /// із заданим значенням цифрового коду /// </summary> /// <param name="value">значення, що перевіряється</param> /// <param name="message">повідомлення про помилку</param> /// <returns></returns> public bool CheckAbsenceNumericCode(string value, ref string message) { if(String.IsNullOrWhiteSpace(value)){ return true; } value = value.Trim(); string messageBeginning = "Помилка визначення " + "цифрового коду для об'єкта " + "статистичної класифікації ООН: "; //bool valid =!dataContext.UNDivisionObjects //.Any(e => e.NumericCode == value); UNDivisionObject divisionObject = UNDivisionObjectByNumeric(value); bool valid = divisionObject == null; if (!valid) { message = message == ""? messageBeginning : message + "," + " значення цифрового коду " + value + " вже раніше визначено для об'єкта " + divisionObject.Name; } return valid; }
/// <summary> /// Вказує, чи є відсутньою у сховищі даних /// країна чи територія /// із заданим значенням двохлітерного коду /// </summary> /// <param name="value">значення, що перевіряється</param> /// <param name="message">повідомлення про помилку</param> /// <returns></returns> public bool CheckAbsenceAlpha2Code(string value, ref string message) { if(String.IsNullOrWhiteSpace(value)){ return true; } value = value.Trim(); string messageBeginning = "Помилка визначення " + "двохлітерного коду для країни чи території "; Country country = CountriesArray .Where(e => e.Alpha2Code == value) .FirstOrDefault(); bool valid = country == null; if (!valid) { message = message == ""? messageBeginning : message + "," + " значення двохлітерного коду " + value + " вже раніше визначено для країни " + country.Name; } return valid; }
private bool CheckMacroregionForAdding(Macroregion macroregion) { // перевірка на null CheckArgumentOnNull(macroregion, "AddMacroregion", "додання макрогеографічного регіону"); // перевірка на повторне включення if (dataContext.Macroregions.Contains(macroregion)) { return false; } // перевірка на збереження унікальності атрибутів string message = ""; if (!dataContext.Macroregions.CheckAbsenceName( macroregion.Name, ref message, "у сховищі вже зберігається " + "макрогеографічний регіон з назвою") ||!CheckAbsenceNumericCode( macroregion.NumericCode, ref message)) { throw new InvalidOperationException( message); } return true; }
private bool CheckCountryForAdding(Country country) { // перевірка на null CheckArgumentOnNull(country, "AddCountry", "додання країни чи території"); // перевірка на повторне включення if (dataContext.Countries.Contains(country)) { return false; } // перевірка на збереження унікальності атрибутів string message = ""; if (!dataContext.Macroregions.CheckAbsenceName( country.Name, ref message, "у сховищі вже зберігається країна з назвою") ||!CheckAbsenceNumericCode( country.NumericCode, ref message) ||!CheckAbsenceAlpha2Code( country.NumericCode, ref message)) { throw new InvalidOperationException( message); } return true; }
private bool CheckOrganizationForAdding( Organization organization) { // перевірка на null CheckArgumentOnNull(organization, "AddOrganization", "додання міжнародної організації"); // перевірка на повторне включення if (dataContext.Organizations.Contains( organization)) { return false; } // перевірка на збереження унікальності атрибутів string message = ""; if (!dataContext.Macroregions.CheckAbsenceName( organization.Name, ref message, "у сховищі вже зберігається " + "міжнародна організація з назвою") ||!CheckAbsenceNumericCode( organization.NumericCode, ref message)) { throw new InvalidOperationException( message); } return true; }
private bool CheckMembershipStatusForAdding( MembershipStatus membershipStatus) { // перевірка на null CheckArgumentOnNull(membershipStatus, "AddMembershipStatus", "додання " + "статусу члена міжнародної організації"); // перевірка на повторне включення if (dataContext.MembershipStatuses.Contains( membershipStatus)) { return false; } // перевірка на збереження унікальності атрибутів string message = ""; if (!dataContext.Macroregions.CheckAbsenceName( membershipStatus.Name, ref message, "у сховищі вже зберігається статус члена " + "міжнародної організації з назвою")) { throw new InvalidOperationException( message); } return true; }
private bool CheckMembershipForAdding( Membership membership) { // перевірка на null CheckArgumentOnNull(membership, "AddMembership", "додання даних про " + "членство країни у міжнародній організації"); // перевірка на повторне включення if (dataContext.Memberships.Contains( membership)) { return false; } // перевірка на збереження унікальності атрибутів Membership oldMembership = MembershipByNames( membership.Organization.Name, membership.Country.Name); if (oldMembership!= null && membership.AccessionDate == oldMembership.AccessionDate) { throw new InvalidOperationException( "у сховищі вже зберігається об'єкт, що " + "представляє членство країни " + membership.Country.Name + " у міжнародній організації " + membership.Organization.Name + " з датою вступу " + membership.AccessionDate.ToString()); } return true; }
private bool CheckUNDivisionObjectForAdding( UNDivisionObject divisionObject) { // перевірка на null CheckArgumentOnNull(divisionObject, "AddUNDivisionObject", "додання об'єкту " + "статистичної класифікації ООН"); // перевірка на повторне включення if (dataContext.UNDivisionObjects.Contains( divisionObject)) { } // перевірка на збереження унікальності атрибутів string message = ""; if (!CheckAbsenceNumericCode( divisionObject.NumericCode, ref message)) { throw new InvalidOperationException( message); } return true; }
private bool CheckMacroregionForRemoving(Macroregion macroregion) { // перевірка на null CheckArgumentOnNull(macroregion, "RemoveMacroregion", "видалення макрогеографічного регіону"); return true; }
private bool CheckCountryForRemoving(Country country) { // перевірка на null CheckArgumentOnNull(country, "RemoveCountry", "видалення країни чи території"); return true; }
private bool CheckOrganizationForRemoving( Organization organization) { // перевірка на null CheckArgumentOnNull(organization, "RemoveOrganization", "видалення міжнародної організації"); // перевірка на використання іншими сутностями // перевірка на використання іншими сховищами return true; }
private bool CheckMembershipStatusForRemoving( MembershipStatus membershipStatus) { // перевірка на null CheckArgumentOnNull(membershipStatus, "RemoveMembershipStatus", "видалення статусу члена " + "міжнародної організації"); // перевірка на використання іншими сутностями // перевірка на використання іншими сховищами return true; }
private bool CheckMembershipForRemoving( Membership membership) { // перевірка на null CheckArgumentOnNull(membership, "RemoveMembership", "видалення даних про членство країни " + "у міжнародній організації"); // перевірка на використання іншими сховищами return true; }
private bool CheckUNDivisionObjectForRemoving( UNDivisionObject divisionObject) { // перевірка на null CheckArgumentOnNull(divisionObject, "RemoveUNDivisionObject", "видалення даних " + "про об'єкт статистичної класифікації ООН"); // перевірка на використання іншими сховищами return true; } } }
Завдання 2. Створення проекту модульних тестів для тестування класів сховища даних.
Date: 2015-09-02; view: 358; Нарушение авторских прав |