/// <summary>
        /// Recherche du template de génération
        /// </summary>
        /// <param name="layer">The layer.</param>
        /// <returns></returns>
        public string GetProjectTemplate(SoftwareLayer layer)
        {
            // Le template de la couche est prioritaire
            if (!string.IsNullOrEmpty(layer.Template))
            {
                return(layer.Template);
            }

            // Puis on cherche dans les autres stratégies
            foreach (StrategyBase strategy in layer.GetStrategies(true))
            {
                if (strategy is IStrategyProvidesProjectTemplates && strategy != this)
                {
                    string projectTemplate = ((IStrategyProvidesProjectTemplates)strategy).GetProjectTemplate(layer);
                    if (!String.IsNullOrEmpty(projectTemplate))
                    {
                        return(projectTemplate);
                    }
                }
            }

            // Puis celui de la stratégie courante
            if (!String.IsNullOrEmpty(ProjectTemplate))
            {
                return(ProjectTemplate);
            }

            // Valeur par défaut
            if (layer is Layer && ((Layer)layer).HostingContext == HostingContext.Web)
            {
                return(StrategyManager.GetInstance(layer.Store).TargetLanguage.DefaultWebLibraryTemplateName);
            }

            return(StrategyManager.GetInstance(layer.Store).TargetLanguage.DefaultLibraryTemplateName);
        }
Beispiel #2
0
        /// <summary>
        /// Gets the assembly extension.
        /// </summary>
        /// <param name="layer">The layer.</param>
        /// <returns></returns>
        public string GetAssemblyExtension(SoftwareLayer layer)
        {
            IList <StrategyBase> strategies = layer.GetStrategies(true);

            // D'abord exécution des stratégies générant les projets
            foreach (StrategyBase strategy in strategies)
            {
                if (strategy is IStrategyProvidesProjectTemplates)
                {
                    string ext = ((IStrategyProvidesProjectTemplates)strategy).GetAssemblyExtension(layer);
                    if (!String.IsNullOrEmpty(ext))
                    {
                        return(ext);
                    }
                }
            }
            return(".dll"); // defaut
        }