public async Task CheckValidityAsync(CallContext callContext) { if (ImageName != ImageName.Trim()) { throw new InvalidOperationException($"Name not trimmed: '{ImageName}'"); } if (ImageName.Length == 0) { throw new RequestInputException(callContext.Localized.Get("PleaseEnterAnImageName")); } if (!await callContext.DbContext.Images.AnyAsync(image => EF.Functions.Like(image.Name, $"{ImageName}"))) { throw new RequestInputException(callContext.Localized.Get("ImageNotFound") + ' ' + ImageName); } }
ImageRef GetRepository() { var startIndex = ImageName.IndexOf('/'); var imageName = ImageName.Trim(); var endIndex = imageName.LastIndexOf(':'); var registry = imageName.Substring(0, startIndex); var repoName = imageName.Substring(startIndex + 1, endIndex - startIndex - 1); var tag = imageName.Substring(endIndex + 1); //Log.LogMessage(MessageImportance.High, $"{ImageName} {startIndex} {endIndex} {registry} {repoName} {tag}"); return(new ImageRef { Registry = registry, Repository = repoName, Tag = tag }); }