public async Task <ClaimResult> ClaimGame(ClaimGameDomainRequest request, bool managerAction, bool draft, bool drafting) { MasterGameYear?masterGameYear = null; if (request.MasterGame is not null) { masterGameYear = new MasterGameYear(request.MasterGame, request.LeagueYear.Year); } ClaimResult claimResult = CanClaimGame(request, null, null, true, drafting); if (!claimResult.Success) { return(claimResult); } PublisherGame playerGame = new PublisherGame(request.Publisher.PublisherID, Guid.NewGuid(), request.GameName, _clock.GetCurrentInstant(), request.CounterPick, null, false, null, masterGameYear, claimResult.BestSlotNumber !.Value, request.DraftPosition, request.OverallDraftPosition, null, null); LeagueAction leagueAction = new LeagueAction(request, _clock.GetCurrentInstant(), managerAction, draft, request.AutoDraft); await _fantasyCriticRepo.AddLeagueAction(leagueAction); await _fantasyCriticRepo.AddPublisherGame(playerGame); return(claimResult); }
public async Task <ClaimResult> ClaimGame(ClaimGameDomainRequest request, bool managerAction, bool draft, IReadOnlyList <Publisher> publishersForYear) { Maybe <MasterGameYear> masterGameYear = Maybe <MasterGameYear> .None; if (request.MasterGame.HasValue) { masterGameYear = new MasterGameYear(request.MasterGame.Value, request.Publisher.LeagueYear.Year); } PublisherGame playerGame = new PublisherGame(request.Publisher.PublisherID, Guid.NewGuid(), request.GameName, _clock.GetCurrentInstant(), request.CounterPick, null, null, masterGameYear, request.DraftPosition, request.OverallDraftPosition); var supportedYears = await _fantasyCriticRepo.GetSupportedYears(); LeagueYear leagueYear = request.Publisher.LeagueYear; ClaimResult claimResult = CanClaimGame(request, supportedYears, leagueYear, publishersForYear, null, false); if (!claimResult.Success) { return(claimResult); } LeagueAction leagueAction = new LeagueAction(request, _clock.GetCurrentInstant(), managerAction, draft, request.AutoDraft); await _fantasyCriticRepo.AddLeagueAction(leagueAction); await _fantasyCriticRepo.AddPublisherGame(playerGame); return(claimResult); }
public async Task <ClaimResult> ClaimGame(ClaimGameDomainRequest request) { PublisherGame playerGame = new PublisherGame(Guid.NewGuid(), request.GameName, _clock.GetCurrentInstant(), request.CounterPick, null, null, new MasterGameYear(request.MasterGame.Value, request.Publisher.Year), request.DraftPosition, request.OverallDraftPosition, request.Publisher.Year); ClaimResult claimResult = await CanClaimGame(request); if (!claimResult.Success) { return(claimResult); } LeagueAction leagueAction = new LeagueAction(request, _clock.GetCurrentInstant()); await _fantasyCriticRepo.AddLeagueAction(leagueAction); await _fantasyCriticRepo.AddPublisherGame(request.Publisher, playerGame); return(claimResult); }