public virtual async Task <SolutionItem> CreateSolutionItem(ProgressMonitor monitor, SolutionLoadContext ctx, string fileName)
        {
            SolutionItem item;

            if (typeof(SolutionItemFactory).IsAssignableFrom(ItemType))
            {
                if (factory == null)
                {
                    factory = (SolutionItemFactory)Activator.CreateInstance(ItemType);
                }
                item = await factory.CreateItem(fileName, Guid).ConfigureAwait(false);
            }
            else
            {
                item = MSBuildProjectService.CreateUninitializedInstance(ItemType);
            }

            item.TypeGuid = Guid;
            return(item);
        }
        /// <inheritdoc />
        public void RunStarted(object automationObject, Dictionary <string, string> replacementsDictionary, WizardRunKind runKind, object[] customParams)
        {
            if (automationObject is DTE dte)
            {
                DTE      = dte;
                Solution = DTE.Solution;
            }

            SolutionItemInfrastructure infra = SolutionItemFactory.Create();

            infra.ViewModel.SolutionDirectory = replacementsDictionary[ReplacementNames.SolutionDirectory];
            infra.ViewModel.SolutionName      = Path.GetFileNameWithoutExtension(DTE.Solution.FullName);

            bool?result = infra.View.ShowModal();

            if (result == true)
            {
                Options = infra.Model;
            }
        }
		public virtual async Task<SolutionItem> CreateSolutionItem (ProgressMonitor monitor, SolutionLoadContext ctx, string fileName)
		{
			SolutionItem item;

			if (typeof(SolutionItemFactory).IsAssignableFrom (ItemType)) {
				if (factory == null)
					factory = (SolutionItemFactory)Activator.CreateInstance (ItemType);
				item = await factory.CreateItem (fileName, Guid);
			} else
				item = MSBuildProjectService.CreateUninitializedInstance (ItemType);
			
			item.TypeGuid = Guid;
			return item;
		}