Example #1
0
 public void Serialize(AssemblyMetadataBase data, string databaseName)
 {
     Clear(databaseName);
     using (DataContext dataContext = new DataContext(databaseName))
     {
         AssemblyMetadataDB assembly = (AssemblyMetadataDB)data;
         dataContext.AssemblyModel.Add(assembly);
         dataContext.SaveChanges();
     }
 }
Example #2
0
        public static void Initialize(TestContext testContext)
        {
            dllPath              = "./../../../DllForTests/TPA.ApplicationArchitecture.dll";
            pathTarget           = "./../../../UnitTestXmlSerializing/bin/Debug/xmlTest.xml";
            serializer           = new XMLSerializer();
            assemblyMetadataBase = new AssemblyMetadataXml();

            reflector = new Reflector(dllPath);
            serializer.Serialize(AssemblyMetadataMapper.MapToSerialize(reflector.AssemblyMetadata, assemblyMetadataBase.GetType()), pathTarget);
            assemblyMetadata = AssemblyMetadataMapper.MapToDeserialize(serializer.Deserialize(pathTarget));
        }
Example #3
0
        public void Serialize(AssemblyMetadataBase data, string path)
        {
            AssemblyMetadataXml assembly = data as AssemblyMetadataXml;
            string jsonString            = JsonConvert.SerializeObject(assembly, Formatting.Indented, new JsonSerializerSettings
            {
                PreserveReferencesHandling = PreserveReferencesHandling.Objects
            });
            XDocument document = JsonConvert.DeserializeXNode(jsonString, "Root", true);

            document.Save(path);
        }
        public static AssemblyMetadata MapToDeserialize(AssemblyMetadataBase metadata)
        {
            AssemblyMetadata assemblyModel = new AssemblyMetadata();
            Type             type          = metadata.GetType();

            assemblyModel.Name = metadata.Name;
            PropertyInfo namespaceMetadatasProperty = type.GetProperty("Namespaces", BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
            List <NamespaceMetadataBase> namespaces = (List <NamespaceMetadataBase>)ConvertionUtilities.ConvertList(typeof(NamespaceMetadataBase), (IList)namespaceMetadatasProperty?.GetValue(metadata));

            if (namespaces != null)
            {
                assemblyModel.Namespaces = namespaces.Select(n => new NamespaceMetadataMapper().MapToDeserialize(n)).ToList();
            }
            return(assemblyModel);
        }
Example #5
0
        public static void Initialize(TestContext testContext)
        {
            string   _DBRelativePath       = @"DatabaseForTests\TestDatabase.mdf";
            string   _TestingWorkingFolder = Environment.CurrentDirectory;
            string   _DBPath       = Path.Combine(_TestingWorkingFolder, _DBRelativePath);
            FileInfo _databaseFile = new FileInfo(_DBPath);

            Assert.IsTrue(_databaseFile.Exists, $"{Environment.CurrentDirectory}");
            databasePath = $@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename={_DBPath};Integrated Security = True; Connect Timeout = 30;";

            dllPath              = "./../../../DllForTests/TPA.ApplicationArchitecture.dll";
            serializer           = new DatabaseSerializer();
            assemblyMetadataBase = new AssemblyMetadataDB();

            reflector = new Reflector(dllPath);
            serializer.Serialize(AssemblyMetadataMapper.MapToSerialize(reflector.AssemblyMetadata, assemblyMetadataBase.GetType()), databasePath);
            assemblyMetadata = AssemblyMetadataMapper.MapToDeserialize(serializer.Deserialize(databasePath));
        }
Example #6
0
 public AssemblyMetadataBase Deserialize(string databaseName)
 {
     using (DataContext dataContext = new DataContext(databaseName))
     {
         dataContext.Configuration.ProxyCreationEnabled = false;
         AssemblyMetadataBase assembly = dataContext.AssemblyModel.Include(a => a.Namespaces).ToList().FirstOrDefault();
         dataContext.Namespaces
         .Include(n => n.Types).Load();
         dataContext.Types
         .Include(t => t.Constructors).Include(t => t.Methods)
         .Include(t => t.BaseType).Include(t => t.DeclaringType)
         .Include(t => t.Fields).Include(t => t.Properties)
         .Include(t => t.GenericArguments).Include(t => t.ImplementedInterfaces)
         .Include(t => t.Modifiers).Include(t => t.NestedTypes).Load();
         dataContext.Methods
         .Include(m => m.GenericArguments).Include(m => m.Parameters)
         .Include(m => m.Modifiers).Include(m => m.ReturnType).Load();
         dataContext.Parameters
         .Include(p => p.TypeMetadata).Load();
         dataContext.Properties
         .Include(p => p.TypeMetadata).Load();
         return(assembly);
     }
 }