private async Task <IEnumerable <GitCommitModel> > GetCommits(GetCommitsByEmpID request, AzureDevOpsSubscription subscription) { DateTimeOffset startDate = DateTimeOffset.Parse(request.Date, CultureInfo.InvariantCulture); DateTimeOffset endDate = startDate.AddDays(1); string content = $"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" + $"Content-Disposition: form-data; name=\"employeeID\"\r\n\r\n{request.EmpID}\r\n" + $"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" + $"Content-Disposition: form-data; name=\"startDate\"\r\n\r\n{startDate.ToString("yyyy-MM-dd")}\r\n" + $"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" + $"Content-Disposition: form-data; name=\"endDate\"\r\n\r\n{endDate.ToString("yyyy-MM-dd")}\r\n" + $"------WebKitFormBoundary7MA4YWxkTrZu0gW\r\n" + $"Content-Disposition: form-data; name=\"settings[Id]\"\r\n\r\n{subscription.Id}\r\n" + $"------WebKitFormBoundary7MA4YWxkTrZu0gW--"; var url = new Url(request.TenantUrl) .AppendPathSegment("/Ajax/GetTfsSubChangeHistory") .WithHeader("content-type", "multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW") // TimePro bug: Basic auth is not base64 decoded on the server and takes the raw token. .WithHeader("Authorization", $"Basic {request.Token}"); var response = await url.PostStringAsync(content); var json = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <GitCommitResult>(json); return(result.data); }
public async Task <IEnumerable <GitCommitModel> > Handle(GetCommitsByEmpID request, CancellationToken cancellationToken) { var url = new Url(request.TenantUrl) .AppendPathSegment("/Ajax/GetTfsSubscriptions") .SetQueryParam("employeeID", request.EmpID) // TimePro bug: Basic auth is not base64 decoded on the server and takes the raw token. .WithHeader("Authorization", $"Basic {request.Token}"); var subs = await url.GetJsonAsync <AzureDevOpsSubscriptionResult>(); // SSW Azure DevOps are not supported ATM. var subscriptions = subs.data; var commits = await Task.WhenAll(subscriptions.Select(s => GetCommits(request, s))); return(commits.SelectMany(c => c)); }
public Task <IEnumerable <GitCommitModel> > Execute(GetCommitsByEmpID request) { return(Handle(request, default)); }