/// <summary> /// Adds/Update partner subscriptions. /// </summary> /// <param name="subscriptionDetail">The subscription detail.</param> public int AddUpdatePartnerSubscriptions(SaasKitModels.SubscriptionResult subscriptionDetail) { var isActive = GetSubscriptionStateFromStatus(Convert.ToString(subscriptionDetail.SaasSubscriptionStatus)); Subscriptions newSubscription = new Subscriptions() { Id = 0, AmpplanId = subscriptionDetail.PlanId, AmpsubscriptionId = subscriptionDetail.Id, CreateBy = CurrentUserId, CreateDate = DateTime.Now, IsActive = isActive, ModifyDate = DateTime.Now, Name = subscriptionDetail.Name, SubscriptionStatus = Convert.ToString(subscriptionDetail.SaasSubscriptionStatus), UserId = CurrentUserId, }; return(SubscriptionRepository.Add(newSubscription)); }
/// <summary> /// Adds/Update partner subscriptions. /// </summary> /// <param name="subscriptionDetail">The subscription detail.</param> /// <returns>Subscription Id.</returns> public int AddOrUpdatePartnerSubscriptions(SaasKitModels.SubscriptionResult subscriptionDetail) { var isActive = this.IsSubscriptionDeleted(Convert.ToString(subscriptionDetail.SaasSubscriptionStatus)); Subscriptions newSubscription = new Subscriptions() { Id = 0, AmpplanId = subscriptionDetail.PlanId, Ampquantity = subscriptionDetail.Quantity, AmpsubscriptionId = subscriptionDetail.Id, CreateBy = this.currentUserId, CreateDate = DateTime.Now, IsActive = isActive, ModifyDate = DateTime.Now, Name = subscriptionDetail.Name, SubscriptionStatus = Convert.ToString(subscriptionDetail.SaasSubscriptionStatus), UserId = this.currentUserId, PurchaserEmail = subscriptionDetail.Purchaser.EmailId, PurchaserTenantId = subscriptionDetail.Purchaser.TenantId, }; return(this.subscriptionRepository.Save(newSubscription)); }
/// <summary> /// Get All Subscription List for Current Logged in User. /// </summary> /// <param name="token">The MS Token<see cref="string" />..</param> /// <returns> /// The <see cref="IActionResult" />. /// </returns> public IActionResult Index(string token = null) { try { this.logger.LogInformation($"Landing page with token {token}"); SubscriptionResult subscriptionDetail = new SaasKitModels.SubscriptionResult(); SubscriptionResultExtension subscriptionExtension = new SubscriptionResultExtension(); if (this.User.Identity.IsAuthenticated) { var userId = this.userService.AddUser(this.GetCurrentUserDetail()); var currentUserId = this.userService.GetUserIdFromEmailAddress(this.CurrentUserEmailAddress); this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository, userId); this.logger.LogInformation("User authenticated successfully"); if (!string.IsNullOrEmpty(token)) { this.TempData["ShowWelcomeScreen"] = null; token = token.Replace(' ', '+'); var newSubscription = this.apiClient.ResolveAsync(token).ConfigureAwait(false).GetAwaiter().GetResult(); if (newSubscription != null && newSubscription.SubscriptionId != default) { var subscriptionPlanDetail = this.apiClient.GetAllPlansForSubscriptionAsync(newSubscription.SubscriptionId).ConfigureAwait(false).GetAwaiter().GetResult(); Offers offers = new Offers() { OfferId = newSubscription.OfferId, OfferName = newSubscription.OfferId, UserId = currentUserId, CreateDate = DateTime.Now, OfferGuid = Guid.NewGuid(), }; Guid newOfferId = this.offersRepository.Add(offers); List <PlanDetailResultExtension> planList = new List <PlanDetailResultExtension>(); var serializedPlans = JsonSerializer.Serialize(subscriptionPlanDetail); planList = JsonSerializer.Deserialize <List <PlanDetailResultExtension> >(serializedPlans); planList.ForEach(x => { x.OfferId = newOfferId; x.PlanGUID = Guid.NewGuid(); }); this.subscriptionService.AddPlanDetailsForSubscription(planList); var currentPlan = this.planRepository.GetById(newSubscription.PlanId); var subscriptionData = this.apiClient.GetSubscriptionByIdAsync(newSubscription.SubscriptionId).ConfigureAwait(false).GetAwaiter().GetResult(); var subscribeId = this.subscriptionService.AddOrUpdatePartnerSubscriptions(subscriptionData); if (subscribeId > 0 && subscriptionData.SaasSubscriptionStatus == SubscriptionStatusEnum.PendingFulfillmentStart) { SubscriptionAuditLogs auditLog = new SubscriptionAuditLogs() { Attribute = Convert.ToString(SubscriptionLogAttributes.Status), SubscriptionId = subscribeId, NewValue = SubscriptionStatusEnum.PendingFulfillmentStart.ToString(), OldValue = "None", CreateBy = currentUserId, CreateDate = DateTime.Now, }; this.subscriptionLogRepository.Save(auditLog); } subscriptionExtension = this.subscriptionService.GetSubscriptionsBySubscriptionId(newSubscription.SubscriptionId, true); subscriptionExtension.ShowWelcomeScreen = false; subscriptionExtension.CustomerEmailAddress = this.CurrentUserEmailAddress; subscriptionExtension.CustomerName = this.CurrentUserName; subscriptionExtension.SubscriptionParameters = this.subscriptionService.GetSubscriptionsParametersById(newSubscription.SubscriptionId, currentPlan.PlanGuid); } } else { this.TempData["ShowWelcomeScreen"] = "True"; subscriptionExtension.ShowWelcomeScreen = true; return(this.View(subscriptionExtension)); } } else { if (!string.IsNullOrEmpty(token)) { return(this.Challenge( new AuthenticationProperties { RedirectUri = "/?token=" + token, }, OpenIdConnectDefaults.AuthenticationScheme)); } else { this.TempData["ShowWelcomeScreen"] = "True"; subscriptionExtension.ShowWelcomeScreen = true; return(this.View(subscriptionExtension)); } } return(this.View(subscriptionExtension)); } catch (Exception ex) { this.logger.LogError("Message:{0} :: {1} ", ex.Message, ex.InnerException); return(this.View("Error", ex)); } }
/// <summary> /// Get All Subscription List for Current Logged in User /// </summary> /// <param name="token">The MS Token<see cref="string" /></param> /// <returns> /// The <see cref="IActionResult" /> /// </returns> public IActionResult Index(string token = null) { this.log.Info("Initializing Index Page"); SubscriptionResult subscriptionDetail = new SaasKitModels.SubscriptionResult(); if (User.Identity.IsAuthenticated) { var userId = this.userService.AddPartnerDetail(GetCurrentUserDetail()); var currentUserId = this.userService.GetUserIdFromEmailAddress(this.CurrentUserEmailAddress); this.subscriptionService = new SubscriptionService(this.subscriptionRepository, this.planRepository, userId); this.log.Info("User authenticate successfully"); if (!string.IsNullOrEmpty(token)) { this.TempData["ShowWelcomeScreen"] = null; token = token.Replace(' ', '+'); var newSubscription = this.apiClient.ResolveAsync(token).ConfigureAwait(false).GetAwaiter().GetResult(); if (newSubscription != null && newSubscription.SubscriptionId != default) { var subscriptionPlanDetail = this.apiClient.GetAllPlansForSubscriptionAsync(newSubscription.SubscriptionId).ConfigureAwait(false).GetAwaiter().GetResult(); this.subscriptionService.AddPlanDetailsForSubscription(subscriptionPlanDetail); // GetSubscriptionBy SubscriptionId var subscriptionData = this.apiClient.GetSubscriptionByIdAsync(newSubscription.SubscriptionId).ConfigureAwait(false).GetAwaiter().GetResult(); var subscribeId = this.subscriptionService.AddUpdatePartnerSubscriptions(subscriptionData); if (subscribeId > 0 && subscriptionData.SaasSubscriptionStatus == SubscriptionStatusEnum.PendingFulfillmentStart) { SubscriptionAuditLogs auditLog = new SubscriptionAuditLogs() { Attribute = Convert.ToString(SubscriptionLogAttributes.Status), SubscriptionId = subscribeId, NewValue = "Pending Activation", OldValue = "None", CreateBy = currentUserId, CreateDate = DateTime.Now }; this.subscriptionLogRepository.Add(auditLog); } subscriptionDetail = subscriptionData; subscriptionDetail.ShowWelcomeScreen = false; subscriptionDetail.CustomerEmailAddress = this.CurrentUserEmailAddress; subscriptionDetail.CustomerName = this.CurrentUserName; } } else { this.TempData["ShowWelcomeScreen"] = "True"; subscriptionDetail.ShowWelcomeScreen = true; return(this.View(subscriptionDetail)); } } else { if (!string.IsNullOrEmpty(token)) { return(this.Challenge(new AuthenticationProperties { RedirectUri = "/?token=" + token }, OpenIdConnectDefaults.AuthenticationScheme)); } else { this.TempData["ShowWelcomeScreen"] = "True"; subscriptionDetail.ShowWelcomeScreen = true; return(this.View(subscriptionDetail)); } } return(this.View(subscriptionDetail)); }