public async Task Seed() { // Don't change the order of the calls await SeedUsers(); await SeedStores(); await SeedCategories(); await SeedProducts(); await SeedProductInStores(); await SeedStoreHasCategories(); // Commit changes await db.SaveChangesAsync(); }
public async Task <Result> Handle(Command request, CancellationToken cancellationToken) { // Verify if there's any user with the same e-mail var userSameEmail = await db.Users .Where(x => x.DeletedAt == null) .FirstOrDefaultAsync(x => x.Email.Equals(request.Email, StringComparison.InvariantCultureIgnoreCase)); if (userSameEmail != null) { throw new ConflictException(new ErrorInformation { Message = "User with same e-mail already exists" }); } // Create password information var salt = Guid.NewGuid().ToByteArray(); var hash = CoffeeHasher.HashWithSalt(request.Password, salt); // Create the user var user = new User { Id = Guid.NewGuid(), Name = request.Name, Email = request.Email, PasswordSalt = salt, PasswordHash = hash, // Metadata CreatedAt = DateTime.Now, }; // Save the user to database await db.Users.AddAsync(user); await db.SaveChangesAsync(); // Return result return(new Result { Id = user.Id }); }