public async Task <IActionResult> CreateRoyalePublisher([FromBody] CreateRoyalePublisherRequest request) { var currentUser = await _userManager.FindByNameAsync(User.Identity.Name); if (currentUser is null) { return(BadRequest()); } IReadOnlyList <RoyaleYearQuarter> supportedQuarters = await _royaleService.GetYearQuarters(); var selectedQuarter = supportedQuarters.Single(x => x.YearQuarter.Year == request.Year && x.YearQuarter.Quarter == request.Quarter); if (!selectedQuarter.OpenForPlay || selectedQuarter.Finished) { return(BadRequest()); } var existingPublisher = await _royaleService.GetPublisher(selectedQuarter, currentUser); if (existingPublisher.HasValue) { return(BadRequest()); } RoyalePublisher publisher = await _royaleService.CreatePublisher(selectedQuarter, currentUser, request.PublisherName); return(Ok(publisher.PublisherID)); }
public async Task <IActionResult> CreateRoyalePublisher([FromBody] CreateRoyalePublisherRequest request) { var currentUserResult = await GetCurrentUser(); if (currentUserResult.IsFailure) { return(BadRequest(currentUserResult.Error)); } var currentUser = currentUserResult.Value; if (string.IsNullOrWhiteSpace(request.PublisherName)) { return(BadRequest("You cannot have a blank name.")); } IReadOnlyList <RoyaleYearQuarter> supportedQuarters = await _royaleService.GetYearQuarters(); var selectedQuarter = supportedQuarters.Single(x => x.YearQuarter.Year == request.Year && x.YearQuarter.Quarter == request.Quarter); if (!selectedQuarter.OpenForPlay || selectedQuarter.Finished) { return(BadRequest()); } var existingPublisher = await _royaleService.GetPublisher(selectedQuarter, currentUser); if (existingPublisher is not null) { return(BadRequest()); } RoyalePublisher publisher = await _royaleService.CreatePublisher(selectedQuarter, currentUser, request.PublisherName); return(Ok(publisher.PublisherID)); }