public async Task <IActionResult> SetAutoDraft([FromBody] ManagerSetAutoDraftRequest request) { var leagueYearRecord = await GetExistingLeagueYear(request.LeagueID, request.Year, ActionProcessingModeBehavior.Allow, RequiredRelationship.LeagueManager, RequiredYearStatus.YearNotFinishedDraftNotFinished); if (leagueYearRecord.FailedResult is not null) { return(leagueYearRecord.FailedResult); } var validResult = leagueYearRecord.ValidResult !; var leagueYear = validResult.LeagueYear; foreach (var requestPublisher in request.PublisherAutoDraft) { var publisher = leagueYear.GetPublisherByID(requestPublisher.Key); if (publisher is null) { return(Forbid()); } await _publisherService.SetAutoDraft(publisher, requestPublisher.Value); } var draftComplete = await _draftService.RunAutoDraftAndCheckIfComplete(leagueYear); if (draftComplete) { await _hubContext.Clients.Group(leagueYear.GetGroupName).SendAsync("DraftFinished"); } return(Ok()); }
public async Task <IActionResult> SetAutoDraft([FromBody] ManagerSetAutoDraftRequest request) { var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); if (!ModelState.IsValid) { return(BadRequest()); } var league = await _fantasyCriticService.GetLeagueByID(request.LeagueID); if (league.HasNoValue) { return(BadRequest()); } if (league.Value.LeagueManager.UserID != currentUser.UserID) { return(Forbid()); } var leagueYear = await _fantasyCriticService.GetLeagueYear(request.LeagueID, request.Year); if (leagueYear.HasNoValue) { return(BadRequest()); } var publishers = await _publisherService.GetPublishersInLeagueForYear(leagueYear.Value); var publisherDictionary = publishers.ToDictionary(x => x.PublisherID); foreach (var requestPublisher in request.PublisherAutoDraft) { if (!publisherDictionary.ContainsKey(requestPublisher.Key)) { return(Forbid()); } await _publisherService.SetAutoDraft(publisherDictionary[requestPublisher.Key], requestPublisher.Value); } var draftComplete = await _draftService.RunAutoDraftAndCheckIfComplete(leagueYear.Value); if (draftComplete) { await _hubContext.Clients.Group(leagueYear.Value.GetGroupName).SendAsync("DraftFinished"); } return(Ok()); }