Example #1
0
        public async Task <IdentityMessageModel> GenerateRecoveryEmail(UserLanguageEnum letterLanguage, string email,
                                                                       string verificationToken, FrontClientType frontClient)
        {
            string mainUrl = "";

            if (frontClient == FrontClientType.AdminPanel)
            {
                mainUrl = _baseAdminUrl;
            }
            else if (frontClient == FrontClientType.WebClient)
            {
                mainUrl = _baseClientUrl;
            }
            else
            {
                throw new Exception("Unsupported front_client_type");
            }

            var confirmationLink = $"{mainUrl}/account/recovery_password/{HttpUtility.UrlEncode(verificationToken)}/{HttpUtility.UrlEncode(email)}";
            var subject          = _emailContentBuilderManager.GetSubject(letterLanguage, LetterTypeEnum.RecoveryPassword);
            var letterParams     = new LetterTextParamsModel()
            {
                LetterLanguage = letterLanguage,
                TypeContact    = ContactTypeEnum.Email,
                LetterType     = LetterTypeEnum.RecoveryPassword,
                Params         = new Dictionary <string, string>()
                {
                    { "contact", email },
                    { "confirmationLink", confirmationLink }
                }
            };

            return(await BuildMessageResultModelAsync(letterParams, email, subject));
        }
Example #2
0
        public async Task <IdentityMessageModel> GenerateVerificationSms(UserLanguageEnum letterLanguage, string phone, string verificationToken)
        {
            var subject      = _smsContentBuilderManager.GetSubject(letterLanguage, LetterTypeEnum.ContactVerification);
            var letterParams = new LetterTextParamsModel()
            {
                LetterLanguage = letterLanguage,
                LetterType     = LetterTypeEnum.ContactVerification,
                TypeContact    = ContactTypeEnum.Phone,
                Params         = new Dictionary <string, string>()
                {
                    { "contact", phone },
                    { "confirmationLink", verificationToken }
                }
            };

            return(await BuildMessageResultModelAsync(letterParams, phone, subject));
        }
Example #3
0
        public async Task <IdentityMessageModel> GenerateSuppotEmail(UserLanguageEnum letterLanguage, string email, string question,
                                                                     string answer)
        {
            var subject      = _emailContentBuilderManager.GetSubject(letterLanguage, LetterTypeEnum.SupportService);
            var letterParams = new LetterTextParamsModel()
            {
                LetterLanguage = letterLanguage,
                TypeContact    = ContactTypeEnum.Email,
                LetterType     = LetterTypeEnum.SupportService,
                Params         = new Dictionary <string, string>()
                {
                    { "question", question },
                    { "answer", answer }
                }
            };

            return(await BuildMessageResultModelAsync(letterParams, email, subject));
        }
Example #4
0
        // Defines email's subject
        public virtual string GetSubject(UserLanguageEnum letterLanguage, LetterTypeEnum letterType)
        {
            if (letterLanguage == UserLanguageEnum.Russian && letterType == LetterTypeEnum.RecoveryPassword)
            {
                return("Подтверждение восстановления пароля");
            }
            if (letterLanguage == UserLanguageEnum.Ukrainian && letterType == LetterTypeEnum.RecoveryPassword)
            {
                return("Підтвердження відновлення пароля");
            }
            if (letterLanguage == UserLanguageEnum.English && letterType == LetterTypeEnum.RecoveryPassword)
            {
                return("Password recovery confirmation");
            }

            if (letterLanguage == UserLanguageEnum.Russian && letterType == LetterTypeEnum.ContactVerification)
            {
                return("Проверка адреса электронной почты");
            }
            if (letterLanguage == UserLanguageEnum.Ukrainian && letterType == LetterTypeEnum.ContactVerification)
            {
                return("Перевірка електронної адреси");
            }
            if (letterLanguage == UserLanguageEnum.English && letterType == LetterTypeEnum.ContactVerification)
            {
                return("Verification of email address");
            }

            if (letterLanguage == UserLanguageEnum.Russian && letterType == LetterTypeEnum.SupportService)
            {
                return("Служба поддержки (Название магазина)");
            }
            if (letterLanguage == UserLanguageEnum.Ukrainian && letterType == LetterTypeEnum.SupportService)
            {
                return("Служба підтримки (Назва магазину)");
            }
            if (letterLanguage == UserLanguageEnum.English && letterType == LetterTypeEnum.SupportService)
            {
                return("(My shop title) support service");
            }

            Log.Current.Error("Unsupported letterType");
            return("(Shop title)");
        }
Example #5
0
        public async Task <IdentityMessageModel> GenerateVerificationEmail(UserLanguageEnum letterLanguage, string email,
                                                                           string verificationToken)
        {
            var confirmationLink = $"{_baseClientUrl}/account/confirm_email/{HttpUtility.UrlEncode(verificationToken)}/{HttpUtility.UrlEncode(email)}";
            var subject          = _emailContentBuilderManager.GetSubject(letterLanguage, LetterTypeEnum.ContactVerification);
            var letterParams     = new LetterTextParamsModel()
            {
                LetterLanguage = letterLanguage,
                TypeContact    = ContactTypeEnum.Email,
                LetterType     = LetterTypeEnum.ContactVerification,
                Params         = new Dictionary <string, string>()
                {
                    { "contact", email },
                    { "confirmationLink", confirmationLink }
                }
            };

            return(await BuildMessageResultModelAsync(letterParams, email, subject));
        }