Exemple #1
0
        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;
                }
            }
        }
Exemple #2
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 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();
 }
Exemple #6
0
        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;
                }
            }
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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);
        }
Exemple #11
0
 public static bool GetItemNameEditable(this ITemplateInfo ti)
 {
     return(ti.GetTemplateType() == TemplateType.Page || ti.GetMultipleInstance());
 }