in src/AdminSite/Controllers/HomeController.cs [438:493]
public IActionResult SubscriptionOperation(Guid subscriptionId, string planId, string operation, int numberofProviders)
{
this.logger.Info(HttpUtility.HtmlEncode($"Home Controller / SubscriptionOperation subscriptionId:{subscriptionId} :: planId : {planId} :: operation:{operation} :: NumberofProviders : {numberofProviders}"));
try
{
var userDetails = this.userRepository.GetPartnerDetailFromEmail(this.CurrentUserEmailAddress);
var oldValue = this.subscriptionService.GetSubscriptionsBySubscriptionId(subscriptionId);
SubscriptionProcessQueueModel queueObject = new SubscriptionProcessQueueModel();
if (operation == "Activate")
{
if (oldValue.SubscriptionStatus.ToString() != SubscriptionStatusEnumExtension.PendingActivation.ToString())
{
this.subscriptionRepository.UpdateStatusForSubscription(subscriptionId, SubscriptionStatusEnumExtension.PendingActivation.ToString(), true);
SubscriptionAuditLogs auditLog = new SubscriptionAuditLogs()
{
Attribute = Convert.ToString(SubscriptionLogAttributes.Status),
SubscriptionId = oldValue.SubscribeId,
NewValue = SubscriptionStatusEnumExtension.PendingActivation.ToString(),
OldValue = oldValue.SubscriptionStatus.ToString(),
CreateBy = userDetails.UserId,
CreateDate = DateTime.Now,
};
this.subscriptionLogRepository.Save(auditLog);
}
this.pendingActivationStatusHandlers.Process(subscriptionId);
}
if (operation == "Deactivate")
{
this.subscriptionRepository.UpdateStatusForSubscription(subscriptionId, SubscriptionStatusEnumExtension.PendingUnsubscribe.ToString(), true);
SubscriptionAuditLogs auditLog = new SubscriptionAuditLogs()
{
Attribute = Convert.ToString(SubscriptionLogAttributes.Status),
SubscriptionId = oldValue.SubscribeId,
NewValue = SubscriptionStatusEnumExtension.PendingUnsubscribe.ToString(),
OldValue = oldValue.SubscriptionStatus.ToString(),
CreateBy = userDetails.UserId,
CreateDate = DateTime.Now,
};
this.subscriptionLogRepository.Save(auditLog);
this.unsubscribeStatusHandlers.Process(subscriptionId);
}
this.notificationStatusHandlers.Process(subscriptionId);
return this.RedirectToAction(nameof(this.ActivatedMessage));
}
catch (Exception ex)
{
this.logger.LogError($"Message:{ex.Message} :: {ex.InnerException}");
return this.View("Error");
}
}