ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΡ
ListDate; ΡΡΠ½ΠΊΡΠΈΡ, Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄Π°ΡΡ Π΄Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ Dictionary, ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°: Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΠΠ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠ°ΠΊ… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΡ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΡΠ° ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΡ
1. ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΠ°ΡΡΡ
ΠΡΠΈ Π°Π½Π°Π»ΠΈΠ·Π΅ Π±ΡΠ΄Π΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠΎΠΉ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
Π ΠΈΡ. 1. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΠ Π ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΡ ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ Π²ΡΠ°ΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Π²Π½ΠΎΡΠΈΡ Π² ΠΠ Π²ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ Π½Π΅ΠΌ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ: Π€.Π.Π. Π²ΡΠ°ΡΠ°, Π΅Π³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ, Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ°, ΠΈ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΠΌ ΠΊ Π²Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ° Doctor, ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΡΡΠ΅Π³ΠΎ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ.
Π’Π°ΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΠΊ Π€.Π.Π., ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΈ Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° ΠΊΠ»Π°ΡΡΠ° Doctor ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠΌΠΈΡΠΈΠ²Π½ΡΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.NET Framework.
ΠΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠ°ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠΌΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΎΠΊΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°Π²Π½ΡΠΌ ΠΎΠ΄Π½ΠΎΠΉ Π½Π΅Π΄Π΅Π»Π΅.
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ:
Β· Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π±Π»Π°Π½ΠΊΠ° ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°
Β· ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»Π°Π½ΠΊΠ° ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ Π½Π΅Π΄Π΅Π»Ρ
Β· ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ΅ Π² ΠΆΡΡΠ½Π°Π» ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ°ΡΠ°
Β· ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΎ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ΅ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠ±ΡΠ°Π½Π½ΠΎΠ³ΠΎ Π²ΡΠ°ΡΠ° ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° Π΄Π²Π° ΠΏΠΎΠ΄ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° — ΠΊΠ»Π°ΡΡ DayShedule, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΡΡΠΈΠΉ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΈΠ΅ΠΌΠ° Π½Π° ΠΎΠ΄ΠΈΠ½ Π΄Π΅Π½Ρ, ΠΈ ΠΊΠ»Π°ΡΡ Timetable, Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ DayShedule ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ Π½Π΅Π΄Π΅Π»ΡΠ½ΡΠΉ (ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ ΡΡΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠΌ ΠΌΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ»ΠΈΡΡ) Π³ΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ Π΄ΠΎΠΊΡΠΎΡΠ°.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°ΡΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΡΡΡΠΊΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΡΠ΄ΠΎΠ±Π½ΡΠΌ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ ΠΈ ΠΈΡ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠΎΠ². Π’Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ΄ΠΎΠ±Π½ΡΡ ΡΠΎΡΠΌΡ Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠ°ΠΌΠΈΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°Ρ ΠΈ ΠΈΡ ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π±ΠΎΡΡ.
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π±ΡΠ΄Π΅ΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠΎΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ:
Π ΠΈΡ. 2. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ Π±ΡΠ΄ΡΡΠ΅ΠΉ ΠΠ Π Π ΡΠ°Π·Π²Π΅ΡΠ½ΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ ΡΡΠ° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½Π° ΡΠΈΡ. 5.
ΠΠΎ ΠΈΡΠΎΠ³Π°ΠΌ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΠΌΠ΅Π΅ΠΌ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΠ±ΡΠ΅ΠΉ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΅Π΅ Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅.
Π ΡΠ΅Π»ΠΎΠΌ, ΡΡΡΡΠΊΡΡΡΡ ΠΠ Π ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π‘Π£ΠΠ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΠΌΡΡ Π½Π° Π²ΡΠ±ΠΎΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Binding Source ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈ .NET Framework, Ρ. ΠΊ. ΠΎΠ½ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΡ Π² ΠΠ ΡΡΡΠ½ΠΎΡΡΠ΅ΠΉ.
Π ΠΈΡ. 3. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈ Π·Π°Π΄Π°Ρ, Π±ΡΠ»Π° ΡΠΎΡΡΠ°Π²Π»Π΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ²:
Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π±ΡΠ΄ΡΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ:
Π ΠΈΡ. 3. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ² Π ΠΈΡ. 4. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ ΠΈ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΏΡΠ΅ΡΠ΅Π΄Π΅Π½ΡΠΎΠ², Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΠΎΠ»ΠΈΠΊΠ»ΠΈΠ½ΠΈΠΊΠΈ, Π° ΠΊΠ»ΠΈΠ΅Π½Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΠΠ Π ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² Π±ΠΎΠ»ΡΠ½ΠΈΡΡ.
Π ΠΈΡ. 5. Π Π°Π·Π²Π΅ΡΠ½ΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΠ° ΡΡΠ°ΠΏΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΡΠ»ΠΎ Π²ΡΡΠ²Π»Π΅Π½ΠΎ ΡΡΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΊΠΎΡΠΎΡΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π°Ρ. Π’Π΅ΠΏΠ΅ΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°.
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Doctor:
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°:
Π ΠΈΡ. 5. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΠΉ ΠΊΠ»Π°ΡΡΠ° Doctor
ΠΠ° ΡΡΠ°ΠΏΠ΅ Π°Π½Π°Π»ΠΈΠ·Π° Π±ΡΠ»ΠΈ Π²ΡΡΠ²Π»Π΅Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΠΏΠΈΡΠ΅ΠΌ ΠΈΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ:
Β· + BirthDate: DateTime; Π΄Π°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ
Β· + CabinetNumber: Int; Π½ΠΎΠΌΠ΅Ρ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ°
Β· + Name: String; Π€.Π.Π.
Β· + Specialization: String; ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ
Β· + Timetable: Timetable; Π³ΡΠ°ΡΠΈΠΊ ΠΏΡΠΈΠ΅ΠΌΠ° ΠΠ°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ Π°ΠΊΡΠ΅ΡΡΠΎΡ (get) ΠΈ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ ΠΌΡΡΠ°ΡΠΎΡ (set) Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΊ Π½Π΅ΠΌΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π½Π° ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ.
ΠΡΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π΄Π°Π½Π½ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΌΠ΅Π½Ρ Π²Π½Π΅ΡΠ΅Π½Π½ΡΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΡΠΎ Π½Π°ΡΠ°Π»ΠΊΠΈΠ²Π°Π΅Ρ Π½Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° ICloneable, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ΅Π³ΠΎ ΠΊΠΎΠΏΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΊΠ»Π°ΡΡΠ°. Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ Π² ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅ΡΠΎΠ΄:
Β· + Clone (); ΠΌΠ΅ΡΠΎΠ΄, Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠΉ ΠΊΠΎΠΏΠΈΡ Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ Π°Π³ΡΠ΅Π³ΠΈΡΡΡΡΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ BindingSource, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° Doctor Ρ ΠΏΠΎΠ»ΡΠΌΠΈ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π΄Π°Π½ΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
Β· + Doctor ()
ΠΠ»Π°ΡΡ Doctor ΡΠ²ΡΠ·Π°Π½ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ Timetable ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΠ΅ΠΉ.
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ° Doctor ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ°Ρ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ:
Π ΠΈΡ. 6. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠ° Doctor
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° DayShedule:
ΠΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ:
Π ΠΈΡ. 7. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ DayShedule
ΠΠ»Π°ΡΡ DayShedule, ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΡΡΠΈΠΉ Π³ΡΠ°ΡΠΈΠΊ ΠΏΡΠΈΠ΅ΠΌΠ° Π΄ΠΎΠΊΡΠΎΡΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ Π΄Π΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ, ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π½Π΅ΠΌ Π΄Π°Π½Π½ΡΠ΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ «ΠΊΠ»ΡΡ — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅» (Π³Π΄Π΅ ΠΊΠ»ΡΡ — Π²ΡΠ΅ΠΌΡ ΠΏΡΠΈΠ΅ΠΌΠ°, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠ΅ ΠΏΠ°ΡΠΈΠ΅Π½ΡΡ, Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ — Π€.Π.Π. ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°) ΡΠ΄ΠΎΠ±Π½ΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Dictionary<TimeSpan, string> Π²Ρ ΠΎΠ΄ΡΡΠ΅Π³ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΠΏΠΎΡΡΠ°Π²ΠΊΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.NET Framework.
ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°:
Β· + Date: DateTime; ΠΠ°ΡΠ°, ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ
Β· + DayOfWeek: DayOfWeek; ΠΠ΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π³ΡΠ°ΡΠΈΠΊ
Β· + Duration: TimeSpan; ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ
Β· + EndTime: TimeSpan; ΠΡΠ΅ΠΌΡ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ
Β· + Interval: TimeSpan; ΠΡΠ΅ΠΌΡ, Π²ΡΠ΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Π½Π° ΠΏΡΠΈΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°
Β· + IsExpired: bool; ΠΡΠΎΡΡΠΎΡΠ΅Π½ Π»ΠΈ Π³ΡΠ°ΡΠΈΠΊ
Β· + StartTime: TimeSpan; ΠΡΠ΅ΠΌΡ Π½Π°ΡΠ°Π»Π° ΡΠ°Π±ΠΎΡΠ΅Π³ΠΎ Π΄Π½Ρ Π’Π°ΠΊΠΆΠ΅, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΡΠ΅Π±ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ, ΠΏΠΎΠΌΠ΅ΡΡΠΈΠΌ Π² Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ:
Β· + DayShedule; ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΊΠ»Π°ΡΡΠ°, Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΌ Π΅ΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ DayOfWeek
Β· + Set; ΠΌΠ΅ΡΠΎΠ΄, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π·Π°ΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°
Β· + SyncDate; ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ ΡΠ΅ΠΊΡΡΡΡ Π΄Π°ΡΡ Ρ Π΄Π°ΡΠΎΠΉ Π² ΠΆΡΡΠ½Π°Π»Π΅ ΠΏΡΠΈΠ΅ΠΌΠ°
Β· - ClearTasks; ΡΡΠ½ΠΊΡΠΈΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ°Ρ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡΠ΅Π½Π½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ. ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ SyncDate
Β· - ListDate; ΡΡΠ½ΠΊΡΠΈΡ, Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ Π΄Π°ΡΡ Π΄Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π’Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ Dictionary, ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°:
Β· # DayShedule (SerializationInfo); ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ Π΄Π΅ΡΠ΅ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ°
Β· + GetObjectData; ΠΌΠ΅ΡΠΎΠ΄, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΉ Π΄Π»Ρ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° ΠΠ»Π°ΡΡ DayShedule - Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½Π°Ρ Π΅Π΄ΠΈΠ½ΠΈΡΠ° ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠ°Ρ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ Π΄ΡΡΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
Π Ρ ΠΎΠ΄Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ°, ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ Π΅Π³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°:
Π ΠΈΡ. 7. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠ° DayShedule
ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Timetable:
ΠΠ»Π°ΡΡ Timetable ΡΠΎΠ·Π΄Π°Π½ Π΄Π»Ρ Π°Π³ΡΠ΅Π³Π°ΡΠΈΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² ΠΊΠ»Π°ΡΡΠ° DayShedule ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΡΠ΅Ρ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ Π²ΡΠ°ΡΠ° Π½Π° Π½Π΅Π΄Π΅Π»Ρ.
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ² ΡΠ°Π±ΠΎΡΡ Ρ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ LINQ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.NET Framework, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ
IEnumerable<DayShedule>. ΠΠ°Π½Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΡΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ DayShedule, ΠΈ ΡΠ°ΠΊΠΆΠ΅ (Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ LINQ) ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ.
Π ΠΈΡΠΎΠ³Π΅, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»Π°ΡΡΠ° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΌΠΈ ΡΠ°ΡΠΏΠΈΡΠ°Π½ΠΈΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ Π΄Π΅Π½Ρ Π½Π΅Π΄Π΅Π»ΠΈ:
Β· + Monday: DayShedule
Β· + Tuesday: DayShedule
Β· + Wednesday: DayShedule
Β· + Thursday: DayShedule
Β· + Friday: DayShedule
Β· + Saturday: DayShedule
Β· + Sunday: DayShedule
ΠΠ°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ ΡΠ°Π½ΡΡΡΡ Π² ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»Π΅ _days: List
ΠΠ΅ΡΠΎΠ΄Ρ, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅:
Β· Timetable; ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ
Β· Sync; ΠΌΠ΅ΡΠΎΠ΄, ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΡΡΡΠΈΠΉ Π΄Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π½Ρ Π³ΡΠ°ΡΠΈΠΊΠ° Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ Π΄Π°ΡΠΎΠΉ
Β· this[]; ΠΏΠ΅ΡΠ΅Π³ΡΡΠΆΠ΅Π½Π½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ»Ρ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° IEnumerable Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°:
Β· + GetEnumerator;
Β· - IEnumerable. GetEnumerator;
ΠΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° Timetable Ρ ΡΠ°Π½ΠΈΡΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡΠ΅ ΠΊΠ»Π°ΡΡΠ° Doctor. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΌΡ ΠΈΠΌΠ΅Π΅ΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ.
ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΊΠ»Π°ΡΡΠ° Timetable:
Π ΠΈΡ. 9. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠ° Timetable
ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠΎΠ½ΡΠΈΡΡ. ΠΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎ ΡΡΡΡΠΊΡΡΡΠ΅ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈ ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΈ.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎ ΠΈΡΠΎΠ³Π°ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π° ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ°:
Π ΠΈΡ. 10. ΠΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠ΅ΠΉ ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΠΠΠ:
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅:
ΠΠ»Π°ΡΡ DayShedule Π½Π°ΡΠ»Π΅Π΄ΡΠ΅ΡΡΡ ΠΎΡ ΡΠΈΠΏΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ.NET Framework Dictionary<TimeSpan, string>, Π² ΠΈΡΠΎΠ³Π΅ DayShedule ΡΠ°ΠΊΠΆΠ΅ ΡΠ½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ°, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ:
Β· IDictionary; ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ Π² Π²ΠΈΠ΄Π΅ «ΠΊΠ»ΡΡ — Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅»
Β· ICollection; ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΡΠΌΠΈ
Β· IEnumerable; ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄Π»Ρ ΠΏΡΠΎΡΡΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΠΊΠΎΠ»Π»Π΅ΠΊΡΠΈΠΈ
Β· ISerializable; ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΅Π³ΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠ΅ΠΉ ΠΠ»Π°ΡΡ Timetable Π½Π°ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ IEnumerable ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΅Π³ΠΎ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠ»Π°ΡΡ Doctor ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ICloneable
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ:
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΡΠ²Π»ΡΡΡΡΡ Π²ΡΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
Π’Π°ΠΌ, Π³Π΄Π΅ ΡΡΠΎ Π±ΡΠ»ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ Π―Π C# ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π°. Π ΠΎΡΡΠ°Π»ΡΠ½ΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ»ΠΈΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΎΠΉ ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π½ΠΈΠΌΠ°Π»ΠΈΡΡ ΡΠ²Π½ΠΎ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ°ΠΌΠΈ Π² ΠΌΡΡΠ°ΡΠΎΡΠ΅.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
ΠΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΡΠ΅Π΄ΡΡΠ²Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ throw ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°Π΄Π°ΡΡ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ ΠΊΠ»Π°ΡΡΠ°. ΠΠ»ΠΎΠΊΠΈ try/catch ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ Π΄Π»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°, ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΠ±ΡΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»Π°ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΉ ΠΎΡΠΈΠ±ΠΊΠ΅.
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
ΠΠ° Π²ΡΠ±ΠΎΡ: ΠΎΡΠΊΡΡΡΠΈΠ΅ ΡΠ°Π½Π΅Π΅ ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π ΠΈΡ. 11. ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠΊΡΠ°Π½ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ΅Π½Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΎΠΌ:
Π ΠΈΡ. 12. ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΎΠΌ
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
Π ΠΌΠ΅Π½Ρ, ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π½Π° ΡΠΈΡ. 12 Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡ «ΠΠΎΠ±Π°Π²ΠΈΡΡ»
Π ΠΈΡ. 13. Π Π΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π ΠΈΡ. 14. Π‘ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π³ΡΠ°ΡΠΈΠΊΠ° ΠΏΡΠΈΠ΅ΠΌΠ° Π²ΡΠ°ΡΠ°
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, Π²ΡΠ±Π΅ΡΠ΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π²ΡΠ°ΡΠ°.
Π ΠΈΡ. 15. ΠΡΠ±ΠΎΡ, Π½Π° ΠΊΠ°ΠΊΠΎΠΉ Π΄Π΅Π½Ρ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΠΌ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ° Π ΠΈΡ. 16. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°
ΠΠΎΠΈΡΠΊ
Π ΠΈΡ. 17. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΠΎΠΈΡΠΊΠ°
Π‘ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ°
Π ΠΈΡ. 18. ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ
Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
Π Π³Π»Π°Π²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Ρ ΠΎΡΠΈΠΌ ΡΠ΄Π°Π»ΠΈΡΡ, Π·Π°ΡΠ΅ΠΌ Π² ΠΌΠ΅Π½Ρ «Π‘ΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΈ» Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΠΏΡΠ½ΠΊΡ «Π£Π΄Π°Π»ΠΈΡΡ».
Π ΠΈΡ. 19. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠ°
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π Ρ ΠΎΠ΄Π΅ ΡΠ°Π±ΠΎΡΡ, ΠΏΡΠΎΠΉΠ΄Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ°ΠΏΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ, Π±ΡΠ»ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠ΅Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΡΡΠ΅Π΅ ΠΏΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ. Π‘ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ·Π°Π±ΠΈΠ»ΠΈΡΠΈ.
Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π±ΡΠ»Π° Π²ΡΠ±ΡΠ°Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ΠΠΠ. ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΡΠ΅ ΡΡΠ΅Π΄ΡΡΠ²Π°, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΡΡΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ, ΠΊΠ°ΠΊ: Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ, ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡΠΈΡ ΠΈ Π°Π³ΡΠ΅Π³Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ².
Π Π°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Ρ ΠΎΡΡ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠ°Π±ΠΎΡΠ½ΠΈΠΊΠ° ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΡ, Π½Π° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
Β· ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΈ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ.
Β· Π‘ΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡΡΠΎΡΠΈΠΈ Π±ΠΎΠ»Π΅Π·Π½ΠΈ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ°.
Β· ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠ΅.
Β· ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΡΡΠ΅ΡΠ½ΠΎΡΡΠΈ ΠΎ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π΅ ΠΎΠ±ΡΠ»ΡΠΆΠ΅Π½Π½ΡΡ ΠΏΠ°ΡΠΈΠ΅Π½ΡΠΎΠ², ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ°Ρ .
Π Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ, ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΠΊΠΎ Π²ΠΊΠ»ΡΡΠΈΡΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π² ΡΠ΅Π»ΠΎΠΌ Π΅Π΅ ΡΡΡΡΠΊΡΡΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ»Π°Π±ΠΎ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ ΠΈ Π»Π΅Π³ΠΊΠΎ ΡΠ°ΡΡΠΈΡΡΠ΅ΠΌΠΎΠΉ.
1. Π. Π’ΡΠΎΠ΅Π»ΡΠ΅Π½. Π―Π·ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π‘# 2010 ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°.NET 4.0, 5-Π΅ ΠΈΠ·Π΄. Π. Π. ΠΠΈΠ»ΡΡΠΌΡ, 2011. — 1392 Ρ.
2. Π. Π’ΡΠ΅ΠΉ. C# 2010: Π£ΡΠΊΠΎΡΠ΅Π½Π½ΡΠΉ ΠΊΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΠΎΠ². Π. Π. ΠΠΈΠ»ΡΡΠΌΡ, 2010. — 592 Ρ.
3. Π€Π°ΡΠ»Π΅Ρ Π., Π‘ΠΊΠΎΡΡ Π. UML. ΠΡΠ½ΠΎΠ²Ρ. Π‘ΠΈΠΌΠ²ΠΎΠ»-ΠΠ»ΡΡ, 2002. — 192 Ρ.
4. ΠΠ²Π°ΡΡΠ°Π½ΠΈ Π’. Rational Rose ΠΈ UML. ΠΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅. ΠΠΠ ΠΡΠ΅ΡΡ, 2001. — 176 Ρ.
ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
ΠΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΠ»Π°ΡΡ Doctor
#region Namespace directives
using System;
using System. Text. RegularExpressions;
using Victor. Timetable;
#endregion
namespace Registry
{
[Serializable]
public class Doctor: ICloneable
{
#region Fields
private DateTime _birthDate;
private int _cabinetNumber;
private string _name;
private string _specialization;
#endregion
#region Constructors
public Doctor ()
{
Timetable = new Timetable ();
}
public Doctor (string name,
DateTime birthDate,
string speciality,
int cabinetNumber,
Timetable timetable)
: this ()
{
Name = name;
BirthDate = birthDate;
Specialization = speciality;
CabinetNumber = cabinetNumber;
Timetable = timetable;
}
#endregion
#region Properties
public Timetable Timetable {get; private set;}
public string Name
{
get {return _name;}
set
{
value = value. Trim ();
if (! Regex. IsMatch (value, @ «^[Π-Ρ]+s+([Π-Ρ]. s*) {2}$»))
throw new ArgumentException («Π€.Π.Π. Π²ΡΠ°ΡΠ° Π·Π°Π΄Π°Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ»);
_name = value;
}
}
public DateTime BirthDate
{
get {return _birthDate;}
set
{
if ((DateTime. Today — value).TotalDays < 6564) // 18 Π»Π΅Ρ
throw new ArgumentException («ΠΠ°ΡΠ° ΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π·Π°Π΄Π°Π½Π° Π½Π΅Π²Π΅ΡΠ½ΠΎ»);
_birthDate = value;
}
}
public string Specialization
{
get {return _specialization;}
set
{
value = value. Trim ();
if (! Regex. IsMatch (value, @ «^[Π-Ρ]+$»))
throw new ArgumentException («Π‘ΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ Π·Π°Π΄Π°Π½Π° Π½Π΅Π²Π΅ΡΠ½ΠΎ»);
_specialization = value;
}
}
public int CabinetNumber
{
if (value <= 0)
throw new ArgumentException («ΠΠΎΠΌΠ΅Ρ ΠΊΠ°Π±ΠΈΠ½Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½ΠΎΠ»Ρ»);
_cabinetNumber = value;
}
}
#endregion
#region Implementation of ICloneable
public object Clone ()
{
#endregion
}
}
ΠΠ»Π°ΡΡ Timetable
#region Namespace directives
using System;
using System. Collections;
using System. Collections. Generic;
using System. Linq;
#endregion
namespace Victor. Timetable
{
[Serializable]
public class Timetable: IEnumerable
{
#region Fields and properties
public readonly DayShedule Friday;
public readonly DayShedule Monday;
public readonly DayShedule Saturday;
public readonly DayShedule Sunday;
public readonly DayShedule Tuesday;
public readonly DayShedule Wednesday;
private readonly List _days;
#endregion
#region Constructors
public Timetable ()
{
Monday = new DayShedule (DayOfWeek. Monday);
Tuesday = new DayShedule (DayOfWeek. Tuesday);
Wednesday = new DayShedule (DayOfWeek. Wednesday);
Thursday = new DayShedule (DayOfWeek. Thursday);
Friday = new DayShedule (DayOfWeek. Friday);
Saturday = new DayShedule (DayOfWeek. Saturday);
Sunday = new DayShedule (DayOfWeek. Sunday);
_days = new List
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
};
}
#endregion
#region Indexers
public DayShedule this [int index]
{
get {return _days[index]; }
}
#endregion
#region Public methods
public void RemoveExpired ()
{
foreach (DayShedule day in this)
day. SyncDate ();
}
#endregion
#region Implementation of IEnumerable
public IEnumerator GetEnumerator ()
{
return _days. Where (t => t. IsSet).GetEnumerator ();
}
IEnumerator IEnumerable. GetEnumerator ()
{
return GetEnumerator ();
}
#endregion
}
}
ΠΠ»Π°ΡΡ DayShedule
#region Namespace directives
using System;
using System. Collections. Generic;
using System. Linq;
using System. Runtime. Serialization;
#endregion
namespace Victor. Timetable
{
[Serializable]
public class DayShedule: Dictionary
{
#region properties
public DayOfWeek DayOfWeek {get; private set;}
public DateTime Date {get; private set;}
public TimeSpan StartTime {get; private set;}
public TimeSpan EndTime {get; private set;}
public TimeSpan Duration {get; private set;}
public TimeSpan Interval {get; private set;}
public bool IsSet {get; private set;}
public bool IsExpired
{
get {return DateTime. Today > Date;}
}
#endregion
#region Constructors
protected DayShedule (SerializationInfo info, StreamingContext context)
: base (info, context)
{
DayOfWeek = (DayOfWeek) info. GetValue («DayOfWeek», typeof (DayOfWeek));
IsSet = info. GetBoolean («IsSet»);
if (! IsSet)
return;
Date = info. GetDateTime («Date»);
StartTime = (TimeSpan) info. GetValue («StartTime», typeof (TimeSpan));
EndTime = (TimeSpan) info. GetValue («EndTime», typeof (TimeSpan));
Duration = (TimeSpan) info. GetValue («Duration», typeof (TimeSpan));
Interval = (TimeSpan) info. GetValue («Interval», typeof (TimeSpan));
}
public DayShedule (DayOfWeek day)
{
DayOfWeek = day;
}
#endregion
#region Public Methods
public void Set (TimeSpan startTime, TimeSpan endTime, TimeSpan interval)
{
if (startTime. Days > 0)
throw new ArgumentException («ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π΄Π°Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ»);
if (endTime. Days > 0)
throw new ArgumentException («ΠΠΎΠ½Π΅ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π·Π°Π΄Π°Π½ΠΎ Π½Π΅Π²Π΅ΡΠ½ΠΎ»);
if (startTime >= endTime)
throw new ArgumentException («ΠΠ°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ»);
StartTime = startTime;
EndTime = endTime;
Duration = EndTime — StartTime;
if (interval > Duration)
throw new ArgumentException («ΠΠ½ΡΠ΅ΡΠ²Π°Π» ΠΏΡΠ΅Π²ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΠΉ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΠΊ»);
IsSet = true;
Interval = interval;
SetNextDateOfDayOfWeek ();
Clear ();
TimeSpan floatBound = StartTime;
while (floatBound < EndTime)
{
Add (floatBound, string. Empty);
floatBound += interval;
}
}
public void Unset ()
{
IsSet = false;
}
public void SyncDate ()
{
if (IsExpired)
{
double delta = (DateTime. Today — Date).TotalDays/7;
var factor = (int) (Math. Abs ((int) delta — delta) < double. Epsilon
? delta
: delta + 1);
Date += new TimeSpan (factor*7, 0, 0, 0);
ClearTasks ();
}
}
#endregion
#region Private methods
private void ClearTasks ()
{
foreach (TimeSpan time in Keys. ToList ())
this[time] = string. Empty;
}
private void SetNextDateOfDayOfWeek ()
{
Date = DateTime. Today;
while (Date. DayOfWeek≠ DayOfWeek)
Date = Date. AddDays (1);
}
#endregion
#region Overrides of Dictionary
public override void GetObjectData (SerializationInfo info, StreamingContext context)
{
base. GetObjectData (info, context);
info. AddValue («DayOfWeek», DayOfWeek);
info. AddValue («IsSet», IsSet);
if (! IsSet)
return;
info. AddValue («Date», Date);
info. AddValue («StartTime», StartTime);
info. AddValue («EndTime», EndTime);
info. AddValue («Duration», Duration);
info. AddValue («Interval», Interval);
}
#endregion
}
}
ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΡΡΠ° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·Π°ΡΠΈΡ