Exemple #1
0
        public void CollectFormData()
        {
            groups = new List <HostingPlanGroupInfo>();
            quotas = new List <HostingPlanQuotaInfo>();

            // gather info
            foreach (RepeaterItem item in dlGroups.Items)
            {
                Literal  litGroupId        = (Literal)item.FindControl("groupId");
                CheckBox chkEnabled        = (CheckBox)item.FindControl("chkEnabled");
                CheckBox chkCountDiskspace = (CheckBox)item.FindControl("chkCountDiskspace");
                CheckBox chkCountBandwidth = (CheckBox)item.FindControl("chkCountBandwidth");

                if (!chkEnabled.Checked)
                {
                    continue; // disabled group
                }
                HostingPlanGroupInfo group = new HostingPlanGroupInfo();
                group.GroupId            = Utils.ParseInt(litGroupId.Text, 0);
                group.Enabled            = chkEnabled.Checked;
                group.CalculateDiskSpace = chkCountDiskspace.Checked;
                group.CalculateBandwidth = chkCountBandwidth.Checked;
                groups.Add(group);

                // iterate quotas
                DataList dlQuotas = (DataList)item.FindControl("dlQuotas");
                foreach (DataListItem quotaItem in dlQuotas.Items)
                {
                    QuotaEditor quotaEditor = (QuotaEditor)quotaItem.FindControl("quotaEditor");

                    HostingPlanQuotaInfo quota = new HostingPlanQuotaInfo();
                    quota.QuotaId    = quotaEditor.QuotaId;
                    quota.QuotaValue = quotaEditor.QuotaValue;
                    quotas.Add(quota);
                }
            }
        }
Exemple #2
0
        private int AddHostingPlan(string name, int serverId)
        {
            try
            {
                Log.WriteStart("Adding hosting plan");
                // gather form info
                HostingPlanInfo plan = new HostingPlanInfo();
                plan.UserId          = 1;
                plan.PlanId          = 0;
                plan.IsAddon         = false;
                plan.PlanName        = name;
                plan.PlanDescription = "";
                plan.Available       = true;           // always available

                plan.SetupPrice       = 0;
                plan.RecurringPrice   = 0;
                plan.RecurrenceLength = 1;
                plan.RecurrenceUnit   = 2;               // month

                plan.PackageId = 0;
                plan.ServerId  = serverId;
                List <HostingPlanGroupInfo> groups = new List <HostingPlanGroupInfo>();
                List <HostingPlanQuotaInfo> quotas = new List <HostingPlanQuotaInfo>();

                DataSet ds = ES.Services.Packages.GetHostingPlanQuotas(-1, 0, serverId);

                foreach (DataRow groupRow in ds.Tables[0].Rows)
                {
                    bool enabled = (bool)groupRow["ParentEnabled"];
                    if (!enabled)
                    {
                        continue;                         // disabled group
                    }
                    int groupId = (int)groupRow["GroupId"];;

                    HostingPlanGroupInfo group = new HostingPlanGroupInfo();
                    group.GroupId            = groupId;
                    group.Enabled            = true;
                    group.GroupName          = Convert.ToString(groupRow["GroupName"]);
                    group.CalculateDiskSpace = (bool)groupRow["CalculateDiskSpace"];
                    group.CalculateBandwidth = (bool)groupRow["CalculateBandwidth"];
                    groups.Add(group);

                    DataView dvQuotas = new DataView(ds.Tables[1], "GroupID=" + group.GroupId.ToString(), "", DataViewRowState.CurrentRows);
                    List <HostingPlanQuotaInfo> groupQuotas = GetGroupQuotas(groupId, dvQuotas);
                    quotas.AddRange(groupQuotas);
                }

                plan.Groups = groups.ToArray();
                plan.Quotas = quotas.ToArray();

                // Add Web Deploy publishing support if enabled by default
                if (Utils.IsWebDeployInstalled())
                {
                    var resGroupWeb = Array.Find(plan.Groups, x => x.GroupName.Equals(ResourceGroups.Web, StringComparison.OrdinalIgnoreCase));
                    //
                    if (resGroupWeb != null)
                    {
                        EnableRemoteManagementQuota(quotas, new DataView(ds.Tables[1], String.Format("GroupID = {0}", resGroupWeb.GroupId), "", DataViewRowState.CurrentRows));
                    }
                }

                int planId = ES.Services.Packages.AddHostingPlan(plan);
                if (planId > 0)
                {
                    Log.WriteEnd("Added hosting plan");
                }
                else
                {
                    Log.WriteError(string.Format("Enterprise Server error: {0}", planId));
                }
                return(planId);
            }
            catch (Exception ex)
            {
                if (!Utils.IsThreadAbortException(ex))
                {
                    Log.WriteError("Hosting plan configuration error", ex);
                }
                return(-1);
            }
        }
        private int AddHostingPlan(string name, int serverId)
        {
            try
            {
                Log.WriteStart("Adding hosting plan");
                // gather form info
                HostingPlanInfo plan = new HostingPlanInfo();
                plan.UserId          = 1;
                plan.PlanId          = 0;
                plan.IsAddon         = false;
                plan.PlanName        = name;
                plan.PlanDescription = "";
                plan.Available       = true;           // always available

                plan.SetupPrice       = 0;
                plan.RecurringPrice   = 0;
                plan.RecurrenceLength = 1;
                plan.RecurrenceUnit   = 2;               // month

                plan.PackageId = 0;
                plan.ServerId  = serverId;
                List <HostingPlanGroupInfo> groups = new List <HostingPlanGroupInfo>();
                List <HostingPlanQuotaInfo> quotas = new List <HostingPlanQuotaInfo>();

                DataSet ds = ES.Services.Packages.GetHostingPlanQuotas(-1, 0, serverId);

                foreach (DataRow groupRow in ds.Tables[0].Rows)
                {
                    bool enabled = (bool)groupRow["ParentEnabled"];
                    if (!enabled)
                    {
                        continue;                         // disabled group
                    }
                    int groupId = (int)groupRow["GroupId"];;

                    HostingPlanGroupInfo group = new HostingPlanGroupInfo();
                    group.GroupId            = groupId;
                    group.Enabled            = true;
                    group.CalculateDiskSpace = (bool)groupRow["CalculateDiskSpace"];
                    group.CalculateBandwidth = (bool)groupRow["CalculateBandwidth"];
                    groups.Add(group);

                    DataView dvQuotas = new DataView(ds.Tables[1], "GroupID=" + group.GroupId.ToString(), "", DataViewRowState.CurrentRows);
                    List <HostingPlanQuotaInfo> groupQuotas = GetGroupQuotas(groupId, dvQuotas);
                    quotas.AddRange(groupQuotas);
                }

                plan.Groups = groups.ToArray();
                plan.Quotas = quotas.ToArray();

                int planId = ES.Services.Packages.AddHostingPlan(plan);
                if (planId > 0)
                {
                    Log.WriteEnd("Added hosting plan");
                }
                else
                {
                    Log.WriteError(string.Format("Enterprise Server error: {0}", planId));
                }
                return(planId);
            }
            catch (Exception ex)
            {
                if (!Utils.IsThreadAbortException(ex))
                {
                    Log.WriteError("Hosting plan configuration error", ex);
                }
                return(-1);
            }
        }