Ejemplo n.º 1
0
        private TransformationCollection GetTransformations(VisitorResult result, List <RequireCall> flattened)
        {
            var trans      = new TransformationCollection();
            var moduleName = this.CheckForConfigPath(RelativeFileName.ToModuleName());

            if (!result.RequireCalls.Any())
            {
                var shim = GetShim(RelativeFileName);
                var deps = new List <string>();
                if (shim != null)
                {
                    deps = shim.Dependencies.Select(r => r.Dependency).ToList();
                }

                trans.Add(ShimFileTransformation.Create(moduleName, deps));
            }
            else
            {
                foreach (var reqCall in result.RequireCalls.Where(r => r.DependencyArrayNode != null))
                {
                    trans.Add(NormalizeDepsTransformation.Create(reqCall));
                }

                // if there are no define calls but there is at least one require module call, transform that into a define call
                if (!result.RequireCalls.Where(r => r.Type == RequireCallType.Define).Any())
                {
                    if (result.RequireCalls.Where(r => r.IsModule).Any())
                    {
                        var call = result.RequireCalls.Where(r => r.IsModule).FirstOrDefault();
                        trans.Add(ToDefineTransformation.Create(call));
                        trans.Add(AddIdentifierTransformation.Create(call, moduleName));
                    }

                    //TODO: Append shimmed dependencies here too
                }
                else
                {
                    var defineCall = result.RequireCalls.Where(r => r.Type == RequireCallType.Define).FirstOrDefault();
                    if (string.IsNullOrEmpty(defineCall.Id))
                    {
                        trans.Add(AddIdentifierTransformation.Create(defineCall, moduleName));
                    }

                    if (defineCall.DependencyArrayNode == null)
                    {
                        trans.Add(AddEmptyDepsArrayTransformation.Create(defineCall));
                    }

                    var shim = GetShim(RelativeFileName);
                    if (shim != null)
                    {
                        var deps = shim.Dependencies.Select(r => r.Dependency).ToList();
                        trans.Add(AddDepsTransformation.Create(defineCall, deps));
                    }
                }
            }

            return(trans);
        }
Ejemplo n.º 2
0
        public ProjectNodeViewModel GetNodeByRelativeFileName(string relativeFilePathName)
        {
            if (RelativeFileName.ToLower() == relativeFilePathName.ToLower())
            {
                return(this);
            }

            foreach (ProjectNodeViewModel childNode in Children)
            {
                var foundNode = childNode.GetNodeByRelativeFileName(relativeFilePathName);
                if (foundNode != null)
                {
                    return(foundNode);
                }
            }

            return(null);
        }