public async Task <UserRole> CreateRole(ulong roleId, string name) { var userRole = new UserRole() { RoleId = roleId, Name = name }; await _dbContext.AddAsync(userRole); await _dbContext.SaveChangesAsync(); return(userRole); }
public async Task <AwardMessage> CreateAwardMessage( ulong originalMessageId, ulong originalChannelId, ulong awardedMessageId, ulong awardChannelId, ulong userId, uint awardCount) { var awardMessage = new AwardMessage { OriginalMessageId = originalMessageId, OriginalChannelId = originalChannelId, UserId = userId, AwardedMessageId = awardedMessageId, AwardChannelId = awardChannelId, AwardCount = awardCount, DateTime = DateTime.UtcNow }; await _dbContext.AddAsync(awardMessage); await _dbContext.SaveChangesAsync(); return(awardMessage); }
private async Task <UserScore> FindOrCreateUser(ulong userID) { var existingUser = await dbContext.UserScores.FindAsync(userID); if (existingUser == null) { // Optimistic concurrency: Concurrent creations result in exception since user ID is unique await dbContext.AddAsync(new UserScore(userID)); await dbContext.SaveChangesAsync(); // Reload new user from database to be in correct context existingUser = await dbContext.UserScores.FindAsync(userID); if (existingUser == null) { throw new Exception($"User with ID {userID} should have been created but database returned null"); } } return(existingUser); }