public async Task <Result> CreateUserAsync(User user) { if (!ValidateUser(user)) { return(new Result { StatusCode = HttpStatusCode.BadRequest, Message = "Unable to process User, one or more properties did not meet the requirements" }); } var usersTableEntity = await _repository.GetEntityAsync <UsersTableEntity>(StorageTablesNames.Users, user.Email, UsersApiConstants.UsersTableEntityPartitionKey); if (usersTableEntity != null) { return(new Result { StatusCode = HttpStatusCode.Conflict, Message = "This email account is already being used by another user" }); } usersTableEntity = new UsersTableEntity(user.Email) { Name = user.Name, MonthlySalary = user.MonthlySalary, MonthlyExpenses = user.MonthlyExpenses }; var result = await _repository.InsertOrReplaceEntityAsync(StorageTablesNames.Users, usersTableEntity); return(new Result { StatusCode = (HttpStatusCode)result }); }
public async Task CreateAsync(UsersStorageEntity entity) { await usersTable.CreateIfNotExistsAsync(); var tableEntity = new UsersTableEntity(entity); var insertOperation = TableOperation.Insert(tableEntity); await usersTable.ExecuteAsync(insertOperation); }
public async Task UpdateAsync(UsersStorageEntity entity) { await usersTable.CreateIfNotExistsAsync(); var tableEntity = new UsersTableEntity(entity); var updateOperation = TableOperation.Replace(tableEntity); await usersTable.ExecuteAsync(updateOperation); }
public async Task DeleteAsync(int id) { var tableEntity = new UsersTableEntity(id); var retrieveOperation = TableOperation.Retrieve <UsersTableEntity>(tableEntity.PartitionKey, tableEntity.RowKey); var result = await usersTable.ExecuteAsync(retrieveOperation); tableEntity = result.Result as UsersTableEntity; var deleteOperation = TableOperation.Delete(tableEntity); await usersTable.ExecuteAsync(deleteOperation); }
//TODO: Add when support for 2.1 in functions comes out //public async IAsyncEnumerable<UsersStorageEntity> GetAllAsync() //{ // TableContinuationToken token = null; // var query = new TableQuery<UsersTableEntity>(); // do // { // var result = await usersTable.ExecuteQuerySegmentedAsync(query, token); // foreach (var entity in result.Results) // { // yield return new UsersStorageEntity // { // DogeId = entity.DogeId, // Username = entity.Username, // Score = entity.Score // }; // } // token = result.ContinuationToken; // } while (token != null); //} public async Task <UsersStorageEntity> GetAsync(int id) { await usersTable.CreateIfNotExistsAsync(); var tableEntity = new UsersTableEntity(id); var retrieveOperation = TableOperation.Retrieve <UsersTableEntity>(tableEntity.PartitionKey, tableEntity.RowKey); var result = await usersTable.ExecuteAsync(retrieveOperation); tableEntity = result.Result as UsersTableEntity; return(new UsersStorageEntity { DogeId = tableEntity.DogeId, Username = tableEntity.Username, Score = tableEntity.Score }); }