public override void Process()

in src/Services/StatusHandlers/NotificationStatusHandler.cs [133:184]


    public override void Process(Guid subscriptionID)
    {
        this.logger?.LogInformation("ResourceDeploymentStatusHandler Process...");
        this.logger?.LogInformation("Get SubscriptionById");
        var subscription = this.GetSubscriptionById(subscriptionID);
        this.logger?.LogInformation("Get PlanById");
        var planDetails = this.GetPlanById(subscription.AmpplanId);
        this.logger?.LogInformation("Get User");
        var userdetails = this.GetUserById(subscription.UserId);

        string planEventName = "Activate";
        if (subscription.SubscriptionStatus == SubscriptionStatusEnumExtension.Unsubscribed.ToString() ||
            subscription.SubscriptionStatus == SubscriptionStatusEnumExtension.UnsubscribeFailed.ToString())
        {
            planEventName = "Unsubscribe";
        }

        string processStatus = "success";
        if (subscription.SubscriptionStatus == SubscriptionStatusEnumExtension.ActivationFailed.ToString() ||
            subscription.SubscriptionStatus == SubscriptionStatusEnumExtension.UnsubscribeFailed.ToString())
        {
            processStatus = "failure";
        }

        bool isEmailEnabledForUnsubscription = Convert.ToBoolean(this.applicationConfigRepository.GetValueByName("IsEmailEnabledForUnsubscription"));
        bool isEmailEnabledForPendingActivation = Convert.ToBoolean(this.applicationConfigRepository.GetValueByName("IsEmailEnabledForPendingActivation"));
        bool isEmailEnabledForSubscriptionActivation = Convert.ToBoolean(this.applicationConfigRepository.GetValueByName("IsEmailEnabledForSubscriptionActivation"));

        bool triggerEmail = false;
        if (planEventName == "Activate" && isEmailEnabledForPendingActivation && subscription.SubscriptionStatus == SubscriptionStatusEnumExtension.PendingActivation.ToString())
        {
            triggerEmail = true;
        }else if (planEventName == "Activate" && isEmailEnabledForSubscriptionActivation && subscription.SubscriptionStatus != SubscriptionStatusEnumExtension.PendingActivation.ToString())
        {
            triggerEmail = true;
        }else if (planEventName == "Unsubscribe" && isEmailEnabledForUnsubscription)
        {
            triggerEmail = true;
        }
        
        if (triggerEmail)
        {
            var emailContent = this.emailHelper.PrepareEmailContent(subscriptionID, planDetails.PlanGuid, processStatus, planEventName, subscription.SubscriptionStatus);
            this.emailService.SendEmail(emailContent);

            if (emailContent.CopyToCustomer && !string.IsNullOrEmpty(userdetails.EmailAddress))
            {
                emailContent.ToEmails = userdetails.EmailAddress;
                this.emailService.SendEmail(emailContent);
            }
        }
    }