Exemplo n.º 1
0
        /// <summary>
        ///     未使用の技術IDを取得する
        /// </summary>
        /// <param name="startId">検索を開始するID</param>
        /// <returns>未使用の技術ID</returns>
        public static int GetNewId(int startId)
        {
            int id = startId;

            while (TechIds.Contains(id))
            {
                id += 10;
            }
            return(id);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     技術IDを変更する
        /// </summary>
        /// <param name="item">技術項目</param>
        /// <param name="id">技術ID</param>
        public static void ModifyTechId(TechItem item, int id)
        {
            // 値の変更前に技術項目とIDの対応付けを削除する
            TechIds.Remove(id);
            TechIdMap.Remove(id);

            // 値を更新する
            item.Id = id;

            // 技術項目とIDの対応付けを更新する
            UpdateTechIdMap();
        }
Exemplo n.º 3
0
 /// <summary>
 ///     技術項目とIDの対応付けを更新する
 /// </summary>
 public static void UpdateTechIdMap()
 {
     TechIds.Clear();
     TechIdMap.Clear();
     foreach (TechItem item in Groups.SelectMany(grp => grp.Items.OfType <TechItem>()))
     {
         if (!TechIds.Contains(item.Id))
         {
             TechIds.Add(item.Id);
             TechIdMap.Add(item.Id, item);
         }
     }
 }