private async Task Load(CreateCompetitionCommand command)
        {
            if (command.CompetitionHeaderID.HasValue)
            {
                this._header = await this._competitionHeaderRepository.Get(command.CompetitionHeaderID.Value);
            }

            this._season = await this._seasonRepository.Get(command.SeasonID);

            if (command.GameVariationID.HasValue)
            {
                this._gameVariation = await this._gameVariationRepository.Get(command.GameVariationID.Value);
            }

            if (command.Organiser == CompetitionOrganisers.Association)
            {
                this._venueClub = await this._clubRepository.Get(command.VenueClubID.Value);
            }

            if (command.Organiser == CompetitionOrganisers.Club)
            {
                this._organiserClub = await this._clubRepository.Get(command.OrganiserClubID.Value);

                if (command.VenueClubID.HasValue)
                {
                    this._venueClub = await this._clubRepository.Get(command.VenueClubID.Value);
                }
                else
                {
                    this._venueClub = this._organiserClub;
                }
            }
        }
        public static GameVariationDto AssembleDto(this GameVariation data)
        {
            if (data == null)
            {
                throw new ArgumentNullException(nameof(data));
            }

            var dto = new GameVariationDto
            {
                ID           = data.ID,
                GameFormatID = data.GameFormatID,
                GenderID     = data.GenderID,
                Name         = data.Name,
                Description  = data.Description
            };

            return(dto);
        }