public async Task <CDKeySuccessResponse> TestCDKeyValid([FromBody] GetProfileByCDKeyRequest request) { var resp = new CDKeySuccessResponse(); var game = (await gameRepository.Lookup(request.gameLookup)).FirstOrDefault(); if (game == null) { throw new ArgumentException(); } var lookupRequest = new CdKeyLookup(); lookupRequest.Cdkey = request.cdkey; lookupRequest.Gameid = game.Id; var failIfNotFound = await cdkeyRepository.LookupFailItNotFound(lookupRequest); if (failIfNotFound == false) { resp.success = true; return(resp); } var keys = await cdkeyRepository.Lookup(lookupRequest); resp.success = keys.Count() > 0; return(resp); }
public async Task <CDKeySuccessResponse> AssociateCDKeyToProfile([FromBody] CDKeyAssociateRequest request) { var profile = (await profileRepository.Lookup(request.profileLookup)).FirstOrDefault(); if (profile == null) { throw new NoSuchUserException(); } var game = (await gameRepository.Lookup(request.gameLookup)).FirstOrDefault(); if (game == null) { throw new ArgumentException(); } var profileCdKeyLookup = new CdKeyLookup(); profileCdKeyLookup.Gameid = game.Id; profileCdKeyLookup.profileLookup = request.profileLookup; var cdKeyData = await cdkeyRepository.LookupCDKeyFromProfile(profileCdKeyLookup); if (cdKeyData != null) { throw new CdKeyAlreadySetException(); } var cdkeyLookup = new CdKeyLookup(); cdkeyLookup.Cdkey = request.cdkey; cdkeyLookup.Gameid = game.Id; var resp = new CDKeySuccessResponse(); resp.success = await cdkeyRepository.AssociateCDKeyToProfile(cdkeyLookup, profile); return(resp); }