/// <summary>メンバーの作成(初期化機能つき) /// </summary> /// <returns>新しいメンバー</returns> public virtual CMember CreateMember(bool init) { CMember ret = CreateMember(); if (init) { ret.Name = "新しいメンバー"; int size = TimeTable.Patterns.Size(true); for (int i = 0; i < size; i++) { CPattern pattern = TimeTable.Patterns[i, true]; if (pattern.Removed == null && !pattern.BuiltIn) { ret.AddPattern(pattern); } } ret.SetAvailableDay(CTimeTable.tMonday, true); ret.SetAvailableDay(CTimeTable.tTuesday, true); ret.SetAvailableDay(CTimeTable.tWednesday, true); ret.SetAvailableDay(CTimeTable.tThursday, true); ret.SetAvailableDay(CTimeTable.tFriday, true); ret.SetAvailableDay(CTimeTable.tSaturday, true); ret.SetAvailableDay(CTimeTable.tSunday, true); ret.Priority = GetLastPriority(true) + 1;; } return(ret); }
/// <summary>メンバーのロード /// </summary> public void LoadMembers(XmlElement element, CTimeTable all) { XmlElement pNode = element.FirstChild as XmlElement; while (pNode != null) { if (pNode.Name == "member") { // メンバー CMember member = all.Members.CreateMember(); LoadTmElement(pNode, member); member.Name = pNode.GetAttribute("name"); #region チーフですか? string sChief = pNode.GetAttribute("chief"); if (sChief != null) { bool bChief; if (bool.TryParse(sChief, out bChief)) { member.IsChief = bChief; } } #endregion #region 期待される作業時間 TimeSpan eWork = member.ExpectedWork; if (TimeSpan.TryParse(pNode.GetAttribute("expectedwork"), out eWork)) { member.ExpectedWork = eWork; } #endregion member.ExpectedRest = double.Parse(pNode.GetAttribute("expectedrest")); member.Priority = int.Parse(pNode.GetAttribute("priority")); #region 利用できるシフト XmlElement tNode = pNode.FirstChild as XmlElement; while (tNode != null) { if (tNode.Name == "pattern") { int patid = int.Parse(tNode.GetAttribute("id")); member.AddPattern(all.Patterns.GetByID(patid)); } // tNode = tNode.NextSibling as XmlElement; } #endregion #region 稼働日 bool bWork = true; if (bool.TryParse(pNode.GetAttribute("avl-monday"), out bWork)) { member.SetAvailableDay(CTimeTable.tMonday, bWork); } else { member.SetAvailableDay(CTimeTable.tMonday, true); } if (bool.TryParse(pNode.GetAttribute("avl-tuesday"), out bWork)) { member.SetAvailableDay(CTimeTable.tTuesday, bWork); } else { member.SetAvailableDay(CTimeTable.tTuesday, true); } if (bool.TryParse(pNode.GetAttribute("avl-wednesday"), out bWork)) { member.SetAvailableDay(CTimeTable.tWednesday, bWork); } else { member.SetAvailableDay(CTimeTable.tWednesday, true); } if (bool.TryParse(pNode.GetAttribute("avl-thursday"), out bWork)) { member.SetAvailableDay(CTimeTable.tThursday, bWork); } else { member.SetAvailableDay(CTimeTable.tThursday, true); } if (bool.TryParse(pNode.GetAttribute("avl-friday"), out bWork)) { member.SetAvailableDay(CTimeTable.tFriday, bWork); } else { member.SetAvailableDay(CTimeTable.tFriday, true); } if (bool.TryParse(pNode.GetAttribute("avl-saturday"), out bWork)) { member.SetAvailableDay(CTimeTable.tSaturday, bWork); } else { member.SetAvailableDay(CTimeTable.tSaturday, true); } if (bool.TryParse(pNode.GetAttribute("avl-sunday"), out bWork)) { member.SetAvailableDay(CTimeTable.tSunday, bWork); } else { member.SetAvailableDay(CTimeTable.tSunday, true); } #endregion #region 稼動間隔 TimeSpan stpWork1 = member.Spacetime; if (TimeSpan.TryParse(pNode.GetAttribute("spacetime"), out stpWork1)) { member.Spacetime = stpWork1; } #endregion #region 連続稼動 TimeSpan stpWork2 = member.Continuas; if (TimeSpan.TryParse(pNode.GetAttribute("continuas"), out stpWork2)) { member.Continuas = stpWork2; } #endregion // all.Members.AddMember(member); } // pNode = pNode.NextSibling as XmlElement; } }