Exemplo n.º 1
0
        public async Task SetStateAsync(byte[] strongKey, string clientPrivateKey, string clientPublicKey,
                                        string serverPublicKey,
                                        string acessToken)
        {
            var sessionState = await SessionStates.Find(new BsonDocument())
                               .FirstOrDefaultAsync();

            sessionState = new SessionState();
            bool isNewSession = false;

            if (sessionState == null)
            {
                sessionState = new SessionState();
                isNewSession = true;
            }

            sessionState.StrongKey        = strongKey;
            sessionState.ClientPrivateKey = clientPrivateKey;
            sessionState.ClientPublicKey  = clientPublicKey;
            sessionState.ServerPublicKey  = serverPublicKey;
            sessionState.AcessToken       = acessToken;

            if (isNewSession)
            {
                await SessionStates.InsertOneAsync(sessionState);
            }
            else
            {
                await SessionStates.UpdateOneAsync(new BsonDocument(),
                                                   Builders <SessionState> .Update.Set(x => x.StrongKey, strongKey)
                                                   .Set(x => x.ClientPrivateKey, clientPrivateKey)
                                                   .Set(x => x.ClientPublicKey, clientPublicKey)
                                                   .Set(x => x.ServerPublicKey, serverPublicKey)
                                                   .Set(x => x.AcessToken, acessToken));
            }
        }
Exemplo n.º 2
0
 public Task <SessionState> GetStateAsync()
 {
     return(SessionStates.Find(new BsonDocument())
            .FirstOrDefaultAsync());
 }