Beispiel #1
0
        private bool IsMemberExists(CustomerImport client)
        {
            CustomerImport customerImport = null;

            client.HandleCustomer();

            if (client.Email.IsValidEmail())
            {
                customerImport = customerImportRepository.GetByEmail(client.Email).FirstOrDefault();
            }

            if ((customerImport.IsNull() || customerImport.AccountCode.IsEmpty()) && client.DisplayDocument.IsValidCPF())
            {
                customerImport = customerImportRepository.GetByCPF(client.DisplayDocument).FirstOrDefault();
            }

            if ((customerImport.IsNull() || customerImport.AccountCode.IsEmpty()) && client.DisplayDocument.IsValidCNPJ())
            {
                customerImport = customerImportRepository.GetByCNPJ(client.DisplayDocument).FirstOrDefault();
            }

            if (!customerImport.IsNull() && !customerImport.AccountCode.IsEmpty())
            {
                return(true);
            }

            var account = new Account()
            {
                Email    = client.Email,
                Document = client.DisplayDocument,
                Login    = client.Email
            };

            return(accountRepository.IsMemberExists(account));;
        }
Beispiel #2
0
        public bool Exists(string username, Guid storeCode)
        {
            CustomerImport customerImport = Get(username, storeCode);

            if (!customerImport.IsNull() && !customerImport.AccountCode.IsEmpty())
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #3
0
        public override string GenerateResetPasswordToken(string email, Guid clientId, string urlBack = "", int emailTemplateCode = 0)
        {
            if (email.IsNullOrWhiteSpace())
            {
                throw new ArgumentException("E-mail não informado");
            }

            ApplicationStore appSto;
            Account          account;
            CustomerImport   customerImport = null;
            string           _tokenCode     = string.Empty;

            using (var transaction = Connection.BeginTransaction())
            {
                try
                {
                    appSto = applicationStoreRepository.GetByClientId(clientId);
                    var accounts = accountRepository.Get(email, appSto, true);

                    accountService.lockedUpMemberPolicy = lockedUpMemberPolicy;
                    accountService.lockMemberPolicy     = lockMemberPolicy;
                    accountService.passwordPolicy       = passwordPolicy;

                    account = accountService.Authenticate(accounts, appSto, false);

                    if (account != null)
                    {
                        var resetPasswordTokenService = resetPasswordTokenFactory.GetResetPasswordTokenService(account);

                        resetPasswordTokenService.lockedUpMemberPolicy = lockedUpMemberPolicy;

                        var token = resetPasswordTokenService.GenerateResetPasswordToken(account, appSto, urlBack);

                        _tokenCode = token.Code.EncodeURIComponent();

                        svcEmail.SendPasswordRecoveryEmailAsync(account, appSto.Store, _tokenCode, token.UrlBack, emailTemplateCode);
                    }
                    else
                    {
                        customerImport = customerImportService.Get(email, appSto.Store.Code);

                        if (customerImport != null)
                        {
                            var resetPasswordTokenService = resetPasswordTokenFactory.GetResetPasswordTokenService(customerImport);

                            var token = resetPasswordTokenService.GenerateResetPasswordToken(customerImport, appSto, urlBack);

                            _tokenCode = token.Code.EncodeURIComponent();

                            customerImport.HandleCustomer();
                            svcEmail.SendPasswordRecoveryEmailAsync(customerImport, appSto.Store, _tokenCode, urlBack, emailTemplateCode);
                        }
                    }

                    transaction.Commit();
                }
                catch
                {
                    transaction.Rollback();
                    throw;
                }
            }

            if (!appSto.IsNull() && (!account.IsNull() || !customerImport.IsNull()))
            {
                using (var transaction = Connection.BeginTransaction())
                {
                    try
                    {
                        var code = !account.IsNull() ? account.Code : customerImport.AccountCode;

                        passwordLogRepository.Save(new PasswordLog(code, PasswordEventLog.RequestRecovery, appSto.Store.Code));

                        transaction.Commit();
                    }
                    catch
                    {
                        transaction.Rollback();
                    }
                }
            }

            return(_tokenCode);
        }