public async Task RequestPasswordResetAsync(ResetPasswordModel model) { model.RejectInvalid(); var user = await _userRepository.GetAll().SingleOrDefaultAsync(_ => _.UserName == model.Username); user.RejectNotFound(); if (user.PasswordSalt == null) { user.PasswordSalt = _cryptographyService.CreateSalt(); } // reset code is 6 digit number var resetCode = new Random(DateTime.UtcNow.Second).Next(100000, 1000000).ToString(); user.PasswordResetCode = _cryptographyService.CreateHash(resetCode, user.PasswordSalt); await _database.SaveAsync(); // var placeholders = resetCode.ToPlaceholderDictionary(Placeholder.SECURITY_CODE); var succeded = await _emailService.SendEmailAsync(user.Email, EmailTemplateType.RequestPasswordReset, null); if (!succeded) { throw new InvalidModelException(); } }
public async Task RemoveAllAsync(string subjectId, string clientId) { var grants = _entityRepository .AsReadOnly() .Where(s => s.SubjectId == subjectId && s.ClientId == clientId); foreach (var grant in grants) { _entityRepository.Delete(grant); } await _database.SaveAsync(); }
public async virtual Task <TModel> CreateAsync(TModelData model) { model.RejectInvalid(); var entity = new TEntity(); UpdateEntity(entity, model); _entityRepository.Insert(entity); await _database.SaveAsync(); return(Mapper.Map <TModel>(entity)); }
public async Task <User> CreateAsync(UserBase model) { model.RejectInvalid(); await AdditionalValidationAsync(model); var entity = new Entities.User(); UpdateEntity(entity, model); _userRepository.Insert(entity); await _database.SaveAsync(); return(Mapper.Map <Entities.User, User>(entity)); }
public async Task <bool> SaveAppUser(Entities.User user, string newPasswordToHash = null) { bool success = true; if (!String.IsNullOrEmpty(newPasswordToHash)) { user.PasswordSalt = CryptographyService.PasswordSaltInBase64(); user.PasswordHash = CryptographyService.PasswordToHashBase64(newPasswordToHash, user.PasswordSalt); } try { var entity = await _entityRepository .AsReadOnly() .SingleOrDefaultAsync(s => s.Id == user.Id); if (entity == null) { entity = user; _entityRepository.Insert(entity); } await _database.SaveAsync(); } catch { success = false; } return(success); }
public void Seed() { SeedCurrencies(); SeedRoles(); SeedUsers(); SeedEmailTemplates(); //SeedSettings(); _database.SaveAsync().Wait(); }