private BackupParserManager SetupBackupParserManagerAndStartParsing()

in src/BackupExplorer/RestServer/BackupWebHost.cs [65:93]


        private BackupParserManager SetupBackupParserManagerAndStartParsing()
        {
            var backupParser = new BackupParser(this.backupChainInfo.BackupChainPath, this.backupChainInfo.CodePackagePath);
            var stateManager = backupParser.StateManager;

            foreach (var serializer in this.backupChainInfo.Serializers)
            {
                var stateTypeName = serializer.StateFullyQualifiedTypeName;
                var serializerTypeName = serializer.SerializerFullyQualifiedTypeName;

                var stateType = Type.GetType(stateTypeName, true);
                var serializerType = Type.GetType(serializerTypeName, true);
                var serializerObject = new object();
                if (serializerType.Name  != "DataContractSerializer")                
                {
                    serializerObject = Activator.CreateInstance(serializerType);

                    stateManager.GetType()
                    .GetMethod("TryAddStateSerializer", BindingFlags.Instance | BindingFlags.Public)
                    .MakeGenericMethod(stateType)
                    .Invoke(stateManager, new object[] { serializerObject });
                }
                
            }

            var backupParserManager = new BackupParserManager(backupParser);
            backupParserManager.StartParsing();
            return backupParserManager;
        }