예제 #1
0
        public UserDataProvider(            
            IUserRepository users,
            IUnitOfWork unitOfWork,
            ITransformerService transformerService)
        {
            users.NotNull(nameof(users));
            unitOfWork.NotNull(nameof(unitOfWork));
            transformerService.NotNull(nameof(transformerService));

            _users = users;
            _unitOfWork = unitOfWork;
            _transformerService = transformerService;
        }
예제 #2
0
 /// <summary>
 /// Use custom ITransformer
 /// </summary>
 /// <param name="emailTemplateProvider"></param>
 /// <param name="transformer"></param>
 public MailMessageProvider(IEnumerable <IEmailTemplateProvider> emailTemplateProvider, ITransformerService transformer)
 {
     _emailTemplateProvider = emailTemplateProvider.ToList();
     this._transformer      = transformer ?? throw new ArgumentNullException(nameof(transformer));
 }
예제 #3
0
 /// <summary>
 /// Use custom ITransformer
 /// </summary>
 /// <param name="emailTemplateProvider"></param>
 /// <param name="transformer"></param>
 protected internal MailMessageProvider(IEmailTemplateProvider emailTemplateProvider, ITransformerService transformer)
     : this(new[] { emailTemplateProvider }, transformer)
 {
 }
예제 #4
0
        internal static async Task FromAsync(this MailAddressCollection @this, string emailTemplates, ITransformerService transformer, params object[] transformData)
        {
            if (emailTemplates == null)
            {
                return;
            }

            foreach (var s in emailTemplates.SplitBySeparator())
            {
                if (string.IsNullOrWhiteSpace(s))
                {
                    continue;
                }

                if (s.IsEmail())
                {
                    @this.Add(s);
                    continue;
                }

                var e = await transformer.TransformAsync(s, transformData).ConfigureAwait(false);

                if (string.IsNullOrWhiteSpace(e))
                {
                    continue;
                }

                @this.Add(e);
            }
        }