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); }
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); }
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); }
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)); }
/// <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); }