/// <summary> /// Fetches prime numbers from existing result files. /// </summary> /// <param name="fileHandler">The object handling the result files.</param> /// <returns>Container holding information about the loaded prime numbers.</returns> public ExistingPrimesLoadingResult FetchExistingPrimes(ResultFileHandler fileHandler) { //Tell the user the loading has started. var startingArgs = new LoadingPrimesFromResultFileStartedArgs(); OnLoadingPrimesFromResultFileStarted?.Invoke(this, startingArgs); //Load the existing primes. var result = fetchPrimes(fileHandler.ResultFiles); //Store the index of the last result file with room for more prime numbers. result.IndexOfLastResultFileToStoreIn = findFirstStorableFileIndex(fileHandler.ResultFiles); //Tell the user that the loading finished. int numberOfPrimesLoaded = result.CachedPrimes.Count; int numberOfResultFilesLoaded = (int)Math.Ceiling(result.CachedPrimes.Count / (decimal)Configuration.NumberOfPrimesInFile); var loadingFinishedArgs = new LoadingPrimesFromResultFileFinishedArgs(numberOfPrimesLoaded, numberOfResultFilesLoaded); OnLoadingPrimesFromResultFileFinished?.Invoke(this, loadingFinishedArgs); //Return the result from the loading. return(result); }
/// <summary> /// Handles the OnLoadingPrimesFromResultFileFinished event for the object loading existing prime numbers. /// </summary> /// <param name="loader">The object loading the existing prime numbers.</param> /// <param name="args">The information about the event.</param> private void Loader_OnLoadingPrimesFromResultFileFinished(object loader, LoadingPrimesFromResultFileFinishedArgs args) { OnLoadingPrimesFromResultFileFinished?.Invoke(loader, args); }
private static void Generator_OnLoadingPrimesFromResultFileFinished(object generator, LoadingPrimesFromResultFileFinishedArgs args) { if (args.NumberOfResultFilesLoaded == 0) { Console.WriteLine("No existing result files were found. The generation will start from scratch."); } else { var format = "Prime number loading finished. {0} primes were loaded from {1} files."; var message = String.Format(format, args.NumberOfPrimesLoaded, args.NumberOfResultFilesLoaded); Console.WriteLine(message); } }