public void Invoke <T>(CareTaker <T> careTaker)
        {
            if (careTaker is EditorCareTaker ect)
            {
                var fact = new SheetWriterFactory();
                fact.AddAssembly(Assembly.GetAssembly(typeof(SaveToPdfCommand)));

                var extensions = fact.GetAllSupportedExtension().Where(x => x.ext.Contains("pdf")).Select(x =>
                {
                    var e = $"*{x.ext}";

                    if (x.ext.StartsWith("(", StringComparison.InvariantCultureIgnoreCase))
                    {
                        e = x.ext.Replace("(", "").Replace(")", "").Replace("|", ";").Replace(".", "*.");
                    }

                    return($"{x.name}|{e}");
                });

                var fileService = ServiceLocator.Current.GetInstance <IFileService>();

                var path = fileService.RequestWritePath(string.Join("|", extensions.ToArray()));

                if (!string.IsNullOrWhiteSpace(path))
                {
                    var writer = fact.GetWriter(path);

                    try
                    {
                        writer.WriteToFile(ect.Current.MusicSheet);
                    }
                    catch (Exception ex)
                    {
                        Messenger.Default.Send(new ErrorMessage()
                        {
                            Exception = ex
                        });
                    }
                }
            }
        }