public static bool IsIndexRecreationRequired()
        {
            if (string.IsNullOrEmpty(IndexDirectoryPath) || string.IsNullOrEmpty(IndexStatePath))
            {
                ConstructIndexPaths();
            }
            IndexState previousIndexState = readPreviousIndexState(IndexStatePath);
            var        sandoOptions       = ServiceLocator.Resolve <ISandoOptionsProvider>().GetSandoOptions();;

            IndexState currentIndexState = readCurrentIndexState(IndexDirectoryPath, sandoOptions.ExtensionPointsConfigurationFilePath);
            bool       result            = previousIndexState == null || !previousIndexState.Equals(currentIndexState);

            saveIndexState(currentIndexState, IndexStatePath);
            return(result);
        }