예제 #1
0
        public void SaveAllErrors(List <ErrorForSaveViewModel> errors)
        {
            var errorsForSave = errors.Where(er => er != null).Where(er => er.NewValue != er.OldValue).ToList();

            foreach (var error in errorsForSave)
            {
                var erroForSave = _chybaFactory.CreateChyba(error);
                _errorServiceRepository.SaveError(erroForSave);
            }

            var email = _pouzivatelServiceRepository.GetPouzivatelById(errors.First().UserId).email;

            _sendMailService.SendEmail(email, errorsForSave);
        }
예제 #2
0
        public async Task Execute(DTOPasswordRecovery dto)
        {
            if (dto is null)
            {
                throw new ArgumentNullException(nameof(dto));
            }

            var user = _userRepository.GetByEmail(dto.Email);

            if (user == null)
            {
                throw new ApplicationException("Usuário não encontrado.");
            }

            var newPassword       = Guid.NewGuid().ToString().Split('-')[0];
            var encryptedPassword = _encryption.GenerateCryptgraphy(newPassword);

            user.Password = encryptedPassword;

            var template = $@"
                   <p> Olá <b>{user.Name.ToUpper()}</b>     </p>
                   <p>Recebemos uma solicitação para redefinir sua senha do MyBuy.</p>
                   <p>Aqui está sua nova senha: <b>{newPassword}</b></p>
                   <p>Recomendamos que você troque essa senha pois ela é provisória.</p>
             

                   <p>Atenciosamente, equipe MyBuy.</p>";

            try
            {
                await _sendMailService.SendEmail(user.Email, template, "Envio de senha provisória", isHtml : true);

                _userRepository.Update(user);

                _unitOfWork.Save();
            }
            catch (Exception e)
            {
                throw new ApplicationException("Erro ao gerar nova senha.");
            }
        }