Ejemplo n.º 1
0
        public bool Unsubscribe(Guid subscriberId, SubscriptionTypes subscriptionType)
        {
            var unsubscribed = false;

            try
            {
                var candidate = _candidateReadRepository.GetBySubscriberId(subscriberId);

                switch (subscriptionType)
                {
                case SubscriptionTypes.DailyDigestViaEmail:
                    unsubscribed = UnsubscribeDailyDigestViaEmail(candidate);
                    break;

                case SubscriptionTypes.SavedSearchAlertsViaEmail:
                    unsubscribed = UnsubscribeSavedSearchAlertsViaEmail(candidate);
                    break;

                case SubscriptionTypes.MarketingViaEmail:
                    unsubscribed = UnsubscribeMarketingViaEmail(candidate);
                    break;
                }

                if (unsubscribed)
                {
                    _logger.Info("Unsubscribed subscriptionType='{0}' for subscriberId='{1}'", subscriptionType, subscriberId);
                    _serviceBus.PublishMessage(new CandidateUserUpdate(candidate.EntityId, CandidateUserUpdateType.Update));
                }
                else
                {
                    _logger.Error("Failed to unsubscribe subscriptionType='{0}' for subscriberId='{1}'", subscriptionType, subscriberId);
                }
            }
            catch (Exception e)
            {
                _logger.Error("Error unsubscribing subscriptionType='{0}' for subscriberId='{1}'", e, subscriptionType, subscriberId);
                unsubscribed = false;
            }

            return(unsubscribed);
        }