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
            });
        }