public async Task <IHttpActionResult> DownloadApp(string developerName, string programName) { Program prg = await this.Work.Programs.FirstOrDefaultAsync(x => x.Name == programName).ConfigureAwait(false); if (prg == null) { return(this.BadRequest($"Program [{programName}] does not exist")); } return(await ProgramsControllerHelpers.GetDownloadLatestProgramPackageResponse(this.Work, prg.Id, this.fileRetriever).ConfigureAwait(false)); }
public async Task <IHttpActionResult> DownloadLatestProgramPackage(Guid telemetryKey) { Program prg = await this.Work.Programs.FirstOrDefaultAsync(x => x.TelemetryKey == telemetryKey).ConfigureAwait(false); if (prg == null) { return(this.BadRequest($"Program with key [{telemetryKey}] does not exist")); } return(await ProgramsControllerHelpers.GetDownloadLatestProgramPackageResponse(this.Work, prg.Id, this.fileRetriever).ConfigureAwait(false)); }
public async Task <IHttpActionResult> DownloadApp(string developerName, string programName) { Program prg = await this.Work.Programs.GetByNames(developerName, programName).ConfigureAwait(false); if (prg == null) { throw new BadRequestException($"Program [{programName}] does not exist"); } return(await ProgramsControllerHelpers.GetDownloadLatestProgramPackageResponse(this.Work, prg.Id, this.fileRetriever).ConfigureAwait(false)); }
public async Task <UpdateResponse> UpdateCheck(UpdateRequest requestModel) { try { Program program = await this.Work.Programs.GetByTelemetryKey(requestModel.TelemetryKey).ConfigureAwait(false); if (program == null) { return(new UpdateResponse { Exception = new BadRequestException($"Failed to find program by Id: [{requestModel.TelemetryKey}]") }); } Trace.TraceInformation($"Program {program.GetNameAndIdString()} checking for updates with request: {requestModel.GetPropertyInfoString()}"); List <ProgramUpdatePackageInfo> allUpdatePackages = (await this.Work.UpdatePackages.GetAllPackagesNewerThan(requestModel.VersionData, program.Id).ConfigureAwait(false)) .OrderByDescending(x => x.Version, new TelimenaVersionStringComparer()).ToList(); Trace.TraceInformation($"Found {allUpdatePackages.Count} packages"); List <ProgramUpdatePackageInfo> filteredPackages = ProgramsControllerHelpers.FilterPackagesSet(allUpdatePackages, requestModel); //todo - for now updating the package is disabled - update packagaces are expected to contain the toolkit package // string supportedToolkitVersion = await ProgramsControllerHelpers.GetMaximumSupportedToolkitVersion(this.Work, filteredPackages, program, requestModel).ConfigureAwait(false); // TelimenaPackageInfo toolkitPackage = await ProgramsControllerHelpers.GetToolkitUpdateInfo(this.Work, program, requestModel, supportedToolkitVersion).ConfigureAwait(false); Trace.TraceInformation($"Filtered {filteredPackages.Count} packages"); List <UpdatePackageData> packageDataSets = new List <UpdatePackageData>(); foreach (ProgramUpdatePackageInfo programUpdatePackageInfo in filteredPackages) { packageDataSets.Add(Mapper.Map <ProgramUpdatePackageInfo, UpdatePackageData>(programUpdatePackageInfo , options => options.AfterMap((info, data) => data.DownloadUrl = Router.Api.DownloadProgramUpdate(info)))); } //if (packageDataSets.Any()) //disabled for now (lets see when I look at this comment next time - it's 18.04.2019...) //{ // if (toolkitPackage != null) // { // packageDataSets.Add(Mapper.Map<TelimenaPackageInfo, UpdatePackageData>(toolkitPackage // , options => options.AfterMap((info, data) => data.DownloadUrl = Router.Api.DownloadToolkitUpdate(info)))); // } //} UpdateResponse response = new UpdateResponse { UpdatePackages = packageDataSets }; return(response); } catch (Exception ex) { return(new UpdateResponse { Exception = new InvalidOperationException("Error while processing registration request", ex) }); } }