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); }
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); }
public async Task <GetAboutAndCheckUpdateOutput> GetAboutAndCheckUpdate(VersionInput input) { return(new GetAboutAndCheckUpdateOutput() { About = await GetAbout(input), CheckUpdate = await CheckUpdate(input) }); }
public async Task <AboutOutput> GetAbout(VersionInput input) { AppEdition appedition = await GetAppEditionByVersion(input); return(new AboutOutput() { AboutUrl = appedition?.AboutUrl ?? "http://www.4000871428.com/" }); }
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); }
/// <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)); }
/// <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)); }