public virtual async Task LoadBillingPlans(IEnterprisesBillingManagerService entBillingMgr, string entLookup, string licenseType)
        {
            var plansResp = await entBillingMgr.ListBillingPlanOptions(entLookup, licenseType);

            State.Plans = plansResp.Model ?? new List <API.UserManagement.Host.TempRefit.BillingPlanOption>();

            State.FeaturedPlanGroup = State.Plans.FirstOrDefault(plan =>
            {
                return(plan.Metadata.ContainsKey("Featured") && plan.Metadata["Featured"].ToObject <bool>());
            })?.PlanGroup;

            State.PopularPlanGroup = State.Plans.FirstOrDefault(plan =>
            {
                return(plan.Metadata.ContainsKey("Popular") && plan.Metadata["Popular"].ToObject <bool>());
            })?.PlanGroup;
        }
Example #2
0
        public virtual async Task <HttpResponseMessage> Run([HttpTrigger] HttpRequest req, ILogger log)
        {
            var stateDetails = StateUtils.LoadStateDetails(req);

            var entLookup = stateDetails.EnterpriseLookup;

            var licenseType = req.Query["licenseType"];

            log.LogInformation($"ListBillingPlanOptions with {entLookup} for {licenseType}.");

            var plansResp = await entBillingMgr.ListBillingPlanOptions(entLookup, licenseType);

            log.LogInformation($"Plans response: {plansResp.Status.ToJSON()}");

            var statusCode = plansResp.Status || plansResp.Status == Status.NotLocated ? HttpStatusCode.OK : HttpStatusCode.InternalServerError;

            return(new HttpResponseMessage(statusCode)
            {
                Content = new StringContent(plansResp.ToJSON(), Encoding.UTF8, "application/json")
            });
        }