Exemplo n.º 1
0
        void RunningInit(TortugaStates previous)
        {
            _tortuga.GetComponent <APhysics>().maxSpeed = 15f;
            vanishingStateTask = TaskScheduler.AddTask(() => Init(TortugaStates.Vanishing), vanishingTime, vanishingTime, _tortuga.id);

            //
            // Choose a direction away from the player.
            //

            Action directionChooser = () =>
            {
                var player = GameObjectManager.FindObjectWithTag("player");
                if (player != null)
                {
                    var awayDir = _tortuga.transform.position - player.transform.position;

                    // Find a random direction vector that is the direction away from the player rotated
                    // by at most 90 or -90 degrees, making sure that the resulting vector is still facing
                    // away from the player.
                    var randAngle = GameManager.random.NextDouble() * Math.PI - Math.PI / 2;
                    _tortuga.transform.direction = new Vector2(
                        awayDir.X * (float)Math.Cos(randAngle) - awayDir.Y * (float)Math.Sin(randAngle),
                        awayDir.X * (float)Math.Sin(randAngle) + awayDir.Y * (float)Math.Cos(randAngle));
                }
            };

            directionChooser();

            directionChooserTask = TaskScheduler.AddTask(directionChooser, changeDirectionTime, -1, _tortuga.id);
        }
Exemplo n.º 2
0
        public TaskScheduler.UrgentWorkflow CreateUrgentTestWF()
        {
            var wf = new TaskScheduler.UrgentWorkflow();

            wf.Optimize = true;
            var cls = GetClusterNames();

            wf.Resources      = cls.Select(name => TaskTimeMeter.CreateResourceRecord(name)).ToArray();
            wf.ResourcesNames = new string[0];
            var   ss = GetAppNames();
            ulong i  = 0;

            wf.ActiveTasks = new List <TaskScheduler.ActiveTask>();
            var runningTask = new TaskScheduler.ActiveTask()
            {
                Id = 500000
            };

            runningTask.Destination = new LaunchDestination()
            {
                ResourceName = wf.Resources[0].Name, NodeNames = wf.Resources[0].Nodes.Select(n => n.DNSName).ToArray()
            };
            wf.ActiveTasks.Add(runningTask);
            for (var j = 0; j < 5 && j < ss.Count(); j++)
            {
                var task = new TaskScheduler.Task();
                task.ApplicationName = ss.ElementAt(j);
                task.Parameters      = new Dictionary <string, string>();
                task.Parameters["FUNCTIONS_COUNT"] = 20000.ToString();
                task.Id = i++;
                wf.Tasks.Add(task);
            }
            return(wf);
        }
Exemplo n.º 3
0
        void HalfInit(SpikeStates previous)
        {
            _spike.sprite.index = 121;
            _spike.collisionBox = null;

            task = TaskScheduler.AddTask(() => Init(SpikeStates.Full), changeStateTime, changeStateTime, _spike.id);
        }
Exemplo n.º 4
0
        public TaskScheduler.Workflow CreateTestWF()
        {
            var wf  = new TaskScheduler.Workflow();
            var cls = GetClusterNames();

            wf.Resources = new Resource[0]; //cls.Select(name => TaskTimeMeter.CreateResourceRecord(name)).ToArray();
            wf.Resources = wf.Resources.Union(new List <Resource>
            {
                new Resource {
                    Name  = "VM1",
                    Nodes = new[] {
                        new Node {
                            DNSName        = "machine",
                            CoresAvailable = 1,
                            ResourceName   = "VM1",
                            Parameters     = new Dictionary <string, string>()
                            {
                                { "IS_VIRTUAL", "True" },
                                { "SERVICE_URL", "http://192.168.9.10:8787/RExService" },
                                { VirtualConnectionParams.VCP, Newtonsoft.Json.JsonConvert.SerializeObject(new global::Common.VManager.DataTypes.HostConnectionParams()
                                    {
                                        Name       = "lo",
                                        Type       = "VBOX",
                                        Parameters = new Dictionary <string, string>()
                                    }) }
                            }
                        }
                    },
                    Parameters = new Dictionary <string, string>()
                }
            }).ToArray();
            wf.ResourcesNames = new string[0];
            var   ss = GetAppNames();
            ulong i  = 0;

            for (var j = 0; j < 5 && j < ss.Count(); j++)
            {
                var task = new TaskScheduler.Task();
                task.ApplicationName = ss.ElementAt(j);
                task.Parameters      = new Dictionary <string, string>();
                task.Parameters["FUNCTIONS_COUNT"] = 1000.ToString();
                task.Id = i++;
                task.SuitableDestinations = new LaunchDestination[1] {
                    new LaunchDestination()
                    {
                        ResourceName = "cluster_niinkt_1",
                        NodeNames    = new string[1] {
                            "i-master.nanocomputer.net"
                        }
                    }
                };
                wf.Tasks.Add(task);
            }
            ;

            return(wf);
        }
