Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #4
0
        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)
                });
            }
        }