private async Task <IEnumerable <WorkPackage> > GetWorkPackageByVersion(OPVersion version) { string url = "https://travel2pay.openproject.com/api/v3/projects/2/work_packages?pageSize=1000&offset=1&filters=[{\"status\":{\"operator\":\"o\",\"values\":[]}},{\"version\":{\"operator\":\"=\",\"values\":[\"" + version.Id + "\"]}}]&sortBy=[[\"parent\",\"asc\"]]"; var wps = await _httpClientService .Create(Request.Headers["openProjectAPIKey"].First()) .Get <OPCollection <OPWorkPackage> >(url); if (wps == null || wps.Embedded == null || wps.Embedded.Elements == null) { return(new List <WorkPackage>()); } return(wps.Embedded.Elements.Select(x => new WorkPackage { Id = x.Id, Subject = $"{x.Id} - {x.Subject} - {x.Links?.Type?.Title}", ProjectId = GetId(x.Links.Project.Href).Value, ProjectName = x.Links.Project.Title, VersionId = GetId(x.Links.Version.Href).Value, VersionTitle = x.Links.Version.Title, ParentId = GetId(x.Links.Parent.Href) })); }
private bool SameTime(OPVersion version) { var name = version.Name; var lastSpaceIndex = name.Trim().LastIndexOf(' '); if (lastSpaceIndex == -1) { return(false); } var versionDateStr = name.Substring(name.Trim().LastIndexOf(' ')); if (!DateTime.TryParse(versionDateStr, out DateTime versionDate)) { return(false); } if ((_last2Week < versionDate) && (versionDate < _next2week)) { return(true); } return(false); }
private async Task GetWorkpackagesByVersion(CollectionViewModel <VersionViewModel> versions, OPVersion version) { var workPackageByVersion = await GetWorkPackageByVersion(version); workPackageByVersion = CombineParentPackage(workPackageByVersion); versions.Elements.Add(new VersionViewModel { Id = version.Id, Title = version.Name, WorkPackages = workPackageByVersion.ToList() }); }