Exemplo n.º 1
0
        private static INamespace GetNamespace(CSharpElementFactory factory, string importName)
        {
            var usingDirective      = factory.CreateUsingDirective(importName);
            var reference           = usingDirective.ImportedSymbolName;
            var reflectionNamespace = reference.Reference.Resolve().DeclaredElement as INamespace;

            return(reflectionNamespace);
        }
Exemplo n.º 2
0
        public static void AddUsing(this ICSharpFile file, string namespaceName, [NotNull] CSharpElementFactory factory)
        {
            var usingSymbolDirectives = file.ImportsEnumerable.OfType <IUsingSymbolDirective>().ToArray();
            var taskUsing             = factory.CreateUsingDirective(namespaceName);

            if (usingSymbolDirectives.All(i => i.ImportedSymbolName.QualifiedName != namespaceName))
            {
                file.AddImport(taskUsing, true);
            }
        }
Exemplo n.º 3
0
        private void AddUsings(MockInfo[] mockInfos, CSharpElementFactory factory)
        {
            var usingSymbolDirectives = file.ImportsEnumerable.OfType <IUsingSymbolDirective>().ToArray();
            var namespaces            = mockInfos.Select(x => x.Type.GetScalarType()?.GetClrName().GetNamespaceName()).Where(x => !string.IsNullOrEmpty(x)).Distinct().ToArray();

            foreach (var namespaceName in namespaces)
            {
                var taskUsing = factory.CreateUsingDirective(namespaceName);
                if (usingSymbolDirectives.All(i => i.ImportedSymbolName.QualifiedName != namespaceName))
                {
                    file.AddImport(taskUsing, true);
                }
            }
        }
        private static void EnsureNamespaceExists(ICSharpFile file, CSharpElementFactory factory)
        {
            var namespaceExists =
                file.NamespaceDeclarationNodes.Any(
                    n => n.Imports.Any(d => d.ImportedSymbolName.QualifiedName == AsObservableNamespace));

            if (!namespaceExists)
            {
                var directive = factory.CreateUsingDirective(AsObservableNamespace);

                var namespaceNode = file.NamespaceDeclarationNodes.FirstOrDefault();
                if (namespaceNode != null)
                {
                    UsingUtil.AddImportTo(namespaceNode, directive);
                }
                else
                {
                    UsingUtil.AddImportTo(file, directive);
                }
            }
        }