Beispiel #1
0
        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();
        }
Beispiel #3
0
        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));
        }
Beispiel #4
0
        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);
        }
Beispiel #6
0
        public void Seed()
        {
            SeedCurrencies();
            SeedRoles();
            SeedUsers();
            SeedEmailTemplates();
            //SeedSettings();

            _database.SaveAsync().Wait();
        }