Мы пытаемся рассчитать параметры в плагине сервера TFS. Я пытаюсь запретить пользователям перемещать PBI в состояние Committed, если все их дочерние задачи не имеют значения в поле «оставшаяся работа».Плагин TFS - предотвращение экономии рабочего элемента, если определенные логические ограничения не выполняются
Эта основная логика работает, я могу пройти через дочерние элементы и получить все значения независимо от того, существует или нет. То, что я не понимаю \ Accomplish, - это то, как предотвратить действие «Сохранить» в случае, когда задание задачи имеет значение null.
if (taskswithoutrw.Count() != 0)
{
permitted = false;
TeamFoundationApplicationCore.Log("changedpermitted to false", 0, EventLogEntryType.Information);
throw new Exception("Some tasks does not contain \"Remaining Work\" value");
}
else
{
var tasks = childs.Where(x => TFStringComparer.WorkItemTypeName.Equals(x.Type.Name, Task));
double workSum = 0;
foreach (var task in tasks)
{
workSum += Convert.ToDouble(task.Fields["Remaining Work"].Value)/6;
TeamFoundationApplicationCore.Log("Remaining Work sum: " + workSum.ToString(), 0, EventLogEntryType.Information);
}
wi.Fields["Story Points"].Value = workSum.ToString();
wi.Save();
}
если исключение установки EventNotificationStatus в ActionDenied
catch (Exception ex)
{
// Log error (Should be logged to the windows event log by default)
TeamFoundationApplicationCore.LogException(requestContext, "Exception occurd in ", ex);
TeamFoundationApplicationCore.Log("outercatch", 0, EventLogEntryType.Information);
statusCode = -1;
return EventNotificationStatus.ActionDenied;
}
Method must return this value
return EventNotificationStatus.ActionPermitted;
им Но это не кажется, сделать трюк, я упускаю что-то?
, если я не ошибаюсь, по вашему объяснению + ссылке, вы говорите только на inteface изнутри визуально студии – user1432893