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); }