Beispiel #1
0
        /// <summary>ロードメイン
        /// </summary>
        public CTimeTable Load(string file)
        {
            CTimeTable ret = new CTimeTable();

            ret.ScheduleEditedEvnetIsValid = false;
            XmlDocument doc = new XmlDocument();

            doc.Load(file);
            XmlElement rNode = doc.DocumentElement;
            XmlElement cNode = rNode.FirstChild as XmlElement;

            while (cNode != null)
            {
                if (cNode.Name == "patterns")
                {
                    // シフト
                    LoadPatterns(cNode, ret);
                }
                else if (cNode.Name == "members")
                {
                    // メンバー
                    LoadMembers(cNode, ret);
                }
                else if (cNode.Name == "requires")
                {
                    // 人員配置
                    LoadRequirePatterns(cNode, ret);
                }
                else if (cNode.Name == "dayoffs")
                {
                    // 休日
                    LoadDayOffs(cNode, ret);
                }
                else if (cNode.Name == "scheduleddate")
                {
                    // 日付
                    LoadScheduledDate(cNode, ret);
                }
                else if (cNode.Name == "starttime")
                {
                    // 営業開始時間
                    string text = cNode.InnerText;
                    ret.StartTime = TimeSpan.Parse(text);
                }
                else if (cNode.Name == "endtime")
                {
                    // 営業終了時間
                    if (ret.Around == TimeSpan.Zero)
                    {
                        string text = cNode.InnerText;
                        ret.EndTime = TimeSpan.Parse(text);
                    }
                }
                else if (cNode.Name == "around")
                {
                    // 営業時間
                    string text = cNode.InnerText;
                    ret.Around = TimeSpan.Parse(text);
                }
                else if (cNode.Name == "default_require")
                {
                    // デフォルトの人員配置
                    string text      = cNode.InnerText;
                    int    requireid = int.Parse(text);
                    if (requireid > 0)
                    {
                        CRequirePatterns require = ret.Requires.GetByID(requireid);
                        if (require != null)
                        {
                            ret.DefaultRequire = require;
                        }
                    }
                }
                else if (cNode.Name == "defaultRequireweekday")
                {
                    // デフォルトの人員配置(曜日ごと)
                    string text1 = cNode.GetAttribute("weekday");
                    string text2 = cNode.GetAttribute("require");
                    try {
                        int weekdayid, requireid;
                        int.TryParse(text1, out weekdayid);
                        int.TryParse(text2, out requireid);
                        //= (int.TryParse(text1,) ? int.Parse(text1) : 0);
                        //int requireid = int.Parse(text2);
                        if (weekdayid >= 0)
                        {
                            CRequirePatterns require = ret.Requires.GetByID(requireid);
                            if (require != null)
                            {
                                ret.SetDefaultRequire(weekdayid, require);
                            }
                        }
                    } catch {
                    }
                }
                else if (cNode.Name == "sequence")
                {
                    // 順番
                    string text = cNode.InnerText;
                    int    seq  = int.Parse(text);
                    ret.CurrentID = seq;
                }
                else if (cNode.Name == "property")
                {
                    //ret[cNode.GetAttribute("key")] = cNode.GetAttribute("value");
                    ret[cNode.GetAttribute("key")] = cNode.InnerText;
                }
                //
                cNode = cNode.NextSibling as XmlElement;
            }
            ret.ScheduleEditedEvnetIsValid = true;
            return(ret);
        }