public async Task TrackItemGenAsync(ITemplateInfo template, GenSourceEnum genSource, string appProjectType, string appFx, TemplateCreationResult result) { if (template == null) { throw new ArgumentNullException("template"); } if (result == null) { throw new ArgumentNullException("result"); } if (template != null && result != null) { switch (template.GetTemplateType()) { case TemplateType.Page: await TrackItemGenAsync(TelemetryEvents.PageGen, template, genSource, appProjectType, appFx, result); break; case TemplateType.Feature: await TrackItemGenAsync(TelemetryEvents.FeatureGen, template, genSource, appProjectType, appFx, result); break; case TemplateType.Unspecified: break; } } }
public void AddItem(UserSelection userSelection, string itemName, ITemplateInfo template) { switch (template.GetTemplateType()) { case TemplateType.Page: userSelection.Pages.Add((itemName, template)); break; case TemplateType.Feature: userSelection.Features.Add((itemName, template)); break; } _usedNames.Add(itemName); var dependencies = GenComposer.GetAllDependencies(template, userSelection.Framework); foreach (var item in dependencies) { if (!AlreadyAdded(userSelection, item)) { AddItem(userSelection, item.GetDefaultName(), item); } } }
private static TemplateGroupTableRow GetTemplateGroupRow(IEnumerable <ITemplateInfo> templateGroup, string language, string defaultLanguage) { List <string> languageForDisplay = new List <string>(); HashSet <string> uniqueLanguages = new HashSet <string>(StringComparer.OrdinalIgnoreCase); string defaultLanguageDisplay = string.Empty; foreach (ITemplateInfo template in templateGroup) { string lang = template.GetLanguage(); if (string.IsNullOrWhiteSpace(lang)) { continue; } if (!uniqueLanguages.Add(lang)) { continue; } if (string.IsNullOrEmpty(language) && string.Equals(defaultLanguage, lang, StringComparison.OrdinalIgnoreCase)) { defaultLanguageDisplay = $"[{lang}]"; } else { languageForDisplay.Add(lang); } } languageForDisplay.Sort(StringComparer.OrdinalIgnoreCase); if (!string.IsNullOrEmpty(defaultLanguageDisplay)) { languageForDisplay.Insert(0, defaultLanguageDisplay); } ITemplateInfo highestPrecedenceTemplate = templateGroup.OrderByDescending(x => x.Precedence).First(); string shortName = highestPrecedenceTemplate.ShortNameList[0]; TemplateGroupTableRow groupDisplayInfo = new TemplateGroupTableRow { Name = highestPrecedenceTemplate.Name, ShortName = shortName, Languages = string.Join(",", languageForDisplay), Classifications = highestPrecedenceTemplate.Classifications != null?string.Join("/", highestPrecedenceTemplate.Classifications) : null, Author = highestPrecedenceTemplate.Author, Type = highestPrecedenceTemplate.GetTemplateType() ?? string.Empty }; return(groupDisplayInfo); }
public TemplateInfoViewModel GetTemplate(ITemplateInfo templateInfo) { var groups = templateInfo.GetTemplateType() == TemplateType.Page ? AddPages.Groups : AddFeatures.Groups; foreach (var group in groups) { var template = group.GetTemplate(templateInfo); if (template != null) { return(template); } } return(null); }
public TemplateInfoViewModel(ITemplateInfo template, IEnumerable <ITemplateInfo> dependencies) { Template = template; IsItemNameEditable = template.GetItemNameEditable(); DefaultName = template.GetDefaultName(); Group = template.GetGroup(); Icon = template.GetIcon(); Name = template.Name; Author = template.Author; Order = template.GetOrder(); Summary = template.Description; Identity = template.Identity; Version = template.GetVersion(); TemplateType = template.GetTemplateType(); Description = template.GetRichDescription(); DependencyItems.AddRange(dependencies.Select(d => new DependencyInfoViewModel(new TemplateInfoViewModel(d, GenComposer.GetAllDependencies(d, MainViewModel.Current.ConfigFramework))))); LicenseTerms = template.GetLicenses(); }
public async Task TrackItemGenAsync(ITemplateInfo template, GenSourceEnum genSource, UserSelectionContext context, TemplateCreationResult result) { if (template == null) { throw new ArgumentNullException(nameof(template)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (template != null && result != null) { switch (template.GetTemplateType()) { case TemplateType.Page: await TrackItemGenAsync(TelemetryEvents.PageGen, template, genSource, context, result); break; case TemplateType.Feature: await TrackItemGenAsync(TelemetryEvents.FeatureGen, template, genSource, context, result); break; case TemplateType.Service: await TrackItemGenAsync(TelemetryEvents.ServiceGen, template, genSource, context, result); break; case TemplateType.Testing: await TrackItemGenAsync(TelemetryEvents.TestingGen, template, genSource, context, result); break; case TemplateType.Unspecified: break; } } }
public async Task TrackItemGenAsync(ITemplateInfo template, GenSourceEnum genSource, string appProjectType, string appFrontendFramework, string appBackendFramework, string appPlatform, TemplateCreationResult result) { if (template == null) { throw new ArgumentNullException(nameof(template)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (template != null && result != null) { switch (template.GetTemplateType()) { case TemplateType.Page: await TrackItemGenAsync(TelemetryEvents.PageGen, template, genSource, appProjectType, appFrontendFramework, appBackendFramework, appPlatform, result); break; case TemplateType.Feature: await TrackItemGenAsync(TelemetryEvents.FeatureGen, template, genSource, appProjectType, appFrontendFramework, appBackendFramework, appPlatform, result); break; case TemplateType.Service: await TrackItemGenAsync(TelemetryEvents.ServiceGen, template, genSource, appProjectType, appFrontendFramework, appBackendFramework, appPlatform, result); break; case TemplateType.Testing: await TrackItemGenAsync(TelemetryEvents.TestingGen, template, genSource, appProjectType, appFrontendFramework, appBackendFramework, appPlatform, result); break; case TemplateType.Unspecified: break; } } }
public async Task TrackProjectGenAsync(ITemplateInfo template, UserSelectionContext context, TemplateCreationResult result, Guid vsProjectId, GenItemsTelemetryData genItemsTelemetryData = null, double?timeSpent = null, Dictionary <ProjectMetricsEnum, double> performanceCounters = null) { if (template == null) { throw new ArgumentNullException(nameof(template)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (template.GetTemplateType() != TemplateType.Project) { return; } GenStatusEnum telemetryStatus = result.Status == CreationResultStatus.Success ? GenStatusEnum.Completed : GenStatusEnum.Error; await TrackProjectAsync(telemetryStatus, template.GetTelemetryName(), context, vsProjectId, genItemsTelemetryData, timeSpent, performanceCounters, result.Status, result.Message); }
public async Task TrackProjectGenAsync(ITemplateInfo template, string appProjectType, string appFx, TemplateCreationResult result, Guid vsProjectId, int?pagesCount = null, int?featuresCount = null, string pageIdentities = "", string featureIdentitites = "", double?timeSpent = null) { if (template == null) { throw new ArgumentNullException("template"); } if (result == null) { throw new ArgumentNullException("result"); } if (template.GetTemplateType() != TemplateType.Project) { return; } GenStatusEnum telemetryStatus = result.Status == CreationResultStatus.Success ? GenStatusEnum.Completed : GenStatusEnum.Error; await TrackProjectAsync(telemetryStatus, template.Name, appProjectType, appFx, vsProjectId, pagesCount, featuresCount, pageIdentities, featureIdentitites, timeSpent, result.Status, result.Message); }
public async Task TrackProjectGenAsync(ITemplateInfo template, string appProjectType, string appFx, string appPlatform, TemplateCreationResult result, Guid vsProjectId, string language, int?pagesCount = null, int?featuresCount = null, string pageIdentities = "", string featureIdentitites = "", double?timeSpent = null, Dictionary <ProjectMetricsEnum, double> performanceCounters = null) { if (template == null) { throw new ArgumentNullException(nameof(template)); } if (result == null) { throw new ArgumentNullException(nameof(result)); } if (template.GetTemplateType() != TemplateType.Project) { return; } GenStatusEnum telemetryStatus = result.Status == CreationResultStatus.Success ? GenStatusEnum.Completed : GenStatusEnum.Error; await TrackProjectAsync(telemetryStatus, template.GetTelemetryName(), appProjectType, appFx, appPlatform, vsProjectId, language, pagesCount, featuresCount, pageIdentities, featureIdentitites, timeSpent, performanceCounters, result.Status, result.Message); }
public static bool GetItemNameEditable(this ITemplateInfo ti) { return(ti.GetTemplateType() == TemplateType.Page || ti.GetMultipleInstance()); }