public async Task <TableResult> CreateAccount(string userName, string password) { var partitionForName = AccountUtils.GetPartitionIndexForName(userName).ToString(); var insertOperation = TableOperation.Insert(new AccountEntity() { PartitionKey = partitionForName, RowKey = userName, Name = userName, HashedPassword = PasswordHasher.HashPassword(password !), });
public async Task <AccountEntity?> GetAccount( string userName, Action <TableQuery <AccountEntity> >?whereEnricherFunction = null) { var accountTable = await _accountTableHelper.GetTable(); var partitionForName = AccountUtils.GetPartitionIndexForName(userName).ToString(); var query = new TableQuery <AccountEntity>() .AndWhereEquals(nameof(AccountEntity.PartitionKey), partitionForName) .AndWhereEquals(nameof(AccountEntity.RowKey), userName); whereEnricherFunction?.Invoke(query); var accounts = await accountTable.ExecuteQueryFull(query); return(accounts.FirstOrDefault()); }
private async Task <List <WorkTimeEntity> > GetWorkTimes(string userName, DateTime?startDate, DateTime?endDate) { var workTimesTable = await _tableHelper.GetTable(); var partitionKey = AccountUtils.GetPartitionIndexForName(userName).ToString(); var query = new TableQuery <WorkTimeEntity>() .AndWhereEquals(nameof(WorkTimeEntity.PartitionKey), partitionKey) .AndWhereEquals(nameof(WorkTimeEntity.UserName), userName); if (startDate != null) { query = query.AndWhereGreaterEqual(nameof(WorkTimeEntity.RowKey), startDate.Value.ToStorageSafeShortDateString()); } if (endDate != null) { query = query.AndWhereLessEqual(nameof(WorkTimeEntity.RowKey), endDate.Value.ToStorageSafeShortDateString()); } return(await workTimesTable.ExecuteQueryFull(query)); }
private async Task <WorkTimeEntity> GetWorkTime(string userName, DateTime timeStamp) { var workTimeTable = await _tableHelper.GetTable(); var partitionKey = AccountUtils.GetPartitionIndexForName(userName).ToString(); var rowKey = timeStamp.Date.ToStorageSafeShortDateString(); var query = new TableQuery <WorkTimeEntity>() .AndWhereEquals(nameof(WorkTimeEntity.PartitionKey), partitionKey) .AndWhereEquals(nameof(WorkTimeEntity.RowKey), rowKey) .AndWhereEquals(nameof(WorkTimeEntity.UserName), userName); var workTime = (await workTimeTable.ExecuteQueryFull(query)).FirstOrDefault() ?? new WorkTimeEntity() { PartitionKey = partitionKey, RowKey = rowKey, StartTimes = new List <DateTime>(), EndTimes = new List <DateTime>(), UserName = userName, Timestamp = timeStamp, }; return(workTime); }