//Kompozycja warunek 2 - Brak mozliwosci utworzenia czesci bez całości //Kompozycja warunek 1 - Brak współdzielenia części. public static NaprawaSerwisowa UtworzNaprawe(ZgloszenieSerwisowe zgloszenie, DateTime dataRealizacji, Serwisant serwisant) { if (zgloszenie.Equals(null)) { throw new Exception("Całość nie istnieje!"); } else if (serwisant.Equals(null)) { throw new Exception("Naprawa nie może zostać zrealizowana bez Serwisanta"); } else { var naprawa = new NaprawaSerwisowa(dataRealizacji) { //powiązanie ze Zgłoszeniem występuje tylko w jednym miejscu. brak publicznej metody do dodania powiazania _wRamach = zgloszenie, // dodanie powiązań NaprawaSerwisowa<->Serwisant _realizowanaPrzez = serwisant }; serwisant.PrzypiszDoNaprawy(naprawa); return(naprawa); } }
public NaprawaSerwisowa ZlecNaprawe(DateTime dataRealizacji, Serwisant serwisant) { //dodanie powiazan ZgloszenieSerwisowe<->NaprawaSerwisowa var naprawa = NaprawaSerwisowa.UtworzNaprawe(this, dataRealizacji, serwisant); _zawierajace.Add(naprawa); return(naprawa); }
public void UsunPowiazanieNaprawa(NaprawaSerwisowa naprawa) { if (_realizuje.Contains(naprawa)) { _realizuje.Remove(naprawa); } else { throw new Exception("Ten serwisant nie realizuje tego zgłoszenia"); } }
public void UsunPowiazanaNaprawe(NaprawaSerwisowa naprawa) { _zawierajace.Remove(naprawa); }
public void PrzypiszDoNaprawy(NaprawaSerwisowa naprawa) { _realizuje.Add(naprawa); }