public async Task CreateUserAsync(User user, string subjectFormat, string bodyFormat, string siteUrl)
        {
            // Create password & password hash
            var password = Password.GeneratePassword();
            var hashedAndSalt = Password.HashPassword(password);
            // Add it to the user object
            user.PasswordHash = hashedAndSalt.Item1;
            user.PasswordSalt = hashedAndSalt.Item2;

            await _dataService.CreateUserAsync(user).ConfigureAwait(false);

            string subject = subjectFormat;
            string body = String.Format(bodyFormat,
                user.FirstName, user.UserName, password, siteUrl);

            var mm = new MailMessage(_configurationService.MailFromAddress, user.EmailAddress, subject, body);
            await _mailService.SendMailAsync(mm).ConfigureAwait(false);
        }
 public async Task UpdateUserAsync(User user)
 {
     await _dataService.UpdateUserAsync(user).ConfigureAwait(false);
 }
        public async Task UpdateUserAsync(User user)
        {
            using (var ctx = GetContext())
            {
                var dbUser = await ctx.Users.FindAsync(user.Id).ConfigureAwait(false);

                dbUser.FirstName = user.FirstName;
                dbUser.LastName = user.LastName;
                dbUser.EmailAddress = user.EmailAddress;
                dbUser.IsActive = user.IsActive;
                dbUser.IsAdmin = user.IsAdmin;
                dbUser.Cultures = user.Cultures;

                await ctx.SaveChangesAsync().ConfigureAwait(false);
            }
        }
        public async Task ResetUserPasswordAsync(User user)
        {
            using (var ctx = GetContext())
            {
                var dbUser = await ctx.Users
                    .SingleAsync(u => u.Id == user.Id && u.EmailAddress == user.EmailAddress)
                    .ConfigureAwait(false);

                dbUser.PasswordHash = user.PasswordHash;
                dbUser.PasswordSalt = user.PasswordSalt;

                await ctx.SaveChangesAsync().ConfigureAwait(false);
            }
        }
 public async Task CreateUserAsync(User user)
 {
     using (var ctx = GetContext())
     {
         ctx.Users.Add(user);
         await ctx.SaveChangesAsync().ConfigureAwait(false);
     }
 }