in src/PortfolioPlanning/Common/Services/PortfolioPlanningDataService.ts [1011:1053]
private PortfolioPlanningQueryResultItems(
jsonValuePayload: any,
aggregationClauses: WorkItemTypeAggregationClauses
): PortfolioPlanningQueryResultItem[] {
if (!jsonValuePayload || !jsonValuePayload["value"]) {
return null;
}
return jsonValuePayload.value.map(jsonArrayItem => {
const rawItem: ODataWorkItemQueryResult = jsonArrayItem;
const areaIdValue: string = rawItem.AreaSK ? rawItem.AreaSK.toLowerCase() : null;
const result: PortfolioPlanningQueryResultItem = {
WorkItemId: rawItem.WorkItemId,
WorkItemType: rawItem.WorkItemType,
Title: rawItem.Title,
State: rawItem.State,
StartDate: rawItem.StartDate ? new Date(rawItem.StartDate) : null,
TargetDate: rawItem.TargetDate ? new Date(rawItem.TargetDate) : null,
ProjectId: rawItem.ProjectSK,
AreaId: areaIdValue,
TeamId: null, // Will be assigned when teams in areas data is retrieved.
CompletedCount: 0,
TotalCount: 0,
CompletedEffort: 0,
TotalEffort: 0,
EffortProgress: 0.0,
CountProgress: 0.0
};
const descendantsJsonObject = jsonArrayItem[ODataConstants.Descendants];
if (descendantsJsonObject && descendantsJsonObject.length === 1) {
const projectIdLowercase = rawItem.ProjectSK.toLowerCase();
const propertyAliases = aggregationClauses.aliasMap[projectIdLowercase]
? aggregationClauses.aliasMap[projectIdLowercase]
: null;
this.ParseDescendant(descendantsJsonObject[0], result, propertyAliases);
}
return result;
});
}