function updateWSJFOnForm()

in src/wsjf.tsx [30:61]


function updateWSJFOnForm(storedFields:StoredFieldReferences) {
    getWorkItemFormService().then((service) => {
        service.getFields().then((fields: TFS_Wit_Contracts.WorkItemField[]) => {
            var matchingBusinessValueFields = fields.filter(field => field.referenceName === storedFields.bvField);
            var matchingTimeCriticalityFields = fields.filter(field => field.referenceName === storedFields.tcField);
            var matchingRROEValueFields = fields.filter(field => field.referenceName === storedFields.rvField);
            var matchingEffortFields = fields.filter(field => field.referenceName === storedFields.effortField); 
            var matchingWSJFFields = fields.filter(field => field.referenceName === storedFields.wsjfField);

            //If this work item type has WSJF, then update WSJF
            if ((matchingBusinessValueFields.length > 0) &&
                (matchingTimeCriticalityFields.length > 0) &&
                (matchingRROEValueFields.length > 0) &&
                (matchingEffortFields.length > 0) &&
                (matchingWSJFFields.length > 0)) {
                service.getFieldValues([storedFields.bvField, storedFields.tcField, storedFields.rvField, storedFields.effortField]).then((values) => {
                    var businessValue  = +values[storedFields.bvField];
                    var timeCriticality = +values[storedFields.tcField];
                    var rroevalue = +values[storedFields.rvField];
                    var effort = +values[storedFields.effortField];

                    var wsjf = 0;
                    if (effort > 0) {
                        wsjf = (businessValue + timeCriticality + rroevalue)/effort;
                    }
                    
                    service.setFieldValue(storedFields.wsjfField, wsjf);
                });
            }
        });
    });
}