public void SaveAccessKey(AccessKey accessKey, TObjectState state)
 {
     if (accessKey.OrganisationID == 0)
     {
         accessKey.OrganisationID = DataAccessFactory.AccessKeys.GenerateOrganisationID();
     }
     if ((state == TObjectState.Add) && string.IsNullOrEmpty(accessKey.Key))
     {
         byte[] secretkey = new Byte[64];
         System.Security.Cryptography.RNGCryptoServiceProvider rng = new System.Security.Cryptography.RNGCryptoServiceProvider();
         Model.AccessKey existingTenantAccessKey;
         do
         {
             rng.GetBytes(secretkey);
             accessKey.Key = StringUtils.Encode(secretkey);
             existingTenantAccessKey = DataAccessFactory.AccessKeys.GetAccessKey(accessKey.Key);
         } while (existingTenantAccessKey != null);
         rng.GetBytes(secretkey);
         accessKey.Secret = StringUtils.Encode(secretkey);
     }
     DataAccessFactory.AccessKeys.SaveAccessKey(accessKey, state);
 }
 public void SaveAccessKey(AccessKey accessKey, TObjectState state)
 {
     IMongoDatabase database = GetDatabase(DATABASE_NAME, true);
     IMongoCollection<BsonDocument> collection = database.GetCollection<BsonDocument>("AccessKey");
     FilterDefinition<BsonDocument> query = Builders<BsonDocument>.Filter.Eq("_id", accessKey.Key);
     if ((state == TObjectState.Add) || (state == TObjectState.Update))
     {
         BsonDocument doc = new BsonDocument();
         BsonHelper.SetValue(doc, "_id", accessKey.Key);
         BsonHelper.SetValue(doc, "OrganisationID", accessKey.OrganisationID);
         BsonHelper.SetValue(doc, "Name", accessKey.Name);
         BsonHelper.SetValue(doc, "Secret", accessKey.Secret);
         UpdateOptions options = new UpdateOptions();
         options.IsUpsert = true;
         collection.ReplaceOne(query, doc, options);
     }
     else if (state == TObjectState.Delete)
     {
         collection.DeleteOne(query);
     }
     BroadcastTableChange("AccessKey", accessKey.Key);
 }
 private AccessKey LoadAccessKey(BsonDocument item)
 {
     AccessKey result = new AccessKey();
     result.Key = BsonHelper.GetString(item, "_id");
     result.OrganisationID = BsonHelper.GetInt32(item, "OrganisationID");
     result.Name = BsonHelper.GetString(item, "Name");
     result.Secret = BsonHelper.GetString(item, "Secret");
     return result;
 }