Beispiel #1
0
 /// <summary>日付のセーブ
 /// </summary>
 public void SaveScheduledDate(XmlDocument doc, XmlElement rNode, CTimeTable all)
 {
     for (int i = 0; i < all.Size(); i++)
     {
         bool           edited = false;
         CScheduledDate sdate  = all[i];
         XmlElement     pNode  = doc.CreateElement("scheduleddate");
         SaveTmElement(doc, pNode, sdate);
         // 日付がもっとも大事?
         pNode.SetAttribute("date", sdate.Date.ToString(CSaver.DATEFORMAT));
         // 人員配置
         if (sdate.Require != null && sdate.Require != CRequirePatterns.NULL)
         {
             pNode.SetAttribute("require", sdate.Require.ObjectID.ToString());
             if (sdate.Require != all.GetDefaultRequire(sdate.Date.DayOfWeek))
             {
                 edited = true;
             }
         }
         // メンバーごとのスケジュール(シフトとメモ)
         for (int j = 0; j < sdate.ValidMemberSize; j++)
         {
             CSchedule  schedule = sdate[j];
             XmlElement nNode    = doc.CreateElement("schedule");
             SaveTmElement(doc, nNode, schedule);
             if ((schedule.Member != null && schedule.Member != CMember.NULL && schedule.Pattern != null && schedule.Pattern != CPattern.NULL) || (schedule.Notes.Trim() != ""))
             {
                 nNode.SetAttribute("member", schedule.Member.ObjectID.ToString());
                 nNode.SetAttribute("pattern", schedule.Pattern.ObjectID.ToString());
                 edited = true;
                 pNode.AppendChild(nNode);
             }
         }
         if (edited)
         {
             // 変更されている場合のみ
             rNode.AppendChild(pNode);
         }
     }
 }
Beispiel #2
0
        /// <summary>セーブメイン
        /// </summary>
        public void Save(string file, CTimeTable ret)
        {
            XmlDocument    doc         = new XmlDocument();
            XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "", "yes");

            doc.InsertBefore(declaration, doc.DocumentElement);
            XmlElement rNode = doc.CreateElement("scheduleall");

            doc.AppendChild(rNode);
            // シフト
            rNode.AppendChild(SavePatterns(doc, ret));
            // メンバー
            rNode.AppendChild(SaveMembers(doc, ret));
            // 人員配置
            rNode.AppendChild(SaveRequirePatterns(doc, ret));
            // 休日
            rNode.AppendChild(SaveDayOffs(doc, ret));
            #region 営業開始時間
            XmlElement startNode = doc.CreateElement("starttime");
            startNode.InnerText = ret.StartTime.ToString();
            rNode.AppendChild(startNode);
            #endregion
            #region 営業終了時間
            XmlElement endNode = doc.CreateElement("endtime");
            endNode.InnerText = ret.EndTime.ToString();
            rNode.AppendChild(endNode);
            #endregion
            #region 営業時間
            XmlElement aroundNode = doc.CreateElement("around");
            aroundNode.InnerText = ret.Around.ToString();
            rNode.AppendChild(aroundNode);
            #endregion
            #region デフォルトの人員配置
            if (ret.DefaultRequire != null && ret.DefaultRequire != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("default_require");
                defaultNode.InnerText = ret.DefaultRequire.ObjectID.ToString();
                rNode.AppendChild(defaultNode);
            }
            #endregion
            #region デフォルトの人員配置(曜日ごと)
            CRequirePatterns work = null;
            work = ret.GetDefaultRequire(System.DayOfWeek.Monday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "0");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Tuesday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "1");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Wednesday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "2");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Thursday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "3");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Friday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "4");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Saturday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "5");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            work = ret.GetDefaultRequire(System.DayOfWeek.Sunday);
            if (work != null && work != CRequirePatterns.NULL)
            {
                XmlElement defaultNode = doc.CreateElement("defaultRequireweekday");
                defaultNode.SetAttribute("weekday", "6");
                defaultNode.SetAttribute("require", work.ObjectID.ToString());
                rNode.AppendChild(defaultNode);
            }
            #endregion
            #region 順番
            XmlElement seqNode = doc.CreateElement("sequence");
            seqNode.InnerText = ret.CurrentID.ToString();
            rNode.AppendChild(seqNode);
            #endregion
            #region 直下のプロパティ
            foreach (string key in ret)
            {
                XmlElement propelement = doc.CreateElement("property");
                propelement.SetAttribute("key", key);
                propelement.InnerText = ret[key];
                rNode.AppendChild(propelement);
            }
            #endregion
            // 日付
            SaveScheduledDate(doc, rNode, ret);
            ///////////////
            doc.Save(file);
        }