/// <summary> /// Creates a new Committee inside the given Conference. /// </summary> /// <param name="options"></param> /// <returns></returns> public Committee AddCommittee(Action <CommitteeOptionsBuilder> options) { var conference = _dbContext.Conferences.Find(_conferenceId); if (conference == null) { throw new ConferenceNotFoundException($"No conference found for {_conferenceId}"); } var builder = new CommitteeOptionsBuilder(); options(builder); builder.Committee.Conference = conference; var committeeEasy = Util.IdGenerator.AsPrimaryKey(builder.Committee.CommitteeShort); builder.Committee.CommitteeId = conference.ConferenceId + "-" + committeeEasy; if (builder.Committee.ChildCommittees.Count > 0) { foreach (var committeeChildCommittee in builder.Committee.ChildCommittees) { committeeChildCommittee.Conference = conference; } } conference.Committees.Add(builder.Committee); this._dbContext.SaveChanges(); return(builder.Committee); }
public ConferenceOptionsBuilder WithCommittee(Action <CommitteeOptionsBuilder> builder) { var options = new CommitteeOptionsBuilder(); builder(options); this._conference.Committees.Add(options.Committee); return(this); }
public CommitteeOptionsBuilder WithSubCommittee(Action <CommitteeOptionsBuilder> options) { var builder = new CommitteeOptionsBuilder(); options(builder); Committee.ChildCommittees.Add(builder.Committee); builder.Committee.ResolutlyCommittee = Committee; builder.Committee.Conference = this.Committee.Conference; return(this); }