public static StoredSecret FromTable(CloudTable table, string name, int? version) { if (!version.HasValue) { var exists = Cloud.GetCoud().GetObject<StoredSecret>(table, Cloud.GetCoud().ToKey(name)); version = exists.Count(); } var reader = new StoredSecret(new StoredSecret() { Name = name, Version = version.Value}); return Cloud.GetCoud().GetObject<StoredSecret>(table, reader.PartitionKey, reader.RowKey); }
/// <summary> /// Creates a secret /// </summary> /// <param name="secretName">A secret</param> /// <param name="secret">More data about the secret</param> /// <returns>The saved secret</returns> public ISecret CreateSecret(string secretName, ISecret secret) { secret.Name = secretName; var store = new StoredSecret(secret); var table = _cloud.GetTable(Table, _connectionString); var exists = GetAllSecrets(table, store); store.Version = exists.Count() + 1; store = new StoredSecret(store); return _cloud.SetObject(table, store); }
/// <summary> /// Get all partition keys /// </summary> /// <param name="secret">Gets all the secrets</param> /// <returns></returns> private IEnumerable<StoredSecret> GetAllSecrets(CloudTable table, StoredSecret secret) { return _cloud.GetObject<StoredSecret>(table, secret.PartitionKey); }