public static HostingPlanContext GetHostingPlanContext(int planId)
        {
            HostingPlanContext context = new HostingPlanContext();

            // load hosting plan
            context.HostingPlan = GetHostingPlan(planId);
            if (context.HostingPlan == null)
                return null;

            // load groups and quotas
            DataSet ds = GetHostingPlanQuotas(0, planId, 0);

            List<HostingPlanGroupInfo> groups = new List<HostingPlanGroupInfo>();
            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                HostingPlanGroupInfo group = new HostingPlanGroupInfo();
                group.GroupId = (int)dr["GroupID"];
                group.GroupName = (string)dr["GroupName"];

                bool enabled = (bool)dr["Enabled"];
                group.Enabled = enabled;
                group.CalculateBandwidth = (bool)dr["CalculateBandwidth"];
                group.CalculateDiskSpace = (bool)dr["CalculateDiskSpace"];

                if (enabled)
                {
                    groups.Add(group);
                    context.Groups.Add(group.GroupName, group);
                }
            }

            List<QuotaValueInfo> quotas = new List<QuotaValueInfo>();
            foreach (DataRow dr in ds.Tables[1].Rows)
            {
                QuotaValueInfo quota = new QuotaValueInfo();
                quota.QuotaId = (int)dr["QuotaId"];
                quota.GroupId = (int)dr["GroupId"];
                quota.QuotaName = (string)dr["QuotaName"];
                quota.QuotaTypeId = (int)dr["QuotaTypeId"];
                quota.QuotaAllocatedValue = (int)dr["QuotaValue"];
                quotas.Add(quota);
                context.Quotas.Add(quota.QuotaName, quota);
            }

            context.GroupsArray = groups.ToArray();
            context.QuotasArray = quotas.ToArray();

            return context;
        }
        public static KeyValueBunch GetHostingPlansQuotas(int resellerId, int planId)
        {
            KeyValueBunch hpQuotas = new KeyValueBunch();

            //
            ES.SecurityContext.SetThreadPrincipal(resellerId);
            //
            ES.HostingPlanContext ctx = ES.PackageController.GetHostingPlanContext(planId);
            //
            if (ctx != null)
            {
                //
                ES.QuotaValueInfo[] quotasArray = ctx.QuotasArray;
                //
                for (int i = 0; i < ctx.GroupsArray.Length; i++)
                {
                    //
                    ES.HostingPlanGroupInfo group = ctx.GroupsArray[i];
                    //
                    if (group.Enabled)
                    {
                        //
                        List <string> planQuota = new List <string>();
                        //
                        foreach (ES.QuotaValueInfo quota in quotasArray)
                        {
                            //
                            if (quota.QuotaName.StartsWith(group.GroupName))
                            {
                                // boolean quota
                                if (quota.QuotaTypeId == 1)
                                {
                                    // only enabled quotas will be displayed
                                    if (quota.QuotaAllocatedValue == 1)
                                    {
                                        planQuota.Add(quota.QuotaName + "=Enabled");
                                    }
                                }
                                // numeric
                                else
                                {
                                    if (quota.QuotaAllocatedValue > 0)
                                    {
                                        planQuota.Add(quota.QuotaName + "=" + quota.QuotaAllocatedValue);
                                    }
                                    else if (quota.QuotaAllocatedValue == -1)
                                    {
                                        planQuota.Add(quota.QuotaName + "=Unlimited");
                                    }
                                }
                            }
                        }
                        // only filled-up groups are allowed to display
                        if (planQuota.Count > 0)
                        {
                            hpQuotas[group.GroupName] = String.Join(",", planQuota.ToArray());
                        }
                    }
                }
            }
            //
            return(hpQuotas);
        }
Example #3
0
        public static HostingPlanContext GetCachedHostingPlanContext(int planId)
        {
            string key = "CachedHostingPlanContext" + planId.ToString();
            HostingPlanContext cntx = (HostingPlanContext)HttpContext.Current.Items[key];
            if (cntx == null)
            {
                // load context
                cntx = ES.Services.Packages.GetHostingPlanContext(planId);

                if (cntx != null)
                {
                    // fill dictionaries
                    foreach (HostingPlanGroupInfo group in cntx.GroupsArray)
                        cntx.Groups.Add(group.GroupName, group);

                    foreach (QuotaValueInfo quota in cntx.QuotasArray)
                        cntx.Quotas.Add(quota.QuotaName, quota);
                }
                else
                {
                    // create empty context
                    cntx = new HostingPlanContext();
                }

                // add it to the cach
                HttpContext.Current.Items[key] = cntx;
            }
            return cntx;
        }