Exemplo n.º 5
0
        void WonderingInit(GooseStates previous)
        {
            var physics = _goose.GetComponent <APhysics>();

            if (physics != null)
            {
                physics.maxSpeed = _goose.baseSpeed;
            }

            _goose.transform.direction = Vector2.Zero;

            Action wonderingDirFunc = () =>
            {
                // Find a random direction vector that is the direction away from the player rotated
                // by at most 90 or -90 degrees, making sure that the resulting vector is still facing
                // away from the player.
                var randAngle = GameManager.random.NextDouble() * 2 * Math.PI;
                targetDir = new Vector2((float)Math.Sin(randAngle), (float)Math.Cos(randAngle));
                targetDir.Normalize();

                Debug.Log($"{_goose.GetType().FullName} Wondering State direction angle is {randAngle}");

                targetPosition = _goose.transform.position + targetDir * 20;
            };

            wonderingDirTask = TaskScheduler.AddTask(wonderingDirFunc, changeDirTime, -1, _goose.id);

            //
            // Choose a direction away from the player at first.
            //

            var p = GameObjectManager.FindObjectWithTag("player");

            if (p != null)
            {
                var awayDir = _goose.transform.position - p.transform.position;

                // Find a random direction vector that is the direction away from the player rotated
                // by at most 90 or -90 degrees, making sure that the resulting vector is still facing
                // away from the player.
                var randAngle = GameManager.random.NextDouble() * Math.PI - Math.PI / 2;
                targetDir = new Vector2(
                    awayDir.X * (float)Math.Cos(randAngle) - awayDir.Y * (float)Math.Sin(randAngle),
                    awayDir.X * (float)Math.Sin(randAngle) + awayDir.Y * (float)Math.Cos(randAngle));
                targetDir.Normalize();

                Debug.Log($"{_goose.GetType().FullName} Wondering State direction angle is {randAngle}");

                targetPosition = _goose.transform.position + targetDir * 10;
            }
        }
Exemplo n.º 6
0
        void WonderingInit(BatStates previous)
        {
            var physics = _bat.GetComponent <APhysics>();

            physics.friction     = 0.99f;
            physics.maxSpeed     = _bat.baseSpeed / 4;
            physics.acceleration = physics.maxSpeed / 4;

            _bat.transform.direction = Vector2.Zero;

            //
            // Set correct animation.
            //

            _bat.RemoveComponent <SpriteAnimation>();

            _bat.flyingAnim.Reset();
            _bat.flyingAnim.animationFrameLength = _bat.animationLength / (_bat.flyingAnim.spriteList.Count);

            _bat.AddComponent(_bat.flyingAnim);

            //
            // Chooses a new position after some time.
            //

            targetPosition = _bat.transform.position;

            Action func = () =>
            {
                var dir    = GameManager.random.NextDouble() * 2 * Math.PI;
                var length = (float)GameManager.random.NextDouble() * (wonderingLengthMax - wonderingLengthMin) + wonderingLengthMin;
                targetPosition = new Vector2((float)Math.Sin(dir), (float)Math.Cos(dir)) * length + _bat.transform.position;
                targetDir      = targetPosition - _bat.transform.position;
                if (targetDir != Vector2.Zero)
                {
                    targetDir.Normalize();
                }
            };

            func();

            targetPosTask = TaskScheduler.AddTask(func, newPositionInterval, -1, _bat.id);
        }
