public async Task <bool> RemoveCharacter(string userID, string charID) { var res = await getCharacterData.GetCharacterData(charID); if (res.userID == userID) { characterSessionManager.LogoutUser(userID); var user = await getCharacterData.GetUserData(res.userID); if (user != null) { user.userData.characterCreationLimit++; var delRes = await deleteCharacter.DeleteCharacter(charID, user); if (!delRes) { user.userData.characterCreationLimit--; } else { eventManager.InvokeEvent(UserServiceEvents.CHARACTER_DELETE_EVENT, charID, userID); } return(delRes); } return(false); } else { return(false); } }
public async Task <CachedCharacter> GetCharacter(string charID) { if (characters.TryGetValue(charID, out var character)) { return(character); } else { var res = AddToCache(charID, await characterDataGetter.GetCharacterData(charID)); _ = EvictFromCache(charID); return(res); } }