예제 #1
0
        protected void buttonUpdate_OnClick(object sender, EventArgs e)
        {
            if (Policy.Archived)
            {
                EndUserMessage = "Archived Policies Cannot Be Modified";
                return;
            }
            Policy.Name        = txtName.Text;
            Policy.Description = txtDescription.Text;
            Policy.Trigger     =
                (EnumPolicy.Trigger)Enum.Parse(typeof(EnumPolicy.Trigger), ddlTrigger.SelectedValue);
            Policy.Frequency = (EnumPolicy.Frequency)Enum.Parse(typeof(EnumPolicy.Frequency), ddlFrequency.SelectedValue);
            if (Policy.Frequency == EnumPolicy.Frequency.OncePerWeek)
            {
                Policy.SubFrequency = Convert.ToInt16((EnumCalendar.DayOfWeek)Enum.Parse(typeof(EnumCalendar.DayOfWeek), ddlWeekDay.SelectedValue));
            }
            else if (Policy.Frequency == EnumPolicy.Frequency.OncePerMonth)
            {
                Policy.SubFrequency = Convert.ToInt16(ddlMonthDay.SelectedValue);
            }
            else if (Policy.Frequency == EnumPolicy.Frequency.EveryXdays)
            {
                Policy.SubFrequency = Convert.ToInt16(txtDays.Text);
            }
            else if (Policy.Frequency == EnumPolicy.Frequency.EveryXhours)
            {
                Policy.SubFrequency = Convert.ToInt16(txtHours.Text);
            }
            else
            {
                Policy.SubFrequency = 0;
            }

            Policy.WindowStartScheduleId = Convert.ToInt32(ddlScheduleStart.SelectedValue);
            Policy.WindowEndScheduleId   = Convert.ToInt32(ddlScheduleEnd.SelectedValue);
            Policy.ConditionId           = Convert.ToInt32(ddlCondition.SelectedValue);
            Policy.ConditionFailedAction = (EnumCondition.FailedAction)Enum.Parse(typeof(EnumCondition.FailedAction), ddlConditionFailedAction.SelectedValue);

            Policy.StartDate             = string.IsNullOrEmpty(txtStartDate.Text) ? Convert.ToDateTime(DateTime.UtcNow.ToShortDateString()) : Convert.ToDateTime(txtStartDate.Text).ToUniversalTime();
            Policy.CompletedAction       = (EnumPolicy.CompletedAction)Enum.Parse(typeof(EnumPolicy.CompletedAction), ddlCompletedAction.SelectedValue);
            Policy.RunInventory          = (EnumPolicy.InventoryAction)Enum.Parse(typeof(EnumPolicy.InventoryAction), ddlInventory.SelectedValue);
            Policy.RunLoginTracker       = chkLoginTracker.Checked;
            Policy.RemoveInstallCache    = chkDeleteCache.Checked;
            Policy.WuType                = (EnumPolicy.WuType)Enum.Parse(typeof(EnumPolicy.WuType), ddlWinUpdates.SelectedValue);
            Policy.ExecutionType         = (EnumPolicy.ExecutionType)Enum.Parse(typeof(EnumPolicy.ExecutionType), ddlExecType.SelectedValue);
            Policy.ErrorAction           = (EnumPolicy.ErrorAction)Enum.Parse(typeof(EnumPolicy.ErrorAction), ddlErrorAction.SelectedValue);
            Policy.MissedAction          = (EnumPolicy.FrequencyMissedAction)Enum.Parse(typeof(EnumPolicy.FrequencyMissedAction), ddlMissed.SelectedValue);
            Policy.LogLevel              = (EnumPolicy.LogLevel)Enum.Parse(typeof(EnumPolicy.LogLevel), ddlLogLevel.SelectedValue);
            Policy.PolicyComCondition    = (EnumPolicy.PolicyComCondition)Enum.Parse(typeof(EnumPolicy.PolicyComCondition), ddlComCondition.SelectedValue);
            Policy.SkipServerResult      = chkSkipResult.Checked;
            Policy.RunApplicationMonitor = chkApplicationMonitor.Checked;

            Policy.AutoArchiveType = (EnumPolicy.AutoArchiveType)Enum.Parse(typeof(EnumPolicy.AutoArchiveType), ddlAutoArchive.SelectedValue);
            if (Policy.AutoArchiveType == EnumPolicy.AutoArchiveType.AfterXdays)
            {
                Policy.AutoArchiveSub = txtAutoArchiveDays.Text;
            }



            if (Policy.PolicyComCondition == EnumPolicy.PolicyComCondition.Any)
            {
                var r = Call.PolicyComServerApi.Delete(Policy.Id);
                if (!r.Success)
                {
                    EndUserMessage = "Could Not Update Policy Com Servers.";
                    return;
                }
            }
            else
            {
                var list = new List <EntityPolicyComServer>();
                foreach (GridViewRow row in gvServers.Rows)
                {
                    var cb = (CheckBox)row.FindControl("chkSelector");
                    if (cb == null || !cb.Checked)
                    {
                        continue;
                    }
                    var dataKey = gvServers.DataKeys[row.RowIndex];
                    if (dataKey == null)
                    {
                        continue;
                    }
                    var policyComServer = new EntityPolicyComServer();
                    policyComServer.ComServerId = Convert.ToInt32(dataKey.Value);
                    policyComServer.PolicyId    = Policy.Id;

                    list.Add(policyComServer);
                }

                var z = Call.PolicyComServerApi.Post(list);
                if (!z.Success)
                {
                    EndUserMessage = z.ErrorMessage;
                    return;
                }
            }
            var result = Call.PolicyApi.Put(Policy.Id, Policy);

            EndUserMessage = result.Success ? String.Format("Successfully Updated Policy {0}", Policy.Name) : result.ErrorMessage;
        }
