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 { private readonly UserManager manager; public SevominUserValidator() { manager = new UserManager(new UserStore(SevominDbContext.Current)); } public async Task ValidateAsync(User item) { var errors = new List(); 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() { new MailChimp.Helper.EmailParameter() { Email = item.UserName } }); if (a.Data.Count == 0) errors.Add("شما در مرحله اولیه در خبرنامه سومین عضو نشده اید. به زودی عضویت برای عموم باز می شود، لطفا در خبرنامه عضو شوید."); } return errors.Any() ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success; } } }