示例#1
0
        /// <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);
        }
示例#2
0
        /// <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;
            }
        }