Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 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: 322; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию