All pastes #2134715 Raw Edit

Untitled

public text v1 · immutable
#2134715 ·published 2012-04-02 06:07 UTC
rendered paste body
using System;
using MayhemCore;
using System.Globalization;
using System.Windows;
using System.Windows.Threading;
using System.Runtime.Serialization;
using System.Threading;

namespace PreGsocTest1
{
    [DataContract]
    [MayhemModule("Alarm","This event triggers alarm at a particular time.")]
    public class TimeTrigger : EventBase
    {
        [DataMember]
        private int hours;
        [DataMember]
        private int minutes;
        [DataMember]
        private int seconds;
        
        //DispatcherTimer timer;
        protected override void OnLoadDefaults()
        {
 	        //base.OnLoadDefaults();
            //seconds = minutes = hours = 0;
            seconds = 0;
            minutes = 40;
            hours = 10;
        }

        protected override void OnAfterLoad()
        {
            //timer = new DispatcherTimer();
            //timer.Tick += AlarmTimeHit;

        }
        private void intervals()
        {

                DateTime now = DateTime.Now;
                DateTime alarmTime = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, hours, minutes, seconds);

                //timer = new DispatcherTimer();
                //timer.Interval = new TimeSpan(alarmTime.Subtract(now).Ticks);
                int ms = (int)alarmTime.Subtract(now).TotalMilliseconds;
                //Console.Write(ms.ToString());
                Thread.Sleep(ms);
                AlarmTimeHit(null, null);
                alarmTime.AddDays(1);
                
        }
        private void AlarmTimeHit(object o, EventArgs a)
        {
            //timer.Interval = new TimeSpan(24, 0, 0);
            Trigger();
        }
        protected override void OnEnabling(EnablingEventArgs e)
        {
            intervals();
            //timer.Start();
        }

        protected override void OnDisabled(DisabledEventArgs e)
        {
            //timer.Stop();
        }

    }
}