public void Init(Dictionary <string, IDbContextFilter> filters, Type fileManagerType)
        {
            Settings.FilterCount = filters.Count;

            _writeToOuter = Settings.GenerateSingleDbContext && !Settings.GenerateSeparateFiles;

            // For debug

            /*var a = _writeToOuter;
             * var b = Settings.FilterCount;
             * var c = Settings.GenerateSeparateFiles;
             * var d = Settings.TemplateType;
             * var e = Settings.GenerateSingleDbContext;
             * var f = filters.First().Key;*/

            if (fileManagerType == typeof(VisualStudioFileManager))
            {
                _visualStudioFileManager = (VisualStudioFileManager)Activator.CreateInstance(fileManagerType);
                _visualStudioFileManager.Init(_outer);

                // Switch to the CustomFileManager for the rest
                fileManagerType = typeof(CustomFileManager);
            }

            foreach (var filter in filters)
            {
                var fileManager = (IFileManager)Activator.CreateInstance(fileManagerType);
                fileManager.Init(_outer);
                if (!string.IsNullOrWhiteSpace(filter.Key))
                {
                    fileManager.StartNewFile(filter.Key + Settings.FileExtension);
                }
                _fileManagers.Add(filter.Key, fileManager);
            }
        }
        public FileManagementService(GeneratedTextTransformation outer)
        {
            if (outer == null)
            {
                throw new ArgumentNullException(nameof(outer));
            }

            _outer                   = outer;
            _fileManagers            = new Dictionary <string, IFileManager>();
            _fileManager             = null;
            _visualStudioFileManager = null;
        }