/// <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> /// <param name="member">インポートするメンバー</param> /// <returns>成功:追加したエレメント/不成功:null</returns> private CMember ImportMember(CMember member) { #region 重複チェック CMemberCollection col = Target.Members; if (col.GetByName(member.Name) != null) { return(null); } if (col.Size() >= FMainForm.MaxItemCount) { return(null); } #endregion #region インポート CMember newmember = col.CreateMember(true); newmember.Name = member.Name; newmember.IsChief = member.IsChief; newmember.SetAvailableDay(CTimeTable.tMonday, member.IsAvailableDay(CTimeTable.tMonday)); newmember.SetAvailableDay(CTimeTable.tTuesday, member.IsAvailableDay(CTimeTable.tTuesday)); newmember.SetAvailableDay(CTimeTable.tWednesday, member.IsAvailableDay(CTimeTable.tWednesday)); newmember.SetAvailableDay(CTimeTable.tThursday, member.IsAvailableDay(CTimeTable.tThursday)); newmember.SetAvailableDay(CTimeTable.tFriday, member.IsAvailableDay(CTimeTable.tFriday)); newmember.SetAvailableDay(CTimeTable.tSaturday, member.IsAvailableDay(CTimeTable.tSaturday)); newmember.SetAvailableDay(CTimeTable.tSunday, member.IsAvailableDay(CTimeTable.tSunday)); newmember.Spacetime = member.Spacetime; newmember.Continuas = member.Continuas; newmember.Notes = member.Notes + "\nインポートされました。"; foreach (string key in member.properties.AllKeys) { newmember[key] = member[key]; } #endregion col.AddMember(newmember); // 終端 return(newmember); }
/// <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; } }