public async Task <InfraVersion> GetInfraVersionAsync(string stage, string infraName) { // Create a retrieve operation that takes the stage (patition key) and infraName (row). var retrieveOperation = TableOperation.Retrieve <InfraVersion>(stage, infraName); // Execute the retrieve operation. TableResult retrievedResult = await _table.ExecuteAsync(retrieveOperation); // value doesn't exist in db if (retrievedResult.Result == null) { // create the row, set version to zero var newRowValue = new InfraVersion(stage, infraName); newRowValue.Version = 0; // add to db await AddInfraVersionAsync(newRowValue); // set to result so the newly added row will get returned retrievedResult.Result = newRowValue; } return((InfraVersion)retrievedResult.Result); }
private async Task AddInfraVersionAsync(InfraVersion version) { var insertOperation = TableOperation.InsertOrMerge(version); await _table.ExecuteAsync(insertOperation); }