static public DOLoginResult MapTo(this SDKAccount data) { return(new DOLoginResult { SDKId = data.SDKId, PlayerId = data.PlayerId }); }
private SDKAccount CreateNewSDKAccount(RequestSDKLogin request) { SDKAccount account = new SDKAccount { Id = Guid.NewGuid(), SDKId = request.Id, UserName = request.User, }; return(account); }
public async Task <BaseResponse <DOLoginResult> > SDKLogin(RequestSDKLogin request) { BaseResponse <DOLoginResult> response = CreateResponse <DOLoginResult>(); try { //check user bool userIsExist = await IsExistAsync(DM_SDK_ACCOUNT, request.User); if (!userIsExist) { //check at mongoDB IMongoCollection <SDKAccount> collectionSDKAccount = MongoGetCollection <SDKAccount>(); SDKAccount account = collectionSDKAccount.Find(document => document.UserName == request.User).FirstOrDefault(); if (account == null) { account = CreateNewSDKAccount(request); } IMongoCollection <Player> collectionPlayer = MongoGetCollection <Player>(); Player player = collectionPlayer.Find(doc => doc.Name == account.UserName).FirstOrDefault(); if (player == null) { player = _playerService.CreatePlayer(account); } account.PlayerId = player.Id; SaveAccount(account); } SDKAccount checkAccount = GetObject <SDKAccount>(DM_SDK_ACCOUNT, request.User); if (!checkAccount.SDKId.Equals(request.Id)) { response.OK = false; response.Message = "SDK ID không trùng khớp"; } else { response.OK = true; response.Message = "Đăng nhập thành công"; response.Data = checkAccount.MapTo(); checkAccount.LastLogin = DateTime.Now; checkAccount.LastLogout = null; SaveAccount(checkAccount); CheckOnline(request); } } catch (Exception e) { ExceptionHandle(response, e); } return(response); }
private void SaveAccount(SDKAccount account) { IMongoCollection <SDKAccount> collection = MongoGetCollection <SDKAccount>(); SDKAccount old = collection.Find(acc => acc.SDKId == account.SDKId).FirstOrDefault(); if (old == null) { collection.InsertOneAsync(account); } else { collection.ReplaceOneAsync(acc => acc.SDKId == account.SDKId, account); } SetObject(DM_SDK_ACCOUNT, account.UserName, account); }
public Player CreatePlayer(SDKAccount account) { DORankDefinition def = _gameConfigService.GetRank(GameConfigService.START_SCORE); Player player = new Player { Id = Guid.NewGuid(), SDKId = account.SDKId, Name = account.UserName, Score = GameConfigService.START_SCORE, Coin = GameConfigService.START_COIN, RankLabel = def.RankLabel, RankIndex = def.RankIndex, StarIndex = def.StarIndex, TotalDraw = 0, TotalGame = 0, TotalLose = 0, TotalWin = 0, }; SavePlayer(player); return(player); }