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);
}
}