public override async Task <DeleteChallengeResponse> DeleteChallenge(DeleteChallengeRequest request, ServerCallContext context) { var challengeId = request.ChallengeId.ParseEntityId <ChallengeId>(); if (!await _challengeService.ChallengeExistsAsync(challengeId)) { throw context.NotFoundRpcException("Challenge not found."); } var challenge = await _challengeService.FindChallengeAsync(challengeId); var result = await _challengeService.DeleteChallengeAsync(challenge); if (result.IsValid) { var response = new DeleteChallengeResponse { Challenge = ChallengeProfile.Map(result.Response) }; return(context.Ok(response)); } throw context.FailedPreconditionRpcException(result); }
public async Task <IActionResult> CreateChallengeAsync([FromBody] Requests.CreateChallengeRequest request) { var fetchDoxatagsRequest = new FetchDoxatagsRequest(); var fetchDoxatagsResponse = await _identityServiceClient.FetchDoxatagsAsync(fetchDoxatagsRequest); var findChallengeScoringRequest = new FindChallengeScoringRequest { Game = request.Game }; var findChallengeScoringResponse = await _gameServiceClient.FindChallengeScoringAsync(findChallengeScoringRequest); var createChallengeRequest = new CreateChallengeRequest { Name = request.Name, Game = request.Game, BestOf = request.BestOf, Entries = request.Entries, Duration = request.Duration, Scoring = findChallengeScoringResponse.Scoring }; var createChallengeResponse = await _challengesServiceClient.CreateChallengeAsync(createChallengeRequest); try { var createChallengePayoutRequest = new CreateChallengePayoutRequest { ChallengeId = createChallengeResponse.Challenge.Id, PayoutEntries = createChallengeResponse.Challenge.Entries / 2, // TODO EntryFee = new CurrencyDto { Amount = request.EntryFee.Amount, Type = request.EntryFee.Type } }; var createChallengePayoutResponse = await _cashierServiceClient.CreateChallengePayoutAsync(createChallengePayoutRequest); return(this.Ok(ChallengeMapper.Map(createChallengeResponse.Challenge, createChallengePayoutResponse.Payout, fetchDoxatagsResponse.Doxatags))); } catch (RpcException exception) { var deleteChallengeRequest = new DeleteChallengeRequest { ChallengeId = createChallengeResponse.Challenge.Id }; await _challengesServiceClient.DeleteChallengeAsync(deleteChallengeRequest); throw exception.Capture(); } }
public DeleteChallengeResponse DeleteChallenge(DeleteChallengeRequest request) { var challenge = new Challenge { Id = request.Id }; DataContext.Challenges.Attach(challenge); DataContext.Challenges.Remove(challenge); DataContext.SaveChanges(); return(new DeleteChallengeResponse { IsSuccess = true, Message = "Challenge has been Deleted Successfully" }); }
public async Task <IActionResult> Delete(DeleteChallengeRequest request, [FromServices] IHandler <DeleteChallengeRequest, ObjectResult> handler) { return(await handler.Handle(request)); }