public async Task HandleAsync(WebHookModel model, string wwwroot) { var buildStatusUrl = $"{_options.CloudUrl}{model.Links.Api_Self.Href}"; var buildStatusModel = await _buildStatusService.GetBuildStatusModelAsync(buildStatusUrl, _options.ApiKey); var downloadUrl = $"{buildStatusModel.Links.Download_Primary.Href}"; using (var stream = await _downloadService.DownloadAsStreamAsync(downloadUrl)) { var zipDirectory = GetZipDirectory(wwwroot); if (!Directory.Exists(zipDirectory)) { Directory.CreateDirectory(zipDirectory); } var path = Path.Combine(zipDirectory, $"{buildStatusModel.Build}.zip"); SaveZipFile(stream, path); UnzipFileToWwwRoot(path, wwwroot); } }