Exemplo n.º 7
0
        void FullInit(SpikeStates previous)
        {
            _spike.sprite.index = 122;

            for (int i = 0; i < particleNumber; i += 1)
            {
                var smoke =
                    new Smoke(_spike.transform.position + new Vector2(1 + GameManager.random.Next(6), GameManager.random.Next(6)));
                smoke.SetRadius(1, 1.5f);
                smoke.SetMaxMoveSpeed(10f + (float)GameManager.random.NextDouble() * 5f);
                smoke.SetRadiusDecreaseSpeed(3f + (float)GameManager.random.NextDouble());
                ParticleManager.AddParticle(smoke);
            }

            _spike.collisionBox = new Box(_spike.transform.position, new Vector2(6, 6), false, new Vector2(1, 1));

            ((Camera)GameObjectManager.FindObjectWithTag("camera"))?.AddShake(0.1);

            task = TaskScheduler.AddTask(() => Init(SpikeStates.Down), changeStateTime, changeStateTime, _spike.id);
        }
Exemplo n.º 8
0
        void WonderingInit(TortugaStates previous)
        {
            _tortuga.GetComponent <APhysics>().maxSpeed = 10f;

            //
            // Chooses a new position after some time.
            //

            targetPosition = _tortuga.transform.position;

            Action func = () =>
            {
                var dir    = GameManager.random.NextDouble() * 2 * Math.PI;
                var length = (float)GameManager.random.NextDouble() * (wonderingLengthMax - wonderingLengthMin) + wonderingLengthMin;
                targetPosition = new Vector2((float)Math.Sin(dir), (float)Math.Cos(dir)) * length + _tortuga.transform.position;
                targetDir      = targetPosition - _tortuga.transform.position;
                if (targetDir != Vector2.Zero)
                {
                    targetDir.Normalize();
                }
            };

            targetPosTask = TaskScheduler.AddTask(func, newPositionInterval, -1, _tortuga.id);
        }
Exemplo n.º 9
0
        public TaskScheduler.Workflow CreateTestWF()
        {
            var wf = new TaskScheduler.Workflow();
            var cls = GetClusterNames();
            wf.Resources = new Resource[0]; //cls.Select(name => TaskTimeMeter.CreateResourceRecord(name)).ToArray();
            wf.Resources = wf.Resources.Union(new List<Resource>
            {
                new Resource{
                    Name = "VM1",
                    Nodes = new[] {
                        new Node {
                            DNSName = "machine",
                            CoresAvailable = 1,
                            ResourceName = "VM1",
                            Parameters = new Dictionary<string, string>() {
                                {"IS_VIRTUAL", "True"},
                                { "SERVICE_URL", "http://192.168.9.10:8787/RExService" },
                                { VirtualConnectionParams.VCP, Newtonsoft.Json.JsonConvert.SerializeObject(new global::Common.VManager.DataTypes.HostConnectionParams()
                                    {
                                        Name = "lo",
                                        Type = "VBOX",
                                        Parameters = new Dictionary<string,string>()
                                    })}
                            }
                        }
                    },
                    Parameters = new Dictionary<string, string>()
                }
            }).ToArray();
            wf.ResourcesNames = new string[0];
            var ss = GetAppNames();
            ulong i = 0;
            for (var j = 0; j < 5 && j < ss.Count(); j++)
            {
                var task = new TaskScheduler.Task();
                task.ApplicationName = ss.ElementAt(j);
                task.Parameters = new Dictionary<string, string>();
                task.Parameters["FUNCTIONS_COUNT"] = 1000.ToString();
                task.Id = i++;
                task.SuitableDestinations = new LaunchDestination[1] {
                    new LaunchDestination()
                    {
                        ResourceName = "cluster_niinkt_1",
                        NodeNames = new string[1] { "i-master.nanocomputer.net" }
                    }
                };
                wf.Tasks.Add(task);
            };

            return wf;
        }
