public getEvents()

in legacy/src/Calendar/EventSources/VSOIterationEventSource.ts [34:104]


    public getEvents(query?: Calendar_Contracts.IEventQuery): PromiseLike<Calendar_Contracts.CalendarEvent[]> {
        const result: Calendar_Contracts.CalendarEvent[] = [];
        this._events = null;

        const webContext = VSS.getWebContext();
        const teamContext: TFS_Core_Contracts.TeamContext = {
            projectId: webContext.project.id,
            teamId: this._teamId,
            project: "",
            team: "",
        };
        const workClient: Work_Client.WorkHttpClient2_1 = Service.VssConnection
            .getConnection()
            .getHttpClient(Work_Client.WorkHttpClient2_1, WebApi_Constants.ServiceInstanceTypes.TFS);

        // fetch the wit events
        return workClient.getTeamIterations(teamContext).then(iterations => {
            for (const iteration of iterations) {
                if (iteration && iteration.attributes && iteration.attributes.startDate) {
                    const event: any = {};
                    event.startDate = iteration.attributes.startDate.toISOString();
                    if (iteration.attributes.finishDate) {
                        event.endDate = iteration.attributes.finishDate.toISOString();
                    }

                    event.title = iteration.name;
                    const start = new Date(event.startDate);
                    const end = new Date(event.endDate);
                    const startAsUtc = new Date(
                        start.getUTCFullYear(),
                        start.getUTCMonth(),
                        start.getUTCDate(),
                        start.getUTCHours(),
                        start.getUTCMinutes(),
                        start.getUTCSeconds(),
                    );
                    const endAsUtc = new Date(
                        end.getUTCFullYear(),
                        end.getUTCMonth(),
                        end.getUTCDate(),
                        end.getUTCHours(),
                        end.getUTCMinutes(),
                        end.getUTCSeconds(),
                    );

                    event.category = <Calendar_Contracts.IEventCategory>{
                        id: this.id + "." + iteration.name,
                        title: iteration.name,
                        subTitle: Utils_String.format(
                            "{0} - {1}",
                            Utils_Date.format(startAsUtc, "M"),
                            Utils_Date.format(endAsUtc, "M"),
                        ),
                    };
                    if (this._isCurrentIteration(event)) {
                        event.category.color = Calendar_ColorUtils.generateBackgroundColor(event.title);
                    } else {
                        event.category.color = "#FFFFFF";
                    }

                    result.push(event);
                }
            }

            result.sort((a, b) => {
                return new Date(a.startDate).valueOf() - new Date(b.startDate).valueOf();
            });
            this._events = result;
            return result;
        });
    }