Example #1
0
        public void AddNewSchedule()
        {
            frmNewScheduleId dlg = new frmNewScheduleId(this.GetUpdateJobs());

            if (dlg.ShowDialog() == DialogResult.OK)
            {
                TemplateNodeUpdateJob newJob = new TemplateNodeUpdateJob();

                newJob.Settings = new ScheduleSettings();

                newJob.Settings.Id        = dlg.Value;
                newJob.Settings.StartDate = DateTime.Now;
                newJob.Settings.Enabled   = false;

                UserSettingScheduleControl usc = new UserSettingScheduleControl(newJob)
                {
                    Name = "UserSettingScheduleControl1"
                };

                TabPage tabPage = new TabPage("New schedule");
                tabPage.Controls.Add(usc);

                this.tabControl1.TabPages.Add(tabPage);

                this.tabControl1.SelectedTab = tabPage;
            }
        }
Example #2
0
        public List <TemplateNodeUpdateJob> GetRefreshJob(bool fromCache)
        {
            ScheduleSettingsManager scheduleManager = new ScheduleSettingsManager(
                this._model.DefaultVaultProcessor.CurrentStorage
                );

            List <TemplateNodeUpdateJob> resultList = scheduleManager.LoadScheduleSettings(this, fromCache);

            if (resultList.IsNullOrEmpty() && !RefreshSchedules.IsNullOrEmpty())
            {
                foreach (RefreshSchedule sset in RefreshSchedules)
                {
                    TemplateNodeUpdateJob result = new TemplateNodeUpdateJob();

                    if (sset != null)
                    {
                        result.Settings = sset.Clone();

                        AssignRefreshJob(result);

                        resultList.Add(result);
                    }
                }
            }

            return(resultList);
        }
Example #3
0
        public List <TemplateNodeUpdateJob> GetJobs(TemplateNodeInfo node)
        {
            long templateNodeId = node.TemplateNodeId.GetValueOrDefault();

            List <ScheduleSettingsRow> rows = this._currentStorage.ScheduleSettingsTable
                                              .GetAllRowsByTemplateNodeId(templateNodeId);

            List <TemplateNodeUpdateJob> jobs = new List <TemplateNodeUpdateJob>();

            foreach (ScheduleSettingsRow row in rows)
            {
                if (row != null)
                {
                    TemplateNodeUpdateJob job = this.CreateJob(row, node);

                    jobs.Add(job);
                }
                else
                {
                    jobs.Add(TemplateNodeUpdateJob.Empty);
                }
            }

            return(jobs);
        }
Example #4
0
        private TreeNode FindJobbedUiTreeNode(Job job)
        {
            var nodesList = new List <TreeNode>();

            foreach (TreeNode currentNode in treeTemplate.Nodes)
            {
                nodesList.AddRange(GetEnabledTreenodesForTimingTick(currentNode));
            }

            foreach (var treeNode in nodesList)
            {
                var node = treeNode.Tag as ConcreteTemplateNodeDefinition;

                if (node == null)
                {
                    continue;
                }

                TemplateNodeUpdateJob tjob = node.TemplateNode.GetRefreshJob(true).FirstOrDefault(j => j == job);

                if (tjob != null && !tjob.IsEmpty())
                {
                    return(treeNode);
                }
            }

            return(null);
        }
Example #5
0
        public void SaveJob(TemplateNodeUpdateJob job)
        {
            ScheduleSettingsManager scheduleManager = new ScheduleSettingsManager(
                this._model.DefaultVaultProcessor.CurrentStorage
                );

            scheduleManager.SaveScheduleSettings(this.TemplateNodeId.GetValueOrDefault(), job);

            if (this.Connection.RootOfStaticTree.Search(this) == null)
            {
                this.Connection.ResetStaticTreeRoot();
            }
        }
Example #6
0
        public List <TemplateNodeUpdateJob> GetJobs(List <ScheduleSettingsRow> rows, TemplateNodeInfo node)
        {
            List <TemplateNodeUpdateJob> jobs = new List <TemplateNodeUpdateJob>();

            foreach (ScheduleSettingsRow row in rows)
            {
                if (row != null)
                {
                    TemplateNodeUpdateJob job = this.CreateJob(row, node);

                    jobs.Add(job);
                }
                else
                {
                    jobs.Add(TemplateNodeUpdateJob.Empty);
                }
            }

            return(jobs);
        }
