private async Task EnsureTemplateVersionIsNewer(long id, string versionIdToBeNewer, string versionIdToBeOlder) { var templateVersions = await _templatesStorageReader.GetTemplateVersions(id); var newerVersion = templateVersions.FirstOrDefault(x => x.VersionId == versionIdToBeNewer); var olderVersion = templateVersions.FirstOrDefault(x => x.VersionId == versionIdToBeOlder); if (newerVersion == null) { _logger.LogCritical("Template {id} doesn't have version {version}", id, versionIdToBeNewer); throw new InvalidOperationException($"Template {id} doesn't have version {versionIdToBeNewer}"); } if (olderVersion == null) { _logger.LogCritical("Template {id} doesn't have version {version}", id, versionIdToBeOlder); throw new InvalidOperationException($"Template {id} doesn't have version {versionIdToBeOlder}"); } if (newerVersion.VersionIndex <= olderVersion.VersionIndex) { throw new ObjectUpgradeException( id, $"Upgraded object template {id} version must be newer than latest object template version " + $"('{newerVersion.VersionId}' with index {newerVersion.VersionIndex} and '{olderVersion.VersionId}' with index {olderVersion.VersionIndex} respectively)."); } }
public async Task <ActionResult <IReadOnlyCollection <TemplateVersionRecord> > > GetVersions(long id) { try { var versions = await _templatesStorageReader.GetTemplateVersions(id); return(Json(versions)); } catch (ObjectNotFoundException) { return(NotFound()); } }