public override void Initialize() { base.Initialize(); UserConnection = Context.UserConnection; TemplateRepository = new DCTemplateRepository <DCTemplateModel>(UserConnection); TemplateFactory = new CESMailingTemplateFactory(); ServiceApi = Context.ServiceApi; Validator = new BulkEmailValidator(UserConnection, ServiceApi); BulkEmailEventLogger = new BulkEmailEventLogger(UserConnection); AudienceDataSourceFactory = new BulkEmailAudienceDataSourceFactory(); BulkEmailMacroParser = GetMacroParser(); }
public override void Initialize() { base.Initialize(); UserConnection = Context.UserConnection; TemplateRepository = new DCTemplateRepository <DCTemplateModel>(UserConnection); TemplateFactory = new CESMailingTemplateFactory(); ServiceApi = Context.ServiceApi; Validator = new BulkEmailValidator(UserConnection, ServiceApi); BulkEmailEventLogger = new BulkEmailEventLogger(UserConnection); AudienceDataSourceFactory = new BulkEmailAudienceDataSourceFactory(); BulkEmailMacroParser = GetMacroParser(); InitializeAudienceDataSource(Context.BulkEmailEntity.PrimaryColumnValue); var validationBuilder = new BulkEmailRecipientValidatorBuilder(ServiceApi); RecipientsValidator = new BulkEmailRecipientValidator(validationBuilder); }
private void ResolveRecipientsReplica(Guid bulkEmailId) { var dcDataSource = _audienceDataSource as IDCAudienceDataSource; _audienceDataSource.PageNumber = 0; var dcStrategyResolver = new DCStrategyResolver(UserConnection); var templateRepository = new DCTemplateRepository <DCTemplateModel>(UserConnection); var repositoryOptions = new DCRepositoryReadOptions <DCTemplateModel, DCReplicaModel> { TemplateReadOptions = DCTemplateReadOption.None }; var template = templateRepository.ReadByRecordId(bulkEmailId, repositoryOptions); if (template == null) { throw new NullReferenceException($"Template for BulkEmail with id {bulkEmailId} not found"); } while (true) { _audienceDataSource.PageNumber++; var audienceSelect = dcDataSource.GetRecipientsIdsSelectQuery(Guid.Empty); var isAudienceSelectEmpty = IsRecipientsSelectQueryEmpty(audienceSelect); if (isAudienceSelectEmpty) { break; } var segmentationContext = new DCSegmentationContext(UserConnection) { Template = template, SourceAudience = dcDataSource.GetRecipientsIdsSelectQuery(Guid.Empty), SourceAlias = "MandrillDeliveryPackage", EntityIdSourceColumn = "RecipientUId", SourceColumnForFilter = "ContactId", TargetTable = "BulkEmailRecipientReplica", EntityIdTargetColumn = "RecipientId", ReplicaIdTargetColumn = "DCReplicaId", RecordIdTargetColumn = "BulkEmailId" }; dcStrategyResolver.SegmentAudience(segmentationContext); } }
/// <summary> /// Creates instance of <see cref="DCTemplateRepository<DCTemplateModel>"/>. /// </summary> /// <param name="userConnection"></param> /// <returns></returns> public virtual DCTemplateRepository <DCTemplateModel> CreateDcTemplateRepository(UserConnection userConnection) { var templateRepository = new DCTemplateRepository <DCTemplateModel>(userConnection); return(templateRepository); }