2016-07-22 121 views

回答

1

據我所知,警報用於團隊項目和團隊項目集合級別,因此您在團隊中創建的警報將列在團隊項目的警報列表中。對於團隊項目收集級別,警報將在所有團隊項目和團隊的警報列表中列出。

簡單的代碼來創建警報:

NetworkCredential cred = new NetworkCredential("[user name]", "[password]", "[domain]"); 
     TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri("[collection url]"), cred); 
     tpc.EnsureAuthenticated(); 
     IIdentityManagementService2 ims = tpc.GetService<IIdentityManagementService2>(); 


     TeamFoundationIdentity identity = ims.ReadIdentity(IdentitySearchFactor.AccountName,"[user name]", MembershipQuery.None,ReadIdentityOptions.None); 
     if(identity!=null) 
     { 
      string s = identity.Descriptor.Identifier; 
     } 
     IEventService es = tpc.GetService<IEventService>(); 
     List<Subscription> allSubScrip = es.GetAllEventSubscriptions().ToList(); 
     DeliveryPreference deliverPreference = new DeliveryPreference(); 
     deliverPreference.Address = "[email address]"; 
     deliverPreference.Schedule = DeliverySchedule.Immediate; 
     deliverPreference.Type = DeliveryType.EmailHtml; 

     string filter = string.Format("\"CoreFields/IntegerFields/Field[Name='ID']/NewValue\"='10'"); 
     string eventName = string.Format("<PT N=\"A specific work item is changed API team\" />"); 
     es.SubscribeEvent(identity.Descriptor.Identifier, "WorkItemChangedEvent", filter, deliverPreference, eventName,projectName: "[team project name]"); 

注意:如果你不知道如何指定過濾器,你可以創建網絡訪問樣本警報,然後檢查記錄中的dbo.tbl_EventSubscription表收集數據庫。