public IActionResult NewScheduler()

in src/AdminSite/Controllers/SchedulerController.cs [130:220]


    public IActionResult NewScheduler(string subscriptionId, string dimId, string quantity)
    {
        this.logger.Info("New Scheduler Controller");
        try
        {
            SchedulerUsageViewModel schedulerUsageViewModel = new SchedulerUsageViewModel();

            this.TempData["ShowWelcomeScreen"] = "True";
            var currentUserDetail = this.usersRepository.GetPartnerDetailFromEmail(this.CurrentUserEmailAddress);
            var allActiveMeteredSubscriptions = this.subscriptionService.GetActiveSubscriptionsWithMeteredPlan();
            List<SchedulerFrequencyModel> getAllEnabledFrequency = this.schedulerService.GetAllEnabledFrequency();

            // Create Frequency Dropdown list
            List<SelectListItem> SchedulerFrequencyList = new List<SelectListItem>();
            foreach (var item in getAllEnabledFrequency)
            {
                SchedulerFrequencyList.Add(new SelectListItem()
                {
                    Text = item.Frequency,
                    Value = item.Id.ToString(),
                });
            }

            // Create Subscription Dropdown list
            List<SelectListItem> SubscriptionList = new List<SelectListItem>();
            foreach (var item in allActiveMeteredSubscriptions)
            {
                SubscriptionList.Add(new SelectListItem()
                {
                    Text = item.Name,
                    Value = item.Id.ToString(),
                });
            }
            List<SelectListItem> DimensionsList = new List<SelectListItem>();

            schedulerUsageViewModel.DimensionsList = new SelectList(DimensionsList, "Value", "Text");
            schedulerUsageViewModel.SubscriptionList = new SelectList(SubscriptionList, "Value", "Text");
            schedulerUsageViewModel.SchedulerFrequencyList = new SelectList(SchedulerFrequencyList, "Value", "Text");


            schedulerUsageViewModel.SelectedSubscription = subscriptionId;
            schedulerUsageViewModel.Quantity = (Int32)Math.Round(Convert.ToDecimal(quantity), 0);

            if (!String.IsNullOrEmpty(dimId))
            {
                var dimensions = this.meteredRepository.Get().Where(d => d.Dimension == dimId).FirstOrDefault();
                if (dimensions != null)
                {
                    DimensionsList.Add(new SelectListItem()
                    {
                        Text = dimId,
                        Value = dimensions.Id.ToString(),
                        Selected = true
                    });
                    schedulerUsageViewModel.DimensionsList = new SelectList(DimensionsList, "Value", "Text");
                    schedulerUsageViewModel.SelectedDimension = dimensions.Id.ToString();
                }
            }
            else
            {
                if (subscriptionId != null)
                {
                    var selectSubscription = allActiveMeteredSubscriptions.Where(s => s.Id == int.Parse(subscriptionId)).FirstOrDefault();
                    if (selectSubscription != null)
                    {
                        // Create Dimension Dropdown list
                        List<MeteredDimensions> getAllDimensions = this.meteredRepository.GetDimensionsByPlanId(selectSubscription.AmpplanId);
                        if (getAllDimensions != null)
                        {

                            foreach (var item in getAllDimensions)
                            {
                                DimensionsList.Add(new SelectListItem()
                                {
                                    Text = item.Dimension,
                                    Value = item.Id.ToString(),
                                });
                            }
                        }
                    }
                }

            }
            return this.View(schedulerUsageViewModel);
        }
        catch (Exception ex)
        {
            this.logger.LogError($"Message:{ex.Message} :: {ex.InnerException}");
            return this.View("Error", ex);
        }
    }