Esempio n. 1
0
        public async Task RequestPlayersNewRegistration(List <int> playerIds, int teamId, string domainUrl)
        {
            var team = await this.teamRepository.FindByIdAsync(teamId);

            var season = await this.seasonRepository.FindByDate(DateTime.Today);

            var reservationNumber = await ReservationNumberFactory.Create(this.reservationNumberRepository);

            var branchNumber = 1;

            foreach (var playerId in playerIds)
            {
                var player = await this.playerRepository.FindByIdAsync(playerId);

                var requestPlayer = new RequestPlayer(
                    playerId,
                    teamId,
                    season.Id,
                    reservationNumber,
                    branchNumber,
                    player.Category,
                    RequestType.NewRegistration,
                    ApproveState.Unapproved,
                    DateTime.Now,
                    season.GetPlayerRegistrationFee(),
                    null);
                await this.requestPlayerRepository.UpdateAsync(requestPlayer);

                branchNumber++;
            }
            await this.SendRequestPlayersNewRegistrationMail(team.RepresentativeEmailAddress, domainUrl);
        }
Esempio n. 2
0
        public async Task AddRequestTransferPlayers(List <int> transferPlayerIds, int teamId)
        {
            var team = await this.teamRepository.FindByIdAsync(teamId);

            var season = await this.seasonRepository.FindByDate(DateTime.Today);

            var reservationNumber = await ReservationNumberFactory.Create(this.reservationNumberRepository);

            var branchNumber = 1;
            var players      = await this.playerRepository.FindAllByIdsAsync(transferPlayerIds);

            var requestPlayers = await this.requestPlayerRepository.FindAllByPlayerIdsAndSeasonId(transferPlayerIds, season.Id);

            foreach (var player in players)
            {
                var isRegisteredThisSeason = requestPlayers.Any(o => o.PlayerId == player.Id && o.SeasonId == season.Id);
                var requestPlayer          = new RequestPlayer(
                    player.Id,
                    teamId,
                    season.Id,
                    reservationNumber,
                    branchNumber,
                    player.Category,
                    RequestType.TransferRegistration,
                    ApproveState.Unapproved,
                    DateTime.Now,
                    season.GetPlayerTradeFee(isRegisteredThisSeason),
                    null);
                await this.requestPlayerRepository.AddAsync(requestPlayer);

                branchNumber++;
            }
            await this.SendRequestPlayersTransferMail(team.RepresentativeEmailAddress);
        }
Esempio n. 3
0
        public async Task AddRequestPlayers(List <AddRequestPlayersDto> dtos, int teamId)
        {
            var team = await this.teamRepository.FindByIdAsync(teamId);

            var season = await this.seasonRepository.FindByDate(DateTime.Today);

            var reservationNumber = await ReservationNumberFactory.Create(this.reservationNumberRepository);

            var branchNumber = 1;

            foreach (var dto in dtos)
            {
                var requestPlayer = new RequestPlayer(
                    dto.PlayerId,
                    teamId,
                    season.Id,
                    reservationNumber,
                    branchNumber,
                    Enumeration.FromValue <Category>(dto.CategoryId),
                    RequestType.ContinuedRegistration,
                    ApproveState.Unapproved,
                    DateTime.Now,
                    season.GetPlayerRegistrationFee(),
                    null);
                await this.requestPlayerRepository.AddAsync(requestPlayer);

                branchNumber++;
            }
            await this.SendRequestPlayersContinuedRegistrationMail(team.RepresentativeEmailAddress);
        }
Esempio n. 4
0
        public async Task <RequestTeam> AddRequestTeam(AddRequestTeamDto dto)
        {
            var requestedFee      = dto.TeamType == TeamType.School.Id ? 0 : dto.RequestedFee;
            var reservationNumber = await ReservationNumberFactory.Create(this.reservationNumberRepository);

            var requestTeam = new RequestTeam(
                dto.TeamId,
                dto.SeasonId,
                reservationNumber,
                ApproveState.Unapproved,
                DateTime.Now,
                new RequestedFee(requestedFee),
                null,
                MailState.Unsent
                );

            return(await this.requestTeamRepository.Add(requestTeam));
        }
Esempio n. 5
0
        /// <summary>
        /// 団体新規登録申請
        /// </summary>
        /// <param name="dto">団体申請用 DTO。</param>
        /// <returns>団体</returns>
        public async Task <Team> RequestTeamNewRegistration(RequestTeamNewRegistrationDto dto)
        {
            var team = new Team(
                null,
                Enumeration.FromValue <TeamType>(dto.TeamType),
                new TeamName(dto.TeamName),
                TeamAbbreviatedName.Parse(dto.TeamName),
                dto.RepresentativeName,
                dto.RepresentativeEmailAddress,
                dto.TelephoneNumber,
                dto.Address,
                dto.CoachName,
                dto.CoachEmailAddress,
                null);

            team = await this.teamRepository.Add(team);

            var season = await this.seasonRepository.FindByDate(DateTime.Today);

            var teamRegistrationFee = team.TeamType == TeamType.School ? 0 : season.TeamRegistrationFee.Value;
            var reservationNumber   = await ReservationNumberFactory.Create(this.reservationNumberRepository);

            var requestTeam = new RequestTeam(
                team.Id,
                season.Id,
                reservationNumber,
                ApproveState.Unapproved,
                DateTime.Now,
                new RequestedFee(teamRegistrationFee),
                null,
                MailState.Unsent
                );

            await this.requestTeamRepository.Add(requestTeam);

            return(team);
        }