Exemple #1
0
        /// <summary>
        /// 将AlarmInfo结构转换为字符串数组
        /// </summary>
        /// <param name="info"></param>
        /// <returns></returns>
        public static string[] GetStringArrayFromAlarmInfo(ALARMINFO info)
        {
            GetRepeatInfo(GetRepeatIntervalString(info.RepeatInterval));
            string[] arr = new string[]
            {
                info.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"), //CreateTime
                info.AlarmDate.ToString("yyyy-MM-dd HH:mm:ss"),  //AlarmDate
                "false",                                         //IsExpired
                GetRepeatIntervalString(info.RepeatInterval),    //Recurrence
                info.AlarmName,                                  //Title
                info.AlarmContents,                              //Contents
                info.AlarmSound,                                 //Sound
                "0",                                             //DelayTime
                "true"                                           //Enable
            };

            return(arr);
        }
Exemple #2
0
        /// <summary>
        /// 从数据表中解析Alarm信息
        /// </summary>
        /// <param name="table">一个数据表,ref引用</param>
        /// <returns>返回一个List的AlarmInfo</returns>
        public List <ALARMINFO> GetAlarmInfoFromTable(ref DataTable table)
        {
            List <ALARMINFO> Alarms = new List <ALARMINFO>();
            ALARMINFO        info   = new ALARMINFO();

            for (int i = 0; i < table.Rows.Count; i++)
            {
                info.AlarmID        = int.Parse(table.Rows[i]["AlarmID"].ToString());                    //ID
                info.CreateDate     = DateTime.Parse(table.Rows[i]["CreateTime"].ToString());            //创建日期
                info.AlarmDate      = DateTime.Parse(table.Rows[i]["AlarmDate"].ToString());             //提醒日期
                info.RepeatInterval = GetRepeatInfo(table.Rows[i]["Recurrence"].ToString());             //重复周期
                info.AlarmName      = table.Rows[i]["Title"].ToString();                                 //标题
                info.AlarmContents  = table.Rows[i]["Contents"].ToString();                              //备注
                info.AlarmSound     = table.Rows[i]["Sound"].ToString();                                 //声音路径
                info.AlarmStatus    = int.Parse(table.Rows[i]["Enable"].ToString()) == 1 ? true : false; //是否启用
                Alarms.Add(info);
            }
            return(Alarms);
        }
Exemple #3
0
        public static ALARMINFO ParseAlarmInfo(string str)
        {
            ALARMINFO info = new ALARMINFO();

            info.CreateDate             = DateTime.Now;
            info.AlarmName              = "Alarm";
            info.AlarmContents          = "";
            info.AlarmStatus            = true;
            info.RepeatInterval.Once    = true;
            info.RepeatInterval.Daily   = false;
            info.RepeatInterval.Monthly = false;
            info.RepeatInterval.Weekly  = false;
            /// TODO: 如何解析。
            /// 这里只提供快速添加功能,所以不需要判断add之类的词
            /// 例如: add 10 min, add 10 hour, add 10 day
            /// at 1/20 20:35, 每年的1月20日重复
            /// at 20:35,每天的20:35分重复
            var t     = str.Split(' ');
            int value = 0;

            if (int.TryParse(t[0], out value))
            {
                //时间无效
                if (!(value > 0))
                {
                    info.AlarmStatus = false;
                    return(info);
                }
                DateTime now;

                if (t[1].ToLower() == "min" || t[1].ToLower() == "m")
                {
                    now = DateTime.Now.AddMinutes(value);
                    //分钟
                    info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
                }
                if (t[1].ToLower() == "hour" || t[1].ToLower() == "h")
                {
                    //小时
                    now            = DateTime.Now.AddHours(value);
                    info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
                }
                if (t[1].ToLower() == "day" || t[1].ToLower() == "d")
                {
                    //天
                    now            = DateTime.Now.AddDays(value);
                    info.AlarmDate = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second);
                }
                if (t.Length > 2)
                {
                    //有标题
                    info.AlarmName = t[2];
                    if (t.Length > 3)
                    {
                        //有备注
                        info.AlarmContents = t[3];
                    }
                }
            }
            else
            {
                info.AlarmStatus = false;
            }

            return(info);
        }