예제 #1
0
        /// <summary>
        /// Set base notification parameters (sender, recipient, isActive)
        /// </summary>
        /// <param name="notification"></param>
        /// <param name="changeEvent"></param>
        private void SetNotificationParameters(SubscriptionEmailNotificationBase notification, SubscriptionChangeEvent changeEvent)
        {
            var store = _storeService.GetById(changeEvent.ModifiedSubscription.StoreId);

            notification.Subscription = changeEvent.ModifiedSubscription;
            notification.Sender       = store.Email;
            notification.IsActive     = true;
            //Link notification to subscription to getting notification history for each subscription individually
            notification.ObjectId     = changeEvent.ModifiedSubscription.Id;
            notification.ObjectTypeId = typeof(Subscription).Name;

            var member = _memberService.GetByIds(new[] { changeEvent.ModifiedSubscription.CustomerId }).FirstOrDefault();

            if (member != null)
            {
                var email = member.Emails.FirstOrDefault();
                if (!string.IsNullOrEmpty(email))
                {
                    notification.Recipient = email;
                }
            }
            if (string.IsNullOrEmpty(notification.Recipient))
            {
                if (changeEvent.ModifiedSubscription.CustomerOrderPrototype.Addresses.Count > 0)
                {
                    var address = changeEvent.ModifiedSubscription.CustomerOrderPrototype.Addresses.FirstOrDefault();
                    if (address != null)
                    {
                        notification.Recipient = address.Email;
                    }
                }
            }
        }
        /// <summary>
        /// Set base notification parameters (sender, recipient, isActive)
        /// </summary>
        protected virtual async Task SetNotificationParametersAsync(SubscriptionEmailNotificationBase notification, Subscription subscription)
        {
            var store = _storeService.GetById(subscription.StoreId);

            notification.Subscription = subscription;
            notification.Sender       = store.Email;
            notification.IsActive     = true;
            //Link notification to subscription to getting notification history for each subscription individually
            notification.ObjectId     = subscription.Id;
            notification.ObjectTypeId = typeof(Subscription).Name;
            notification.Recipient    = await GetSubscriptionRecipientEmailAsync(subscription);
        }
        /// <summary>
        /// Set base notification parameters (sender, recipient, isActive)
        /// </summary>
        protected virtual async Task SetNotificationParametersAsync(SubscriptionEmailNotificationBase notification, Subscription subscription)
        {
            var store = await _storeService.GetByIdAsync(subscription.StoreId);

            notification.IsActive     = true;
            notification.Subscription = subscription;

            notification.From = store.Email;
            notification.To   = await GetSubscriptionRecipientEmailAsync(subscription);

            //Link notification to subscription to getting notification history for each subscription individually
            notification.TenantIdentity = new TenantIdentity(subscription.Id, typeof(Subscription).Name);
        }
        /// <summary>
        /// Set base notification parameters (sender, recipient, isActive)
        /// </summary>
        protected virtual async Task SetNotificationParametersAsync(SubscriptionEmailNotificationBase notification, Subscription subscription)
        {
            var store = await _storeService.GetByIdAsync(subscription.StoreId, StoreResponseGroup.StoreInfo.ToString());

            notification.Subscription = subscription;

            notification.From = store.Email;
            notification.To   = await GetSubscriptionRecipientEmailAsync(subscription);

            notification.LanguageCode = subscription.CustomerOrderPrototype.LanguageCode;

            //Link notification to subscription to getting notification history for each subscription individually
            notification.TenantIdentity = new TenantIdentity(subscription.Id, typeof(Subscription).Name);
        }