Пример #1
0
        /// <summary>
        /// 添加后Id会得到新的值
        /// </summary>
        /// <param name="item"></param>
        public static void Add(T item)
        {
            int l = Count;

            if (l == 0)
            {
                item.Id = 1;
            }
            else
            {
                item.Id = ConfigFileManager.GetConfig <ParentConfigCollection <T> >().List[Count - 1].Id + 1;
            }
            //IndexById.Add(item.Id, item);
            //if (!IndexByName.ContainsKey(item.Name))
            //{
            //    IndexByName.Add(item.Name, new List<T>() { item });
            //}
            //else
            //    IndexByName[item.Name].Add(item);
            //if (!IndexByParentId.ContainsKey(item.ParentId))
            //{
            //    IndexByParentId.Add(item.ParentId, new List<T>() { item });
            //}
            //else
            //    IndexByParentId[item.ParentId].Add(item);
            ConfigFileManager.GetConfig <ParentConfigCollection <T> >().List.Add(item);
            ConfigFileManager.SaveConfig <ParentConfigCollection <T> >();
            BuildIndex();
        }
Пример #2
0
        /// <summary>
        /// 更新
        /// </summary>
        /// <param name="item"></param>
        public static void Update(T item)
        {
            T ordinaryItem = Get(item.Id);

            if (!ordinaryItem.Equals(item))
            {
                int pos = ConfigFileManager.GetConfig <ParentConfigCollection <T> >().List.IndexOf(ordinaryItem);
                ConfigFileManager.GetConfig <ParentConfigCollection <T> >().List[pos] = item;
            }
            ConfigFileManager.SaveConfig <ParentConfigCollection <T> >();
            BuildIndex();
        }
Пример #3
0
        public static bool Remove(T item)
        {
            bool ret = false;

            if (Contains(item))
            {
                ret = ConfigFileManager.GetConfig <IdNameConfigCollection <T> >().List.Remove(item);
                //IndexById.Remove(item.Id);
                //if (!IndexByName.ContainsKey(item.Name))
                //{
                //    IndexByName.Add(item.Name, new List<T> { item });
                //}
                //else
                //    IndexByName[item.Name].Add(item);
                ConfigFileManager.SaveConfig <IdNameConfigCollection <T> >();
                BuildIndex();
            }
            return(ret);
        }
Пример #4
0
        public static bool Remove(T item)
        {
            bool ret = false;

            if (Contains(item))
            {
                ret = ConfigFileManager.GetConfig <ParentConfigCollection <T> >().List.Remove(item);
                ConfigFileManager.SaveConfig <ParentConfigCollection <T> >();
                BuildIndex();
                //IndexById.Remove(item.Id);
                //IndexByName[item.Name].Remove(item);
                //if (IndexByName[item.Name].Count == 0)
                //{
                //    IndexByName.Remove(item.Name);
                //}
                //IndexByParentId[item.ParentId].Remove(item);
                //if (IndexByParentId[item.ParentId].Count == 0)
                //{
                //    IndexByParentId.Remove(item.ParentId);
                //}
            }
            return(ret);
        }
Пример #5
0
 /// <summary>
 /// 保存配置
 /// </summary>
 public static void Save()
 {
     ConfigFileManager.SaveConfig <T>();// ConfigManager<T>.Save();
 }