2014-06-05 21 views
0

我正在研究这样一个事情:我是否有可能看到谁在TFS中更改了构建质量值?我有很多关于TFS中EventService的出版物和材料。有了这个服务,我可以监听BuildQualityValueChangedEvent并在Build Qaulity更改时触发一些操作。我想要执行以下操作:检查谁在TFS中更改了构建质量值

  1. 收听BuildQualityValueChangedEvent。
  2. 获取有关更改它的用户的信息。

经过我所做的所有研究,我可以得出结论,可以通过编写特定的TFS插件来完成这项任务,该插件将从SQL数据库中查询有关构建质量变化存储信息的信息。这里是问题:TFS在哪里存储来自BuildQualityValueChangedEvent事件的信息?有没有人有任何建议如何获得改变建设质量值的人的用户名?

更新1 我用这样的代码来获得我的订阅信息

IEventService eventService = (IEventService)tfServer.GetService(typeof(IEventService)); 
Subscription[] subscriptions = eventService.GetAllEventSubscriptions(userName); 
List<Subscription> list = new List<Subscription>(); 

但我没有得到我想要得到的信息。我有红色,有BuildStatusChangeEvent类包含我需要关于构建的所有信息。你知道如何使用它吗?也许一些建议?

回答

0

您可以通过ISubscriber中的API访问此信息。您传递的Xml事件数据将包含该信息,您可以解析并记录它。

为此,您需要实施ISubscriber界面。我在VB的旧例自2010年,但它应该给你一个起点:

内NotifyEvent方法的身体,你将能够获得大约是谁在做信息通过将“notificationEventArgs”xml解析为BuildQualityChangedNotificationEvent对象来进行更改。

+0

谢谢@MrHinsh。我更新了我的问题。你能帮助我吗? – RobinGoth

0

经过更多研究,我发现包含这样的信息的DB表。它的名字是dbo.tbl_ClientEvent。此信息与“<”ChangeBy“>”TFSSERVER \ user“<”/“”ChangedBy“>”

+0

不要直接与TFS操作数据库进行交互。这会使您的服务器处于不可移植状态,即使您只是在读取数据。 TFS数据库已被产品团队高度优化,您可能会无意中造成性能问题。 –

+0

谢谢你的评论。我想知道这个记录是否存在于TFS DB中。我将通过API与它进行交互。 – RobinGoth

+0

我很确定你正在看的桌子定期清理。没有内置的审计线索谁改变了建设质量,所以你需要自己登录。 –