in src/wsjf.tsx [63:111]
function updateWSJFOnGrid(workItemId, storedFields:StoredFieldReferences):IPromise<any> {
let wsjfFields = [
storedFields.bvField,
storedFields.tcField,
storedFields.rvField,
storedFields.effortField,
storedFields.wsjfField
];
var deferred = Q.defer();
var client = TFS_Wit_Client.getClient();
client.getWorkItem(workItemId, wsjfFields).then((workItem: TFS_Wit_Contracts.WorkItem) => {
if (storedFields.wsjfField !== undefined && storedFields.rvField !== undefined) {
var businessValue = +workItem.fields[storedFields.bvField];
var timeCriticality = +workItem.fields[storedFields.tcField];
var rroevalue = +workItem.fields [storedFields.rvField];
var effort = +workItem.fields[storedFields.effortField];
var wsjf = 0;
if (effort > 0) {
wsjf = (businessValue + timeCriticality + rroevalue)/effort;
}
var document = [{
from: null,
op: "add",
path: '/fields/' + storedFields.wsjfField,
value: wsjf
}];
// Only update the work item if the WSJF has changed
if (wsjf != workItem.fields[storedFields.wsjfField]) {
client.updateWorkItem(document, workItemId).then((updatedWorkItem:TFS_Wit_Contracts.WorkItem) => {
deferred.resolve(updatedWorkItem);
});
}
else {
deferred.reject("No relevant change to work item");
}
}
else
{
deferred.reject("Unable to calculate WSJF, please configure fields on the collection settings page.");
}
});
return deferred.promise;
}