2013-07-08 2 views
0

Я работаю над проектом, где мне нужно синхронизировать данные (билеты) из отдела справочной службы в TFS и наоборот. Я могу добавить элемент в TFS, используя службу Windows, и работает нормально. но, когда статус рабочего элемента изменяется в TFS, я хочу обновить его в системе справки. поэтому для этого мне нужен прослушиватель событий, который может прослушивать изменение статуса рабочего элемента TFS. Я использую TFS2010 API, и я также просмотрел ISubscriber. но похоже, что мне нужно разработать плагин и поместить его где-нибудь в подключаемую папку установки TFS. Я не хочу так поступать, не используя веб-сервис напрямую.Прослушивание изменения состояния рабочего объекта TFS с использованием службы окна C#

Я использовал следующий метод для подписки на событие.

public static int RegisterWithTFS(TfsTeamProjectCollection server, string eventType, string filter, int port, string receiveMethod) 
{ 
string serviceEndPointURL = String.Format("http://{0}:{1}/{2}", Environment.MachineName, port, receiveMethod); 
var preferences = new DeliveryPreference { Schedule = DeliverySchedule.Immediate, Type = DeliveryType.Soap, Address = serviceEndPointURL }; 

IEventService eventService = (IEventService)server.GetService(typeof(IEventService)); 
string username = @"mytfsuser"; 
return eventService.SubscribeEvent(username, eventType, filter, preferences); 

}

Я хочу знать механизм, чтобы вызвать мою службу окна (C#), как только изменение состояния рабочего элемента в TFS. поэтому я могу обновить его обратно в мою службу поддержки. так может ли кто-нибудь помочь мне в этой проблеме? Заранее спасибо.

ответ

0

Наконец, я нашел решение:

Я разработал сервер плагин Tfs (вместо службы Window) и подписаться на TFS WorkItemChanged мероприятие. он наследует интерфейс ISubscriber и отменяет метод ProcessEvent. Мне нужно развернуть этот плагин на сервере TFS в папках плагинов установки Tfs. Этот подход работает очень хорошо!

Смежные вопросы