Exemplo n.º 10
0
 public TaskScheduler.UrgentWorkflow CreateUrgentTestWF()
 {
     var wf = new TaskScheduler.UrgentWorkflow();
     wf.Optimize = true;
     var cls = GetClusterNames();
     wf.Resources = cls.Select(name => TaskTimeMeter.CreateResourceRecord(name)).ToArray();
     wf.ResourcesNames = new string[0];
     var ss = GetAppNames();
     ulong i = 0;
     wf.ActiveTasks = new List<TaskScheduler.ActiveTask>();
     var runningTask = new TaskScheduler.ActiveTask() { Id = 500000 };
     runningTask.Destination = new LaunchDestination() { ResourceName = wf.Resources[0].Name, NodeNames = wf.Resources[0].Nodes.Select(n => n.DNSName).ToArray() };
     wf.ActiveTasks.Add(runningTask);
     for (var j = 0; j < 5 && j < ss.Count(); j++)
     {
         var task = new TaskScheduler.Task();
         task.ApplicationName = ss.ElementAt(j);
         task.Parameters = new Dictionary<string, string>();
         task.Parameters["FUNCTIONS_COUNT"] = 20000.ToString();
         task.Id = i++;
         wf.Tasks.Add(task);
     }
     return wf;
 }
Exemplo n.º 11
0
        private void ShowInformation()
        {
            if (m_NewJob)
            {
                return;
            }

            m_Task = m_Tasks.OpenTask(m_Job.Name);

            txtName.Text        = m_Task.Name;
            txtDescription.Text = m_Task.Comment;

            //txtTime.Text = m_Task.Triggers[0].BeginDate.Hour.ToString() + ":" + m_Task.Triggers[0].BeginDate.Minute.ToString();

            dtpTime.Value = DateTime.Parse(m_Job.StartTime);
            dtpDate.Value = m_Task.Triggers[0].BeginDate;

            if (m_Task.Triggers[0] is TaskScheduler.DailyTrigger)
            {
                cboSchedule.SelectedIndex = 0;

                TaskScheduler.DailyTrigger dayTrigger = (TaskScheduler.DailyTrigger)m_Task.Triggers[0];
                nupDay.Value = Convert.ToDecimal(dayTrigger.DaysInterval);
            }
            else if (m_Task.Triggers[0] is TaskScheduler.WeeklyTrigger)
            {
                cboSchedule.SelectedIndex = 1;

                TaskScheduler.WeeklyTrigger weekTrigger = (TaskScheduler.WeeklyTrigger)m_Task.Triggers[0];
                string days = weekTrigger.WeekDays.ToString();

                cboWeekMonday.Checked    = (days.IndexOf("Monday") > -1);
                cboWeekTuesday.Checked   = (days.IndexOf("Tuesday") > -1);
                cboWeekWednesday.Checked = (days.IndexOf("Wednesday") > -1);
                cboWeekThursday.Checked  = (days.IndexOf("Thursday") > -1);
                cboWeekFriday.Checked    = (days.IndexOf("Friday") > -1);
                cboWeekSaturday.Checked  = (days.IndexOf("Saturday") > -1);
                cboWeekSunday.Checked    = (days.IndexOf("Sunday") > -1);

                nupWeek.Value = Convert.ToDecimal(weekTrigger.WeeksInterval);
            }
            else if (m_Task.Triggers[0] is TaskScheduler.MonthlyTrigger)
            {
                cboSchedule.SelectedIndex = 2;

                TaskScheduler.MonthlyTrigger monthTrigger = (TaskScheduler.MonthlyTrigger)m_Task.Triggers[0];
                string months = monthTrigger.Months.ToString();

                cboMonthJan.Checked  = (months.IndexOf("January") > -1);
                cboMonthFeb.Checked  = (months.IndexOf("February") > -1);
                cboMonthMar.Checked  = (months.IndexOf("March") > -1);
                cboMonthApr.Checked  = (months.IndexOf("April") > -1);
                cboMonthMay.Checked  = (months.IndexOf("May") > -1);
                cboMonthJune.Checked = (months.IndexOf("June") > -1);
                cboMonthJuly.Checked = (months.IndexOf("July") > -1);
                cboMonthAug.Checked  = (months.IndexOf("August") > -1);
                cboMontSept.Checked  = (months.IndexOf("September") > -1);
                cboMontOct.Checked   = (months.IndexOf("October") > -1);
                cboMonthNov.Checked  = (months.IndexOf("November") > -1);
                cboMontDec.Checked   = (months.IndexOf("December") > -1);

                nupMonth.Value = Convert.ToInt32(monthTrigger.Days[0]);
            }
            else if (m_Task.Triggers[0] is TaskScheduler.RunOnceTrigger)
            {
                cboSchedule.SelectedIndex = 3;
            }

            foreach (DataStorage.JobActionsRow action in m_Job.GetJobActionsRows())
            {
                DeviceHandler.Device device = GetDevice(action.DeviceID);
                ListViewItem         item   = lvwDevices.Items.Add(device.Name);
                item.SubItems.Add(action.TurnOn ? Localization.GetString("uniton") : Localization.GetString("unitoff"));

                item.Tag = device;
            }
        }