Example #7
0
        public List <TemplateNodeUpdateJob> GetUpdateJobs()
        {
            List <TemplateNodeUpdateJob> updateJobs = new List <TemplateNodeUpdateJob>();

            if (this.NodeDefinition != null && this.NodeDefinition.TemplateNode != null)
            {
                foreach (TabPage page in tabControl1.TabPages)
                {
                    UserSettingScheduleControl usc = page.Controls["UserSettingScheduleControl1"] as UserSettingScheduleControl;

                    if (usc.job == null || usc.job.IsEmpty())
                    {
                        continue;
                    }

                    TemplateNodeUpdateJob newJob = usc.getJob();

                    updateJobs.Add(newJob);
                }
            }

            return(updateJobs);
        }
        public TemplateNodeUpdateJob getJob()
        {
            TemplateNodeUpdateJob newJob = new TemplateNodeUpdateJob();

            newJob.Settings = new ScheduleSettings();

            newJob.Settings.Id            = job.Settings.Id;
            newJob.Settings.Name          = tbName.Text;
            newJob.Settings.IsSendMessage = cbEmailNotification.Checked;
            newJob.Settings.Enabled       = cbJobEnabled.Checked;

            var schedType = (ScheduleType)cbScheduleType.SelectedValue;

            switch (schedType)
            {
            case ScheduleType.One_time:
                newJob.Settings.OccursOnceDateTime =
                    dtDateStartOneTime.Value.Date.Add(dtTimeStartOneTime.Value.TimeOfDay);
                newJob.Settings.OccursOnceDateTimeEnabled = true;
                break;

            case ScheduleType.Recurring:
                if (cbFrequencyType.SelectedIndex == -1)
                {
                    cbFrequencyType.SelectedIndex = 0;
                }

                if (cbFrequencyInterval.SelectedIndex == -1)
                {
                    cbFrequencyInterval.SelectedIndex = 0;
                }

                newJob.Settings.ReccurPeriod =
                    new TimeUnitBasedPeriod(
                        (ReccurPeriodTimeUnit)cbFrequencyType.SelectedValue,
                        (int)cbFrequencyInterval.SelectedValue
                        );

                newJob.Settings.OccursOnceDateTimeEnabled = false;

                break;
            }

            newJob.Settings.DailyFrequency = new DailyFrequency
            {
                OccursOnce = rbDailyFreqOccursOnce.Checked
            };

            if (rbDailyFreqOccursOnce.Checked)
            {
                newJob.Settings.DailyFrequency.OccursOnceTime = dtTimeOccursOnly.Value.TimeOfDay;
            }
            else
            {
                newJob.Settings.DailyFrequency.PeriodTimeUnit      = (DailyFrequency.TimeUnit)cbOccursEveryType.SelectedValue;
                newJob.Settings.DailyFrequency.PeriodTimeUnitCount = (int)cbOccursEvery.SelectedValue;
                newJob.Settings.DailyFrequency.StartingAt          = dtDaylyEveryStart.Value.TimeOfDay;
                newJob.Settings.DailyFrequency.EndingAt            = dtDaylyEveryEnd.Value.TimeOfDay;
            }

            newJob.Settings.StartDate  = dtDateDurationStart.Value;
            newJob.Settings.EndDate    = dtDateDurationEnd.Value;
            newJob.Settings.HasEndDate = rbEndDate.Checked;

            newJob.Settings.ActiveWeekDays.Clear();

            if (cbMonday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Monday);
            }

            if (cbTuesday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Tuesday);
            }

            if (cbWednesday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Wednesday);
            }

            if (cbThursday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Thursday);
            }

            if (cbFriday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Friday);
            }

            if (cbSaturday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Saturday);
            }

            if (cbSunday.Checked)
            {
                newJob.Settings.ActiveWeekDays.Add(DayOfWeek.Sunday);
            }

            if (dayOfMonthPanel.Visible)
            {
                newJob.Settings.DayOfMonth = new DayOfMonthSettings {
                    DayNumber = (int)dayOfMonthUpDown.Value
                };
            }

            return(newJob);
        }
        public UserSettingScheduleControl(TemplateNodeUpdateJob job)
        {
            InitializeComponent();

            //this.lbFrequencyInterval.Text = GetLocalizedText("frequencyInterval");

            this.job                         = job;
            this.lblEnabled.Text             = GetLocalizedText("enabled");
            this.lbFrequencyType.Text        = GetLocalizedText("frequencyType");
            this.lbStartDateTime.Text        = GetLocalizedText("startDateTime");
            this.lbEndDateTime.Text          = GetLocalizedText("endDateTime");
            this.lbName.Text                 = GetLocalizedText("lbName");
            this.lbScheduleType.Text         = GetLocalizedText("lbScheduleType");
            this.lbOneTimeheader.Text        = GetLocalizedText("lbOneTimeheader");
            this.lbDateOnce.Text             = GetLocalizedText("lbDateOnce");
            this.lbTimeOnce.Text             = GetLocalizedText("lbTimeOnce");
            this.lbOccurs.Text               = GetLocalizedText("lbOccurs");
            this.label1.Text                 = GetLocalizedText("label1");
            this.lbDailyFreequency.Text      = GetLocalizedText("lbDailyFreequency");
            this.rbDailyFreqOccursOnce.Text  = GetLocalizedText("rbOccyrsType");
            this.rbDailyFreqOccursEvery.Text = GetLocalizedText("rbOccyrsTypeEvery");
            this.label4.Text                 = GetLocalizedText("label4");
            this.lbStartDate.Text            = GetLocalizedText("lbStartDate");
            this.rbEndDate.Text              = GetLocalizedText("radioButton1");
            this.rbNoEndDate.Text            = GetLocalizedText("radioButton2");
            this.cbEmailNotification.Text    = GetLocalizedText("cbEmailNotification");

            dtDateStartOneTime.Format                        =
                dtDateDurationStart.Format                   =
                    dtTimeStartOneTime.Format                =
                        dtTimeOccursOnly.Format              =
                            dtDaylyEveryStart.Format         =
                                dtDaylyEveryEnd.Format       =
                                    dtDateDurationEnd.Format =
                                        DateTimePickerFormat.Custom;

            dtDateStartOneTime.CustomFormat = dtDateDurationStart.CustomFormat = dtDateDurationEnd.CustomFormat = "dd/MM/yyyy";

            dtTimeStartOneTime.CustomFormat        =
                dtTimeOccursOnly.CustomFormat      =
                    dtDaylyEveryStart.CustomFormat = dtDaylyEveryEnd.CustomFormat = "HH:mm:ss";

            dtDateStartOneTime.MaxDate                        =
                dtDateDurationStart.MaxDate                   =
                    dtTimeStartOneTime.MaxDate                =
                        dtTimeOccursOnly.MaxDate              =
                            dtDaylyEveryStart.MaxDate         =
                                dtDaylyEveryEnd.MaxDate       =
                                    dtDateDurationEnd.MaxDate =
                                        DateTime.MaxValue;

            dtDateStartOneTime.MinDate                        =
                dtDateDurationStart.MinDate                   =
                    dtTimeStartOneTime.MinDate                =
                        dtTimeOccursOnly.MinDate              =
                            dtDaylyEveryStart.MinDate         =
                                dtDaylyEveryEnd.MinDate       =
                                    dtDateDurationEnd.MinDate =
                                        DateTime.MinValue;

            cbFrequencyType.DisplayMember = cbFrequencyInterval.DisplayMember = cbScheduleType.DisplayMember = cbOccursEveryType.DisplayMember = cbOccursEvery.DisplayMember = "Key";
            cbFrequencyType.ValueMember   = cbFrequencyInterval.ValueMember = cbScheduleType.ValueMember = cbOccursEveryType.ValueMember = cbOccursEvery.ValueMember = "Value";

            cbFrequencyType.Items.Clear();
            cbFrequencyInterval.Items.Clear();
            cbScheduleType.Items.Clear();
            cbOccursEveryType.Items.Clear();
            cbOccursEvery.Items.Clear();

            cbFrequencyInterval.DropDownStyle            =
                cbFrequencyType.DropDownStyle            =
                    cbOccursEvery.DropDownStyle          =
                        cbOccursEveryType.DropDownStyle  =
                            cbScheduleType.DropDownStyle =
                                ComboBoxStyle.DropDownList;

            cbScheduleType.DataSource    = ToLocalized <ScheduleType>().ToList();
            cbOccursEveryType.DataSource = ToLocalized <DailyFrequency.TimeUnit>().ToList();
            cbFrequencyType.DataSource   = ToLocalized <ReccurPeriodTimeUnit>().ToList();

            var numberList = new List <KeyValuePair <int, int> >();

            for (var i = 1; i < 61; i++)
            {
                numberList.Add(new KeyValuePair <int, int>(i, i));
            }

            cbFrequencyInterval.DataSource = numberList.ToList();
            cbOccursEvery.DataSource       = numberList.ToList();

            // set default values
            tbId.Text   = job.Settings.Id;
            tbName.Text = job.Settings.Name;
            cbScheduleType.SelectedItem = cbScheduleType.Items.Cast <KeyValuePair <string, ScheduleType> >().FirstOrDefault();

            DateTime tmpDateTime = DateTime.Now;

            dtDateStartOneTime.Value = new DateTime(tmpDateTime.Date.Ticks);
            dtTimeStartOneTime.Value = new DateTime(tmpDateTime.Ticks);

            dtDateDurationStart.Value = new DateTime(tmpDateTime.Ticks);
            dtDateDurationEnd.Value   = new DateTime(tmpDateTime.Ticks > dtDateDurationEnd.MaxDate.Ticks ? dtDateDurationEnd.MaxDate.Date.Ticks : tmpDateTime.Ticks);

            if (new DateTime(tmpDateTime.Ticks) == DateTime.MaxValue || dtDateDurationEnd.Value == dtDateDurationEnd.MaxDate.Date)
            {
                rbNoEndDate.Checked = true;
            }
            else
            {
                rbEndDate.Checked = true;
            }

            radioButton1_CheckedChanged(rbEndDate, new EventArgs());

            cbScheduleType_SelectedIndexChanged(cbScheduleType, new EventArgs());

            cbFrequencyType.SelectedItem = cbFrequencyType.Items.Cast <KeyValuePair <string, ReccurPeriodTimeUnit> >()
                                           .FirstOrDefault();

            cbFrequencyInterval.SelectedItem = cbFrequencyInterval.Items.Cast <KeyValuePair <int, int> >()
                                               .FirstOrDefault();

            cbJobEnabled.Checked = true;

            cbOccursEvery.SelectedItem = cbOccursEvery.Items.Cast <KeyValuePair <int, int> >()
                                         .FirstOrDefault();

            cbOccursEveryType.SelectedItem = cbOccursEveryType.Items.Cast <KeyValuePair <string, DailyFrequency.TimeUnit> >()
                                             .FirstOrDefault();

            dtTimeOccursOnly.Value =
                new DateTime(tmpDateTime.Ticks);

            dtDaylyEveryStart.Value = new DateTime(tmpDateTime.Ticks);
            dtDaylyEveryEnd.Value   = new DateTime(tmpDateTime.Ticks);

            rbDailyFreqOccursOnce.Checked  = false;
            rbDailyFreqOccursEvery.Checked = true;
            rbDailyFreqOccursOnce_CheckedChanged(rbDailyFreqOccursOnce, new EventArgs());

            cbEmailNotification.Checked = job.Settings.IsSendMessage;
            refreshEmailNotificationControlsState();
        }
Example #10
0
        public void AssignRefreshJob(TemplateNodeUpdateJob job)
        {
            InstanceTemplate nodeSetting = GetUserSettings(true);

            nodeSetting.Connection.ReportRefreshJob = job;
        }