You are on page 1of 2

Név:

Neptun kód: 2021.11.03.

Haladó fejlesztesi technikak


A teljes megoldást tömörítse be vezeteknev_keresztnev_neptunkod formátumban, majd az oktató által megadott
helyre töltse fel. A feladat megoldására 90 perc áll rendelkezésre.
A feladat során egyrétegű konzolos alkalmazást implementálunk. (Egy sima konzolos projektbe kerül minden.)
ADATBÁZIS KIALAKÍTÁSA (8,5 PONT)
a) Hozzon létre egy Service-based Database-t CustomerDb néven! (0,5 pont)
b) CodeFirst módszerrel hozza létre az előző pontban létrehozott adatbázisban a CaseCategory és Cases táblát
(3 pont)
a. CaseCategory oszlopai az alábbiak (Ügy típus):
i. Id (int) – elsődleges kulcs, adatbázis által növelt (auto increment) érték legyen;
ii. Name (string) – az ügy kategória neve. Legfeljebb 50 hosszú, kötelező mező;
iii. Description (string) – az ügy bővebb leírása, kötelező mező;
iv. IsPersonalOnly (bool) – csak személyes részvétellel lehet intézni;
b. Cases oszlopai az alábbiak (Konkrét ügyek):
i. Id (int) – elsődleges kulcs, adatbázis által növelt (auto increment) érték legyen;
ii. CustomerName (string) – Legfeljebb 50 hosszú, kötelező mező;
iii. Amount (int) – az ügyintézés ideje, kötelező mező;
iv. CaseCategoryId (int) – ügytípus azonosító, külsőkulcs.
c) Állítsa be a szükséges paramétereket az adatbázis kapcsolathoz, és a táblák között is definiálja a külsőkulcs-
függőségeket. Adjon lehetőséget a LazyLoad módszer alkalmazására. (4 pont)
d) Töltse fel teszt adatokkal a mellékelt segédlet alapján a táblákat, a félév során tanult alapértelmezett adatok
beviteli módjával! (1 pont)
XML FÁJL ADATAINAK ELÉRÉSE (5 PONT)
a) Készítsen el egy Administrator osztályt az alábbi írható olvasható nyilvános tulajdonságokkal: (0 pont)
Name (string) – ügyintéző neve
Capacity (int) – maximális terhelhetőség
b) Készítsen egy Office osztályt az alábbi írható olvasható nyilvános tulajdonságokkal: (0 pont)
Address (string) – az ügyfélkapu irodájának a címe
Capacity (int) – elvárt kapacitás, egy napra
Administrators (List<Administrator >) – bent dolgozó ügyintézők
c) Készítsen egy statikus metódust, mely képes az office.xml fájlból létrehozni, egy Office objektumot a benne
található Administrator objektumokkal együtt. (5 pont)
ATTRIBÚTUM KÉSZÍTÉSE (2 PONT)
a) Hozzon létre egy attribútumot UpperCaseDisplayAttribute néven! (1 pont)
b) Készítse el úgy az attribútumot, hogy a tulajdonságokon lehessen egyedül alkalmazni! (0,5 pont)
c) Helyezze el az Administrator és Office osztályok string tulajdonságain a UpperCaseDisplay attribútumot. (0,5
pont)
HANDLER OSZTÁLY (5 PONT)
a) Készítsen egy UpperCaseHandler osztályt, mely képes feldolgozni az UpperCaseDisplayAttribute-ot. (0 pont)
b) Ha az UpperCaseDisplayAttribute-ot: (5 pont)
a. string tulajdonságon alkalmazták, akkor nagybetűsen adjuk vissza a tulajdonság értéket
b. ha NEM string tulajdonságon alkalmazták, akkor InvalidOperationException-el kezeljük
c. ha NEM TALÁLTUNK ilyen attribútumot, akkor csak adjuk vissza a tulajdonság értékét
d. null paraméter esetén ArgumentNullException-el kezeljük le

Segítség: static object GetPropertyUpperCaseDisplay(object obj, string propertyName)


Név:
Neptun kód: 2021.11.03.

HANDLER OSZTÁLY UNIT TESZTJE (7 PONT)


a) Alakítson ki egy olyan különálló DLL-t, melyben unittesztelést hajthatunk végre a félév során tanultak alapján.
(2 pont)
b) Készítsen egy osztályt az UpperCaseHandler osztályhoz, melyben leteszteli a GetPropertyUpperCaseDisplay()
metódus működését:
a. olyan tulajdonságára, melyen található UpperCaseDisplay attribútum (2 pont)
i. normál eset
ii. kivétel kezelése
b. olyan osztály tulajdonságra, melyen nem található UpperCaseDisplay attribútum (1 pont)
c. null értékre, a bemeneti paramétereknél (2 pont)
i. első paramétere a függvénynek
ii. második paramétere a függvénynek

A KÉT FORRÁS ADATAI ALAPJÁN KÖVETKEZŐ FELADATOKAT (JELENÍTSE MEG AZ EREDMÉNYÜKET A


KONZOLON) (12,5 PONT)
a) Mennyi ügytípus van az adatbázisban? (1,5 pont)
b) Jelenítse meg a konzolon a személyesen végezhető ügytípusokat! (1,5 pont)
c) Rendezze a konkrét ügyeket ügyintézési idő szerint csökkenő sorrendben, amelyek személyesen intézhetőek!
(4 pont)
d) Számítsa ki, hogy egy ügytípusra mennyi időt fordítottak aznap, és ezt jelenítse meg! (3 pont)
e) Jelenítse meg a konzolon az iroda felépítését. (1 pont) A megjelenítés során alkalmazza az Administrator
tulajdonságain tárolt UpperCaseDisplay attribútumot! (2,5 pont)

Jó munkát kívánok!

You might also like