예제 #2
0
파일: create.aspx.cs 프로젝트: cocoon/Toems
        protected void btnAdd_OnClick(object sender, EventArgs e)
        {
            var policy = new EntityPolicy();

            policy.Name        = txtName.Text;
            policy.Description = txtDescription.Text;
            policy.Trigger     =
                (EnumPolicy.Trigger)Enum.Parse(typeof(EnumPolicy.Trigger), ddlTrigger.SelectedValue);
            policy.Frequency = (EnumPolicy.Frequency)Enum.Parse(typeof(EnumPolicy.Frequency), ddlFrequency.SelectedValue);
            if (policy.Frequency == EnumPolicy.Frequency.OncePerWeek)
            {
                policy.SubFrequency = Convert.ToInt16((EnumCalendar.DayOfWeek)Enum.Parse(typeof(EnumCalendar.DayOfWeek), ddlWeekDay.SelectedValue));
            }
            else if (policy.Frequency == EnumPolicy.Frequency.OncePerMonth)
            {
                policy.SubFrequency = Convert.ToInt16(ddlMonthDay.SelectedValue);
            }
            else if (policy.Frequency == EnumPolicy.Frequency.EveryXdays)
            {
                policy.SubFrequency = Convert.ToInt16(txtDays.Text);
            }
            else if (policy.Frequency == EnumPolicy.Frequency.EveryXhours)
            {
                policy.SubFrequency = Convert.ToInt16(txtHours.Text);
            }
            else
            {
                policy.SubFrequency = 0;
            }

            policy.WindowStartScheduleId = Convert.ToInt32(ddlScheduleStart.SelectedValue);
            policy.WindowEndScheduleId   = Convert.ToInt32(ddlScheduleEnd.SelectedValue);
            policy.ConditionId           = Convert.ToInt32(ddlCondition.SelectedValue);
            policy.ConditionFailedAction = (EnumCondition.FailedAction)Enum.Parse(typeof(EnumCondition.FailedAction), ddlConditionFailedAction.SelectedValue);
            //utc is not used here because time is not used only date
            policy.StartDate             = string.IsNullOrEmpty(txtStartDate.Text) ? Convert.ToDateTime(DateTime.Now.ToShortDateString()) : Convert.ToDateTime(txtStartDate.Text);
            policy.CompletedAction       = (EnumPolicy.CompletedAction)Enum.Parse(typeof(EnumPolicy.CompletedAction), ddlCompletedAction.SelectedValue);
            policy.RunInventory          = (EnumPolicy.InventoryAction)Enum.Parse(typeof(EnumPolicy.InventoryAction), ddlInventory.SelectedValue);
            policy.RunLoginTracker       = chkLoginTracker.Checked;
            policy.RemoveInstallCache    = chkDeleteCache.Checked;
            policy.MissedAction          = (EnumPolicy.FrequencyMissedAction)Enum.Parse(typeof(EnumPolicy.FrequencyMissedAction), ddlMissed.SelectedValue);
            policy.ExecutionType         = (EnumPolicy.ExecutionType)Enum.Parse(typeof(EnumPolicy.ExecutionType), ddlExecType.SelectedValue);
            policy.ErrorAction           = (EnumPolicy.ErrorAction)Enum.Parse(typeof(EnumPolicy.ErrorAction), ddlErrorAction.SelectedValue);
            policy.LogLevel              = (EnumPolicy.LogLevel)Enum.Parse(typeof(EnumPolicy.LogLevel), ddlLogLevel.SelectedValue);
            policy.WuType                = (EnumPolicy.WuType)Enum.Parse(typeof(EnumPolicy.WuType), ddlWinUpdates.SelectedValue);
            policy.SkipServerResult      = chkSkipResult.Checked;
            policy.RunApplicationMonitor = chkApplicationMonitor.Checked;
            policy.AutoArchiveType       = (EnumPolicy.AutoArchiveType)Enum.Parse(typeof(EnumPolicy.AutoArchiveType), ddlAutoArchive.SelectedValue);
            policy.PolicyComCondition    = (EnumPolicy.PolicyComCondition)Enum.Parse(typeof(EnumPolicy.PolicyComCondition), ddlComCondition.SelectedValue);
            if (policy.AutoArchiveType == EnumPolicy.AutoArchiveType.AfterXdays)
            {
                policy.AutoArchiveSub = txtAutoArchiveDays.Text;
            }


            var result = Call.PolicyApi.Post(policy);

            if (!result.Success)
            {
                EndUserMessage = result.ErrorMessage;
            }
            else
            {
                if (policy.PolicyComCondition != EnumPolicy.PolicyComCondition.Any)
                {
                    var list = new List <EntityPolicyComServer>();
                    foreach (GridViewRow row in gvServers.Rows)
                    {
                        var cb = (CheckBox)row.FindControl("chkSelector");
                        if (cb == null || !cb.Checked)
                        {
                            continue;
                        }
                        var dataKey = gvServers.DataKeys[row.RowIndex];
                        if (dataKey == null)
                        {
                            continue;
                        }
                        var policyComServer = new EntityPolicyComServer();
                        policyComServer.ComServerId = Convert.ToInt32(dataKey.Value);
                        policyComServer.PolicyId    = result.Id;

                        list.Add(policyComServer);
                    }

                    var z = Call.PolicyComServerApi.Post(list);
                    if (!z.Success)
                    {
                        EndUserMessage = z.ErrorMessage;
                        return;
                    }
                }

                EndUserMessage = "Successfully Created Policy";
                Response.Redirect("~/views/policies/general.aspx?policyId=" + result.Id);
            }
        }