コード例 #1
0
        /// <summary>
        /// Setup statistics storage with data from the json file database.
        /// Intended use - at server start.
        /// </summary>
        /// <returns>Returns no value.</returns>
        public async void SetupStorage()
        {
            _logger.LogInformation($"{nameof(StatisticsService)}: Initial setup of the statistics storage.");
            var          statisticsFiles = Directory.GetFiles(_options.StatisticsPath);
            StatisticsDb fileData;

            _logger.LogInformation($"{nameof(StatisticsService)}: {statisticsFiles.Length} files with statistics by each user were(was) found.");

            foreach (var file in statisticsFiles)
            {
                fileData = await _jsonDataService.ReadJsonObjectAsync(file);

                if (fileData != null)   //if file is not empty
                {
                    var userStatistics = ModelsMapper.ToUserStatistics(fileData);

                    await _statistics.AddAsync(userStatistics, fileData.UserId);
                }
            }

            _logger.LogInformation($"{nameof(StatisticsService)}: Statistics for {statisticsFiles.Length} users was added to the statistics storage.");
        }