|
|
- using MailChimp;
- using MailChimp.Lists;
- using Microsoft.AspNet.Identity;
- using Microsoft.AspNet.Identity.EntityFramework;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
-
- namespace Sevomin.Models.Helpers
- {
- public class SevominUserValidator : IIdentityValidator<User>
- {
- private readonly UserManager<User> manager;
-
- public SevominUserValidator()
- {
- manager = new UserManager<User>(new UserStore<User>(SevominDbContext.Current));
- }
-
- public async Task<IdentityResult> ValidateAsync(User item)
- {
- var errors = new List<string>();
-
- if (string.IsNullOrWhiteSpace(item.UserName))
- errors.Add("نام کاربری نمی تواند خالی باشد. لطفا ایمیل خود را وارد نمایید.");
- else if (await (manager.FindByNameAsync(item.UserName)) != null)
- errors.Add("ایمیل وارد شده قبلا در سایت استفاده شده است. کلمه عبور خود را فراموش کرده اید؟");
-
- if (item is Dovomin)
- {
- MailChimpManager mc = new MailChimpManager("c754265c9000101952cc0d6b129c7505-us6");
- //MembersResult members = mc.GetAllMembersForList("0b009d31b7", "subscribed");
- var a = mc.GetMemberInfo("0b009d31b7", new List<MailChimp.Helper.EmailParameter>() { new MailChimp.Helper.EmailParameter() { Email = item.UserName } });
- if (a.Data.Count == 0)
- errors.Add("شما در مرحله اولیه در خبرنامه سومین عضو نشده اید. به زودی عضویت برای عموم باز می شود، لطفا در خبرنامه عضو شوید.");
- }
- return errors.Any() ?
- IdentityResult.Failed(errors.ToArray())
- : IdentityResult.Success;
- }
- }
-
- }
|