Beispiel #1
0
        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).");
            }
        }
Beispiel #2
0
        public async Task <ActionResult <IReadOnlyCollection <TemplateVersionRecord> > > GetVersions(long id)
        {
            try
            {
                var versions = await _templatesStorageReader.GetTemplateVersions(id);

                return(Json(versions));
            }
            catch (ObjectNotFoundException)
            {
                return(NotFound());
            }
        }