Beispiel #1
0
 public CodeSearcherLogic(
     ICodeSearcherLogger logger,
     Func <string> getIndexPath,
     Func <string> getSourcePath,
     Func <IList <string> > getFileExtension)
 {
     m_Logger           = logger;
     m_GetIndexPath     = getIndexPath;
     m_GetSourcePath    = getSourcePath;
     m_GetFileExtension = getFileExtension;
 }
Beispiel #2
0
        /// <inheritdoc />
        ICodeSearcherManager ICodeSearcherFactory.GetCodeSearcherManager(ICodeSearcherLogger logger)
        {
            if (logger is null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            var mgr = Ioc.Get <ICodeSearcherManager>(new ConstructorArgument("logger", logger));

            return(mgr);
        }
        /// <summary>
        /// Default constructor to create code-searcher Web API controller
        /// </summary>
        /// <param name="logger">Instance where all messages should be logged into</param>
        /// <param name="memoryCache">Instance to cache data</param>
        public CodeSearcherController(ILogger <CodeSearcherController> logger, IMemoryCache memoryCache)
        {
            m_Logger      = new WebLogAdapter(logger);
            m_Manager     = Factory.Get().GetCodeSearcherManager(m_Logger);
            m_MemoryCache = memoryCache;

            string cachedManagementInformation;

            if (m_MemoryCache.TryGetValue <string>(CacheKeys.ManagementInformationKey, out cachedManagementInformation))
            {
                if (string.Compare(cachedManagementInformation, m_Manager.ManagementInformationPath, StringComparison.OrdinalIgnoreCase) != 0)
                {
                    m_Manager.ManagementInformationPath = cachedManagementInformation;
                }
            }
        }
Beispiel #4
0
        /// <inheritdoc />
        ICodeSearcherLogic ICodeSearcherFactory.GetCodeSearcherLogic(
            ICodeSearcherLogger logger,
            Func <string> getIndexPath,
            Func <string> getSourcePath,
            Func <IList <string> > getFileExtension)
        {
            //for testing
            if (m_CodeSearcherLogic != null)
            {
                return(m_CodeSearcherLogic);
            }

            if (logger is null)
            {
                throw new ArgumentNullException(nameof(logger));
            }

            if (getIndexPath is null)
            {
                throw new ArgumentNullException(nameof(getIndexPath));
            }

            if (getSourcePath is null)
            {
                throw new ArgumentNullException(nameof(getSourcePath));
            }

            if (getFileExtension is null)
            {
                throw new ArgumentNullException(nameof(getFileExtension));
            }

            return(Ioc.Get <ICodeSearcherLogic>(
                       new ConstructorArgument("logger", logger),
                       new ConstructorArgument("getIndexPath", getIndexPath),
                       new ConstructorArgument("getSourcePath", getSourcePath),
                       new ConstructorArgument("getFileExtension", getFileExtension)
                       ));
        }
 public CodeSearcherManager(ICodeSearcherLogger logger)
 {
     m_Logger = logger ?? throw new ArgumentNullException(nameof(logger));
     ManagementInformationPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), FolderNames.ManagementFolder);
     ReadMetaFilesFromDisk();
 }