public async Task <IActionResult> RoyaleStandings(int year, int quarter) { IReadOnlyList <RoyalePublisher> publishers = await _royaleService.GetAllPublishers(year, quarter); var publishersToShow = publishers.Where(x => x.PublisherGames.Any()).OrderByDescending(x => x.GetTotalFantasyPoints()); int ranking = 1; List <RoyalePublisherViewModel> viewModels = new List <RoyalePublisherViewModel>(); var masterGameTags = await _interLeagueService.GetMasterGameTags(); IReadOnlyDictionary <FantasyCriticUser, IReadOnlyList <RoyaleYearQuarter> > previousWinners = await _royaleService.GetRoyaleWinners(); foreach (var publisher in publishersToShow) { int?thisRanking = null; if (publisher.GetTotalFantasyPoints() > 0) { thisRanking = ranking; ranking++; } if (!previousWinners.TryGetValue(publisher.User, out var winningQuarters)) { winningQuarters = new List <RoyaleYearQuarter>(); } var currentDate = _clock.GetToday(); var vm = new RoyalePublisherViewModel(publisher, currentDate, thisRanking, winningQuarters, masterGameTags); viewModels.Add(vm); } return(Ok(viewModels)); }
public async Task <IActionResult> GetUserRoyalePublisher(int year, int quarter) { var currentUserResult = await GetCurrentUser(); if (currentUserResult.IsFailure) { return(BadRequest(currentUserResult.Error)); } var currentUser = currentUserResult.Value; var yearQuarter = await _royaleService.GetYearQuarter(year, quarter); if (yearQuarter is null) { return(BadRequest()); } RoyalePublisher?publisher = await _royaleService.GetPublisher(yearQuarter, currentUser); if (publisher is null) { return(NotFound()); } IReadOnlyList <RoyaleYearQuarter> quartersWon = await _royaleService.GetQuartersWonByUser(publisher.User); var currentDate = _clock.GetToday(); var masterGameTags = await _interLeagueService.GetMasterGameTags(); var viewModel = new RoyalePublisherViewModel(publisher, currentDate, null, quartersWon, masterGameTags); return(Ok(viewModel)); }
public async Task <IActionResult> GetRoyalePublisher(Guid id) { Maybe <RoyalePublisher> publisher = await _royaleService.GetPublisher(id); if (publisher.HasNoValue) { return(NotFound()); } var viewModel = new RoyalePublisherViewModel(publisher.Value, _clock, null); return(Ok(viewModel)); }
public async Task <IActionResult> GetRoyalePublisher(Guid id) { Maybe <RoyalePublisher> publisher = await _royaleService.GetPublisher(id); if (publisher.HasNoValue) { return(NotFound()); } IReadOnlyList <RoyaleYearQuarter> quartersWon = await _royaleService.GetQuartersWonByUser(publisher.Value.User); var viewModel = new RoyalePublisherViewModel(publisher.Value, _clock, null, quartersWon); return(Ok(viewModel)); }
public async Task <IActionResult> GetRoyalePublisher(Guid id) { RoyalePublisher?publisher = await _royaleService.GetPublisher(id); if (publisher is null) { return(NotFound()); } IReadOnlyList <RoyaleYearQuarter> quartersWon = await _royaleService.GetQuartersWonByUser(publisher.User); var currentDate = _clock.GetToday(); var masterGameTags = await _interLeagueService.GetMasterGameTags(); var viewModel = new RoyalePublisherViewModel(publisher, currentDate, null, quartersWon, masterGameTags); return(Ok(viewModel)); }
public async Task <IActionResult> GetUserRoyalePublisher(int year, int quarter) { var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); var yearQuarter = await _royaleService.GetYearQuarter(year, quarter); if (yearQuarter.HasNoValue) { return(BadRequest()); } Maybe <RoyalePublisher> publisher = await _royaleService.GetPublisher(yearQuarter.Value, currentUser); if (publisher.HasNoValue) { return(NotFound()); } var viewModel = new RoyalePublisherViewModel(publisher.Value, _clock, null); return(Ok(viewModel)); }
public async Task <IActionResult> RoyaleStandings(int year, int quarter) { IReadOnlyList <RoyalePublisher> publishers = await _royaleService.GetAllPublishers(year, quarter); var publishersToShow = publishers.Where(x => x.PublisherGames.Any()).OrderByDescending(x => x.GetTotalFantasyPoints()); int ranking = 1; List <RoyalePublisherViewModel> viewModels = new List <RoyalePublisherViewModel>(); foreach (var publisher in publishersToShow) { int?thisRanking = null; if (publisher.GetTotalFantasyPoints() > 0) { thisRanking = ranking; ranking++; } var vm = new RoyalePublisherViewModel(publisher, _clock, thisRanking); viewModels.Add(vm); } return(Ok(viewModels)); }