Example #1
0
        /// <summary>
        /// グループの情報を編集します。
        /// </summary>
        /// <param name="original">編集元のデータ</param>
        /// <param name="editName">編集後の名称</param>
        /// <param name="editParent">編集後の親グループ</param>
        /// <returns>編集後のデータ</returns>
        public TaskGroupInfo EditTaskGroup(TaskGroupInfo original, string editName = null, TaskGroupInfo editParent = null)
        {
            if (original != null)
            {
                if (editName != null)
                {
                    original.Name = editName;
                }

                if (editParent != null)
                {
                    original.ParentGroup = editParent.Key;
                    foreach (var taskGroupInfo in this.TaskGroupList)
                    {
                        // 元の親情報を削除
                        if (taskGroupInfo.Value.ChildGroups.Contains(original.Key))
                        {
                            taskGroupInfo.Value.ChildGroups.Remove(original.Key);
                        }
                    }

                    // 新しい親に設定
                    editParent.ChildGroups.Add(original.Key);
                }
            }

            return(original);
        }
Example #2
0
        /// <summary>
        /// 新しいグループ情報を追加します。
        /// </summary>
        /// <param name="groupInfo">追加する情報</param>
        /// <param name="parent">親グループ</param>
        public void AddTaskGroup(TaskGroupInfo groupInfo, TaskGroupInfo parent)
        {
            this.TaskGroupList.Add(groupInfo.Key, groupInfo);
            this.TaskGroupListJsonObj.Add(groupInfo);

            if (parent != null)
            {
                groupInfo.ParentGroup = parent.Key;
                parent.ChildGroups.Add(groupInfo.Key);
            }
        }
Example #3
0
        /// <summary>
        /// コンストラクタ
        /// </summary>
        static TaskGroupInfo()
        {
            _rootGroup                = new TaskGroupInfo();
            _rootGroup.Name           = string.Empty;
            _rootGroup.ChildTaskItems = new HashSet <TaskItem>();
            _rootGroup.ChildGroups    = new HashSet <KeyInfo>();
            _rootGroup.Key            = KeyInfo.CreateKeyInfoGroup();

            _defaultGroup                = new TaskGroupInfo();
            _defaultGroup.Name           = "未分類";
            _defaultGroup.ChildTaskItems = new HashSet <TaskItem>();
            _defaultGroup.ChildGroups    = new HashSet <KeyInfo>();
            _defaultGroup.Key            = KeyInfo.CreateKeyInfoGroup();

            _rootGroup.ChildGroups.Add(_defaultGroup.Key);
            _defaultGroup.ParentGroup = _rootGroup.Key;
        }
Example #4
0
        /// <summary>
        /// 新しいグループ情報を追加します。
        /// </summary>
        /// <param name="name">追加するグループの名称</param>
        /// <param name="parent">親グループ</param>
        /// <returns>追加結果</returns>
        public TaskGroupInfo AddTaskGroup(string name, TaskGroupInfo parent)
        {
            var group = new TaskGroupInfo();

            group.Name = name;

            group.Key = KeyInfo.CreateKeyInfoGroup();
            this.TaskGroupList.Add(group.Key, group);
            this.TaskGroupListJsonObj.Add(group);
            if (parent != null)
            {
                group.ParentGroup = parent.Key;
                parent.ChildGroups.Add(group.Key);
            }

            return(group);
        }
Example #5
0
        /// <summary>
        /// グループ情報を削除します。
        /// </summary>
        /// <param name="taskGroupInfo">削除対象のグループ</param>
        public void RemoveTaskGroup(TaskGroupInfo taskGroupInfo)
        {
            if (this.TaskGroupList.ContainsKey(taskGroupInfo.Key))
            {
                this.TaskGroupList.Remove(taskGroupInfo.Key);
            }

            if (this.TaskGroupListJsonObj.Contains(taskGroupInfo))
            {
                this.TaskGroupListJsonObj.Remove(taskGroupInfo);
            }

            // ほかの参照も除去
            foreach (var groupInfo in this.TaskGroupList)
            {
                if (groupInfo.Value.ParentGroup != null)
                {
                    if (groupInfo.Value.ParentGroup.Equals(taskGroupInfo.Key))
                    {
                        // 親無しに変更。
                        groupInfo.Value.ParentGroup = null;
                    }
                }

                if (groupInfo.Value.ChildGroups.Contains(taskGroupInfo.Key))
                {
                    groupInfo.Value.ChildGroups.Remove(taskGroupInfo.Key);
                }
            }

            // 配下のグループ/タスクのキー除去
            foreach (var childGroup in taskGroupInfo.ChildGroups)
            {
                KeyInfo.DeleteKeyInfo(childGroup);
            }

            foreach (var childTaskItem in taskGroupInfo.ChildTaskItems)
            {
                // 子のタスクは削除
                KeyInfo.DeleteKeyInfo(childTaskItem.Key);
            }
        }
Example #6
0
 /// <summary>
 /// ルートのグループ情報を更新します。
 /// </summary>
 /// <param name="value">更新値</param>
 public static void OverriteRootGroup(TaskGroupInfo value)
 {
     _rootGroup = value;
 }
Example #7
0
 /// <summary>
 /// デフォルトのグループ情報を更新します。
 /// </summary>
 /// <param name="value">更新値</param>
 public static void OverriteDefaultGroup(TaskGroupInfo value)
 {
     _defaultGroup = value;
 }