internal static ImageCarouselTemplate Convert(IImageCarouselTemplate template)
        {
            if (!(template is ImageCarouselTemplate imageCarouselTemplate))
            {
                imageCarouselTemplate = new ImageCarouselTemplate();
            }

            if (template.Columns == null)
            {
                throw new InvalidOperationException("The columns cannot be null.");
            }

            imageCarouselTemplate.Columns = ImageCarouselColumn.Convert(template.Columns);

            return(imageCarouselTemplate);
        }
        private static ITemplate Convert(ITemplate template)
        {
            switch (template)
            {
            case IButtonsTemplate buttonsTemplate:
                return(ButtonsTemplate.Convert(buttonsTemplate));

            case IConfirmTemplate confirmTemplate:
                return(ConfirmTemplate.Convert(confirmTemplate));

            case ICarouselTemplate carouselTemplate:
                return(CarouselTemplate.Convert(carouselTemplate));

            case IImageCarouselTemplate imageCarouselTemplate:
                return(ImageCarouselTemplate.Convert(imageCarouselTemplate));

            default:
                throw new NotSupportedException("Invalid template type.");
            }
        }