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("ایمیل وارد شده قبلا در سایت استفاده شده است. کلمه عبور خود را فراموش کرده اید؟"); MailChimpManager mc = new MailChimpManager("c754265c9000101952cc0d6b129c7505-us6"); MembersResult members = mc.GetAllMembersForList("ed06303ad4", "subscribed"); if (!members.Data.Any(m => m.Email == item.UserName)) errors.Add("شما در خبرنامه سومین عضو نیستید. به زودی عضویت برای عموم باز می شود، لطفا کمی شکیبا باشید."); return errors.Any() ? IdentityResult.Failed(errors.ToArray()) : IdentityResult.Success; } } }