Esempio n. 1
0
        /// <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));
        }
Esempio n. 2
0
        /// <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));
        }
Esempio n. 3
0
        /// <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));
        }