예제 #1
0
        /// <summary>
        /// Retrieves a list of registered JavaScript module includes.
        /// </summary>
        /// <returns>Enumerator of JavaScriptModuleViewModel objects.</returns>
        public IEnumerable <JavaScriptModuleInclude> GetJavaScriptIncludes()
        {
            IEnumerable <JavaScriptModuleInclude> model = Enumerable.Empty <JavaScriptModuleInclude>();

            try
            {
                var javaScriptModules = modulesRegistration.GetJavaScriptModules();

                if (javaScriptModules != null)
                {
                    model = javaScriptModules
                            .Select(
                        f => new JavaScriptModuleInclude
                    {
                        Name            = f.Name,
                        IsAutoGenerated = f.IsAutoGenerated,
                        Path            = f.IsAutoGenerated ? string.Format(RootModuleConstants.AutoGeneratedJsFilePathPattern, f.Name) : f.Path,
                        MinifiedPath    = f.MinPath ?? f.Module.MinifiedJsPath,
                        FriendlyName    = f.FriendlyName,
                        Links           = new ProjectionsViewModel
                        {
                            Projections = f.Links.OrderBy(x => x.Order)
                        },
                        Globalization = new ProjectionsViewModel
                        {
                            Projections = f.Globalization.OrderBy(x => x.Order)
                        },
                        ShimConfig = f.ShimConfiguration != null ? new JavaScriptModuleShimConfigurationViewModel
                        {
                            Exports = f.ShimConfiguration.Exports,
                            Depends = f.ShimConfiguration.Depends
                        } : null
                    });
                }
            }
            catch (CoreException ex)
            {
                Log.Error("Failed to retrieve java script modules.", ex);
            }

            return(model);
        }