/// <summary> /// Check existence in database user with facebook id /// </summary> public bool ExistsUser(FacebookId inFacebook) { string fbId = inFacebook.value; var query = Query <DbUserLogin> .EQ(user => user.facebookId, fbId); return(UserLogins.Count(query) > 0); }
public DbUserLogin GetUser(FacebookId fbId) { string facebookId = fbId.value; var query = Query <DbUserLogin> .EQ(user => user.facebookId, facebookId); return(UserLogins.FindOne(query)); }
public FullUserAuth(string login, string gameRef, string facebookId, string vkontakteId, string deviceId) { m_LoginGameRef = new LoginGameRef(login, gameRef); m_Facebook = new FacebookId(facebookId); m_Vkontakte = new VkontakteId(vkontakteId); m_DeviceId = new DeviceId(deviceId); }
private OperationResponse LoginViaFacebook(LoginOperationRequest operation) { FacebookId facebookId = new FacebookId(operation.facebookId); DbUserLogin user = application.GetUser(facebookId); if (user == null) { user = application.DbUserLogins.CreateUser(facebookId); } string platform = GetPlatform(operation); LoginOperationResponse response = new LoginOperationResponse { facebookId = user.facebookId, GameRefId = user.gameRef, Login = user.login, returnCode = (int)LoginReturnCode.Ok, vkontakteId = user.vkontakteId, method = (byte)LoginMethod.facebook, deviceId = string.Empty }; AddUserToCollection(user, platform); return(new OperationResponse(operation.OperationRequest.OperationCode, response)); }
public DbUserLogin CreateUser(FacebookId facebookId) { DbUserLogin databaseUser = new DbUserLogin { creationTime = CommonUtils.SecondsFrom1970(), email = string.Empty, gameRef = Guid.NewGuid().ToString(), login = facebookId.value, password = facebookId.value, facebookId = facebookId.value, vkontakteId = string.Empty, nebulaCredits = NEBULA_CREDITS_AT_START, steamId = string.Empty, deviceId = string.Empty }; var result = UserLogins.Save(databaseUser); return(databaseUser); }
public DbUserLogin CreateUser(LoginAuth auth, Email email, FacebookId fbId, VkontakteId vkId) { DbUserLogin dbUser = new DbUserLogin { creationTime = CommonUtils.SecondsFrom1970(), email = email.value, gameRef = Guid.NewGuid().ToString(), login = auth.login, password = auth.password, facebookId = fbId.value, vkontakteId = vkId.value, nebulaCredits = NEBULA_CREDITS_AT_START, steamId = string.Empty, deviceId = string.Empty }; var result = UserLogins.Save(dbUser); return(dbUser); }
public override OperationResponse Handle(OperationRequest request, SendParameters sendParameters) { RegisterUserRequest operation = new RegisterUserRequest(peer.Protocol, request); if (!operation.IsValid) { return(new OperationResponse(request.OperationCode) { ReturnCode = (short)ReturnCode.InvalidOperationParameter, DebugMessage = operation.GetErrorMessage() }); } operation.Prepare(); if (!mLoginUtils.IsLoginLengthValid(operation.login)) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.LoginVeryShort }; return(new OperationResponse(request.OperationCode, responseObject)); } string password = StringChiper.Decrypt(operation.encryptedPassword); if (!mLoginUtils.IsPasswordLengthValid(password)) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.PasswordVeryShort }; return(new OperationResponse(request.OperationCode, responseObject)); } if (!mLoginUtils.IsLoginCharactersValid(operation.login)) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.LoginHasInvalidCharacters }; return(new OperationResponse(request.OperationCode, responseObject)); } if (!mLoginUtils.IsPasswordCharactersValid(password)) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.PasswordHasInvalidCharacters }; return(new OperationResponse(request.OperationCode, responseObject)); } var emailChecker = new RegexUtilities(); if (!emailChecker.IsValidEmail(operation.email)) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.EmailInvalid }; return(new OperationResponse(request.OperationCode, responseObject)); } var database = application.DbUserLogins; if (database.ExistsUser(new LoginId(operation.login))) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.UserWithSameLoginAlreadyExists }; return(new OperationResponse(request.OperationCode, responseObject)); } var emailUser = database.GetUser(new Email(operation.email)); if (emailUser != null) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)LoginReturnCode.UserWithSuchEmailAlreadyExists }; return(new OperationResponse(request.OperationCode, responseObject)); } LoginReturnCode code = LoginReturnCode.Ok; LoginAuth loginAuth = new LoginAuth(operation.login, password); Email email = new Email(operation.email); FacebookId fbId = new FacebookId(operation.facebookId); VkontakteId vkId = new VkontakteId(operation.vkontakteId); var dbUser = database.CreateUser(loginAuth, email, fbId, vkId); FullUserAuth fullAuth = new FullUserAuth(loginAuth.login, dbUser.gameRef, fbId.value, vkId.value, string.Empty); string platform = string.Empty; if (operation.platform != null) { platform = operation.platform; } (peer as LoginClientPeer).SetLogin(new LoginId(loginAuth.login)); application.LogedInUsers.OnUserLoggedIn(fullAuth, peer as LoginClientPeer); application.stats.OnUserLoggedIn(fullAuth, platform); if (code != LoginReturnCode.Ok) { RegisterUserResponse responseObject = new RegisterUserResponse { login = operation.login, gameRef = string.Empty, returnCode = (int)code }; return(new OperationResponse(request.OperationCode, responseObject)); } RegisterUserResponse successResponseObject = new RegisterUserResponse { gameRef = dbUser.gameRef, login = dbUser.login, returnCode = (int)code }; return(new OperationResponse(request.OperationCode, successResponseObject)); }
public DbUserLogin GetUser(FacebookId fbId) { return(DbUserLogins.GetUser(fbId)); }