Changeset 673

Show
Ignore:
Timestamp:
10/26/09 20:33:40 (9 months ago)
Author:
tomoyo
Message:

グループの新規作成と削除を追加。

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • TwitterIrcGateway/branches/hosting/TwitterIrcGatewayCore/AddIns/Console/Contexts/GroupContext.cs

    r667 r673  
    107107            CurrentSession.SaveGroups(); 
    108108        } 
    109              
     109     
     110        [Description("グループ(チャンネル)を新規作成します")] 
     111        public void New([Description("新しいグループ名")]String newChannelName) 
     112        { 
     113            if (!CheckNewChannelName(newChannelName)) 
     114                return; 
     115 
     116            // 新チャンネルにJOIN 
     117            Group g = new Group(newChannelName); 
     118            CurrentSession.Groups.Add(newChannelName, g); 
     119            CurrentSession.JoinChannel(CurrentSession, g); 
     120            Console.NotifyMessage(String.Format("グループ名 {0} を作成しました。", newChannelName)); 
     121 
     122            CurrentSession.SaveGroups(); 
     123        } 
     124         
     125        [Description("指定したグループ(チャンネル)を削除します")] 
     126        public void Delete([Description("削除するグループ名")]String oldChannelName) 
     127        { 
     128            if (!CurrentSession.Groups.ContainsKey(oldChannelName)) 
     129            { 
     130                Console.NotifyMessage("エラー: 指定されたグループは見つかりませんでした。"); 
     131                return; 
     132            } 
     133 
     134 
     135            // 旧チャンネルをPART 
     136            CurrentSession.SendServer(new PartMessage(oldChannelName, "")); 
     137            // 削除 
     138            CurrentSession.Groups.Remove(oldChannelName); 
     139            Console.NotifyMessage(String.Format("グループ名 {0} を削除しました。", oldChannelName)); 
     140 
     141            CurrentSession.SaveGroups(); 
     142        } 
     143         
    110144        [Description("指定したグループ(チャンネル)の名前をコピーします")] 
    111145        public void Copy([Description("現在のグループ名")]String oldChannelName, [Description("新しいグループ名")]String newChannelName) 
     
    125159        } 
    126160     
     161        private Boolean CheckNewChannelName(String newChannelName) 
     162        { 
     163            if (CurrentSession.Groups.ContainsKey(newChannelName) || String.Compare(CurrentSession.Config.ChannelName, newChannelName, true) == 0) 
     164            { 
     165                Console.NotifyMessage("エラー: 既に存在するグループ名を指定することは出来ません。"); 
     166                return false; 
     167            } 
     168 
     169            if (!(newChannelName.StartsWith("#") && newChannelName.Length > 2)) 
     170            { 
     171                Console.NotifyMessage("エラー: グループ(チャンネル)名は#で始まる必要があります。"); 
     172                return false; 
     173            } 
     174 
     175            return true; 
     176        } 
    127177        private Boolean CheckChannelNamesForCopyOrRename(String oldChannelName, String newChannelName) 
    128178        { 
     
    138188            } 
    139189 
    140             if (String.Compare(oldChannelName, newChannelName, true) == 0) 
    141             { 
    142                 Console.NotifyMessage("エラー: 新しいグループ名と古いグループ名を同じにすることはできません。"); 
    143                 return false; 
    144             } 
    145  
    146             if (CurrentSession.Groups.ContainsKey(newChannelName) || String.Compare(CurrentSession.Config.ChannelName, newChannelName, true) == 0) 
    147             { 
    148                 Console.NotifyMessage("エラー: 既に存在するグループ名を指定することは出来ません。"); 
    149                 return false; 
    150             } 
    151  
    152             if (!(oldChannelName.StartsWith("#") && oldChannelName.Length > 2)) 
    153             { 
    154                 Console.NotifyMessage("エラー: グループ(チャンネル)名は#で始まる必要があります。"); 
    155                 return false; 
    156             } 
    157  
    158             return true; 
     190            return CheckNewChannelName(newChannelName); 
    159191        } 
    160192    }