示例#1
0
        public async Task <CheckUpdateOutput> CheckUpdate(VersionInput input)
        {
            var client = HttpContext.Current.Request.Headers["client"] ?? "android";
            var query  = _appEditionRepository.GetAll().Where(n => n.IsActive);;

            if (client == "ios")
            {
                query = query.Where(n => n is IOSAppEdition);
            }
            else
            {
                query = query.Where(n => n is AndroidAppEdition);
            }
            var appEditions = await query.ToListAsync();

            if (appEditions.Count > 0)
            {
                var newAppEdition = appEditions.OrderByDescending(n => new Version(n.Version)).First();
                if (new Version(input.Version) < new Version(newAppEdition.Version))
                {
                    return(new CheckUpdateOutput()
                    {
                        AboutUrl = newAppEdition.AboutUrl,
                        Version = newAppEdition.Version,
                        DownloadtUrl = newAppEdition.InstallationPackage == null ? null : $"/api/services/app/appEditions/DownloadAppEdition?id={newAppEdition.Id}",
                        ItunesUrl = (newAppEdition as IOSAppEdition)?.ItunesUrl,
                        IsMandatoryUpdate = newAppEdition.IsMandatoryUpdate,
                        Describe = newAppEdition.Describe
                    });
                }
            }
            return(null);
        }
示例#2
0
        internal static JsonObject Generate(VersionInput versionInput)
        {
            if (versionInput == null)
            {
                throw new ArgumentNullException("versionInput");
            }

            var json = new JsonObject {
                { "name", versionInput.Name }, { "project", versionInput.ProjectKey }
            };

            if (versionInput.Description != null)
            {
                json.Add("description", versionInput.Description);
            }

            if (versionInput.ReleaseDate != null)
            {
                var dt = (DateTimeOffset)versionInput.ReleaseDate;
                //json.Add("releaseDate", dt.ToRestString());
            }

            json.Add("released", versionInput.Released.ToString().ToLower());
            json.Add("archived", versionInput.Archived.ToString().ToLower());

            return(json);
        }
示例#3
0
 public async Task <GetAboutAndCheckUpdateOutput> GetAboutAndCheckUpdate(VersionInput input)
 {
     return(new GetAboutAndCheckUpdateOutput()
     {
         About = await GetAbout(input),
         CheckUpdate = await CheckUpdate(input)
     });
 }
示例#4
0
        public async Task <AboutOutput> GetAbout(VersionInput input)
        {
            AppEdition appedition = await GetAppEditionByVersion(input);

            return(new AboutOutput()
            {
                AboutUrl = appedition?.AboutUrl ?? "http://www.4000871428.com/"
            });
        }
示例#5
0
        private async Task <AppEdition> GetAppEditionByVersion(VersionInput input)
        {
            var client = HttpContext.Current.Request.Headers["client"] ?? "android";
            var query  = _appEditionRepository.GetAll().Where(n => n.Version == input.Version);

            if (client == "ios")
            {
                query = query.Where(n => n is IOSAppEdition);
            }
            else
            {
                query = query.Where(n => n is AndroidAppEdition);
            }
            var appEdition = await query.FirstOrDefaultAsync();

            return(appEdition);
        }
示例#6
0
        /// <summary>
        /// Updates (Edits) a version with new details.
        /// </summary>
        /// <param name="versionUri">The URI of the version to edit.</param>
        /// <param name="versionInput">Details about the changes to make to the version.</param>
        /// <returns>Detailed information about the version that has just been updated.</returns>
        /// <exception cref="WebServiceException">If the calling user does not have permission to create versions in the project.</exception>
        public JiraVersion UpdateVersion(Uri versionUri, VersionInput versionInput)
        {
            var json = VersionInputJsonGenerator.Generate(versionInput);

            return(client.Put <JiraVersion>(versionUri.ToString(), json));
        }
示例#7
0
        /// <summary>
        /// Creates a new version in a project.
        /// </summary>
        /// <param name="versionInput">Details about the version to create.</param>
        /// <returns>Detailed information about the version that has just been created.</returns>
        /// <exception cref="WebServiceException">If the calling user does not have permission to create versions in the project.</exception>
        public JiraVersion CreateVersion(VersionInput versionInput)
        {
            var json = VersionInputJsonGenerator.Generate(versionInput);

            return(client.Post <JiraVersion>(baseVersionUri.ToString(), json));
        }