Пример #1
0
        /// <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);
    }
Пример #3
0
    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);
    }