public void AnmalTillKurs(Kurstillfalle kurstillfalle) { var overlappandeKurser = Kursanmalan.Where(anmaldKurs => anmaldKurs.TillfalletPagarUnder(kurstillfalle.KursPeriod)).ToList(); if (overlappandeKurser.Any()) { var forstasomOverlappar = overlappandeKurser.First(); throw new ApplicationException($"Kan ej anmäla till angiven kurs. Befintlig anmälan överlappar med tidsperioden för detta tillfälle ('{forstasomOverlappar.KursNamn}' startar {forstasomOverlappar.StartDatum})"); } // Utför ytterligare affärslogik, valideringar, sätt andra värden, lägg till/ändra/ta bort relaterade egenskaper etc... var nyAnmalan = new Kursanmalan { Anstalld = this, Anstalld_FK = this.Id, Kurstillfalle_FK = kurstillfalle.Kurs.Id }; Kursanmalan.Add(nyAnmalan); }
public bool TillfalletPagarUnder(KursPeriod period) { return(Kurstillfalle.Overlappar(period)); }