Exemplo n.º 12
0
        private bool SetInformation()
        {
            try
            {
                if (lvwDevices.Items.Count == 0)
                {
                    MessageBox.Show(Localization.GetString("FailedToSelectUnits"), Localization.GetString("telldusscheduler"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return(false);
                }

                if (txtName.Text.Length == 0)
                {
                    MessageBox.Show(Localization.GetString("FailedToNameSchedule"), Localization.GetString("telldusscheduler"),
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return(false);
                }

                if (m_NewJob)
                {
                    frmAskUsername frm    = new frmAskUsername();
                    DialogResult   result = frm.ShowDialog(this);

                    if (result == DialogResult.Cancel)
                    {
                        return(false);
                    }

                    m_Job = m_Data.Job.NewJobRow();


                    string encrypted = EncryptDecrypt.Encrypt(frm.Password, "ThisIsNotParadise");

                    m_Job.Username = frm.Username;
                    m_Job.Password = encrypted;

                    frm.Close();
                }

                string password = EncryptDecrypt.Decrypt(m_Job.Password, "ThisIsNotParadise");

                //Set general information.
                m_Job.JobName     = txtName.Text;
                m_Job.Name        = txtName.Text;
                m_Job.Description = txtDescription.Text;

                if (!m_NewJob) //Clear previous actions and add new ones.
                {
                    foreach (DataStorage.JobActionsRow action in m_Job.GetJobActionsRows())
                    {
                        action.Delete();
                    }
                }
                m_Data.AcceptChanges();

                //Add actions.
                foreach (ListViewItem item in lvwDevices.Items)
                {
                    DataStorage.JobActionsRow action = m_Data.JobActions.NewJobActionsRow();
                    DeviceHandler.Device      device = (DeviceHandler.Device)item.Tag;

                    action.DeviceID = device.ID;
                    action.JobID    = m_Job.ID;

                    if (item.SubItems[1].Text == Localization.GetString("uniton"))
                    {
                        action.TurnOn = true;
                    }
                    else
                    {
                        action.TurnOn = false;
                    }

                    m_Data.JobActions.AddJobActionsRow(action);
                }

                TaskScheduler.Task task = null;

                //Create a new schedule in windows.
                if (m_Task != null)
                {
                    task = m_Task;
                }
                else
                {
                    task = m_Tasks.CreateTask(txtName.Text);
                }

                string path = System.IO.Path.GetDirectoryName(Application.ExecutablePath);
                path = System.IO.Path.Combine(path, "DeviceSchedulerAgent.exe");

                //Clear trigger.
                if (task.Triggers != null)
                {
                    task.Triggers.Clear();
                }

                //Set general information.
                task.ApplicationName = path;
                task.Parameters      = m_Job.ID.ToString();
                task.Comment         = txtDescription.Text;

                //Set user account information.
                try
                {
                    if (password.Length == 0)
                    {
                        task.SetAccountInformation(m_Job.Username, null);
                    }
                    else
                    {
                        task.SetAccountInformation(m_Job.Username, password);
                    }
                }
                catch
                {
                    MessageBox.Show(Localization.GetString("FailedToSetPassword"),
                                    Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                //Set Telldus as creator so we can recognize the task next time.
                task.Creator = "Telldus";

                m_Job.StartTime = dtpTime.Value.Hour.ToString() + ":" + dtpTime.Value.Minute.ToString();

                dtpTime.Value = DateTime.Parse(dtpDate.Value.ToShortDateString() + " " + dtpTime.Value.ToShortTimeString());

                DateTime time   = dtpTime.Value;
                short    hour   = short.Parse(dtpTime.Value.Hour.ToString());
                short    minute = short.Parse(dtpTime.Value.Minute.ToString());

                short interval = 1;

                switch (cboSchedule.SelectedIndex)
                {
                case 0:     //Dailytrigger
                    interval = short.Parse(nupDay.Value.ToString());
                    TaskScheduler.DailyTrigger dayTrigger = new TaskScheduler.DailyTrigger(hour, minute, interval);
                    dayTrigger.BeginDate = dtpDate.Value;
                    //trigger.BeginDate.AddHours(Convert.ToDouble(dtpTime.Value.Hour));
                    //trigger.BeginDate.AddMinutes(Convert.ToDouble(dtpTime.Value.Minute));
                    dayTrigger.Disabled = false;
                    task.Triggers.Add(dayTrigger);
                    break;

                case 1:     //Weeklytrigger
                    TaskScheduler.DaysOfTheWeek weekDays = 0;
                    interval = short.Parse(nupWeek.Value.ToString());

                    if (cboWeekMonday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Monday;
                    }

                    if (cboWeekTuesday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Tuesday;
                    }

                    if (cboWeekWednesday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Wednesday;
                    }

                    if (cboWeekThursday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Thursday;
                    }

                    if (cboWeekFriday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Friday;
                    }

                    if (cboWeekSaturday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Saturday;
                    }

                    if (cboWeekSunday.Checked)
                    {
                        weekDays = weekDays | TaskScheduler.DaysOfTheWeek.Sunday;
                    }

                    TaskScheduler.WeeklyTrigger weeklyTrigger = new TaskScheduler.WeeklyTrigger(hour, minute, weekDays, interval);
                    time = DateTime.Parse(time.ToShortDateString() + " " + dtpTime.Value.Hour + ":" + dtpTime.Value.Minute + ":00");
                    //weeklyTrigger.BeginDate = time;
                    //weeklyTrigger.BeginDate=weeklyTrigger.BeginDate.AddHours(Convert.ToDouble(dtpTime.Value.Hour));
                    //weeklyTrigger.BeginDate=weeklyTrigger.BeginDate.AddMinutes(Convert.ToDouble(dtpTime.Value.Minute));
                    task.Triggers.Add(weeklyTrigger);
                    break;

                case 2:     //Monthlytrigger
                    //interval = int.Parse(nupmo

                    TaskScheduler.MonthsOfTheYear months = 0;

                    if (cboMonthJan.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.January;
                    }

                    if (cboMonthFeb.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.February;
                    }

                    if (cboMonthMar.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.March;
                    }

                    if (cboMonthApr.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.April;
                    }

                    if (cboMonthMay.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.May;
                    }

                    if (cboMonthJune.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.June;
                    }

                    if (cboMonthJuly.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.July;
                    }

                    if (cboMonthAug.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.August;
                    }

                    if (cboMontSept.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.September;
                    }

                    if (cboMontOct.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.October;
                    }

                    if (cboMonthNov.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.November;
                    }

                    if (cboMontDec.Checked)
                    {
                        months = months | TaskScheduler.MonthsOfTheYear.December;
                    }

                    int[] days = new int[1] {
                        int.Parse(nupMonth.Value.ToString())
                    };
                    TaskScheduler.MonthlyTrigger monthlyTrigger = new TaskScheduler.MonthlyTrigger(hour, minute, days, months);
                    monthlyTrigger.BeginDate = dtpDate.Value;
                    //trigger.BeginDate.AddMinutes(Convert.ToDouble(dtpTime.Value.Minute));
                    task.Triggers.Add(monthlyTrigger);
                    break;

                case 3:
                    TaskScheduler.RunOnceTrigger onceTrigger = new TaskScheduler.RunOnceTrigger(dtpDate.Value);
                    onceTrigger.StartHour   = hour;
                    onceTrigger.StartMinute = minute;
                    task.Triggers.Add(onceTrigger);
                    break;
                }


                task.Triggers[0].BeginDate = time;

                task.Save();
                task.Close();

                if (m_NewJob)
                {
                    m_Data.Job.AddJobRow(m_Job);
                }

                m_Data.AcceptChanges();

                return(true);
            }
            catch (Exception ex)
            {
                //ett ohanterat fel har uppstått i programmet.
                MessageBox.Show(Localization.GetString("msg1") + Environment.NewLine + ex.Message,
                                Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);

                return(false);
            }
        }
Exemplo n.º 13
0
        private void ShowInformation()
        {
            if (m_NewJob)
            {
                return;
            }

            m_Task = m_Tasks.OpenTask(m_Job.Name);

            txtName.Text = m_Task.Name;
            txtDescription.Text = m_Task.Comment;

            //txtTime.Text = m_Task.Triggers[0].BeginDate.Hour.ToString() + ":" + m_Task.Triggers[0].BeginDate.Minute.ToString();

            dtpTime.Value = DateTime.Parse(m_Job.StartTime);
            dtpDate.Value = m_Task.Triggers[0].BeginDate;

            if (m_Task.Triggers[0] is TaskScheduler.DailyTrigger)
            {
                cboSchedule.SelectedIndex = 0;

                TaskScheduler.DailyTrigger dayTrigger = (TaskScheduler.DailyTrigger)m_Task.Triggers[0];
                nupDay.Value = Convert.ToDecimal(dayTrigger.DaysInterval);

            }
            else if (m_Task.Triggers[0] is TaskScheduler.WeeklyTrigger)
            {
                cboSchedule.SelectedIndex = 1;

                TaskScheduler.WeeklyTrigger weekTrigger = (TaskScheduler.WeeklyTrigger)m_Task.Triggers[0];
                string days = weekTrigger.WeekDays.ToString();

                cboWeekMonday.Checked = (days.IndexOf("Monday") > -1);
                cboWeekTuesday.Checked = (days.IndexOf("Tuesday") > -1);
                cboWeekWednesday.Checked = (days.IndexOf("Wednesday") > -1);
                cboWeekThursday.Checked = (days.IndexOf("Thursday") > -1);
                cboWeekFriday.Checked = (days.IndexOf("Friday") > -1);
                cboWeekSaturday.Checked = (days.IndexOf("Saturday") > -1);
                cboWeekSunday.Checked = (days.IndexOf("Sunday") > -1);

                nupWeek.Value = Convert.ToDecimal(weekTrigger.WeeksInterval);

            }
            else if (m_Task.Triggers[0] is TaskScheduler.MonthlyTrigger)
            {
                cboSchedule.SelectedIndex = 2;

                TaskScheduler.MonthlyTrigger monthTrigger = (TaskScheduler.MonthlyTrigger)m_Task.Triggers[0];
                string months = monthTrigger.Months.ToString();

                cboMonthJan.Checked = (months.IndexOf("January") > -1);
                cboMonthFeb.Checked = (months.IndexOf("February") > -1);
                cboMonthMar.Checked = (months.IndexOf("March") > -1);
                cboMonthApr.Checked = (months.IndexOf("April") > -1);
                cboMonthMay.Checked = (months.IndexOf("May") > -1);
                cboMonthJune.Checked = (months.IndexOf("June") > -1);
                cboMonthJuly.Checked = (months.IndexOf("July") > -1);
                cboMonthAug.Checked = (months.IndexOf("August") > -1);
                cboMontSept.Checked = (months.IndexOf("September") > -1);
                cboMontOct.Checked = (months.IndexOf("October") > -1);
                cboMonthNov.Checked = (months.IndexOf("November") > -1);
                cboMontDec.Checked = (months.IndexOf("December") > -1);

                nupMonth.Value = Convert.ToInt32(monthTrigger.Days[0]);
            }
            else if (m_Task.Triggers[0] is TaskScheduler.RunOnceTrigger)
            {
                cboSchedule.SelectedIndex = 3;
            }

            foreach (DataStorage.JobActionsRow action in m_Job.GetJobActionsRows())
            {

                DeviceHandler.Device device= GetDevice(action.DeviceID);
                ListViewItem item = lvwDevices.Items.Add(device.Name);
                item.SubItems.Add(action.TurnOn ? Localization.GetString("uniton") : Localization.GetString("unitoff"));

                item.Tag = device;
            }
        }