public void RegisterHashTagUse(string sanitizedHashTag) { lock (_lock) { var found = false; foreach (var hashTag in TopHashTagsList) { hashTag.Score *= _config.ExponentialDecayFactor; if (hashTag.Name == sanitizedHashTag) { found = true; hashTag.Score += _config.PointsPerPost; } } if (!found) { TopHashTagsList.Add(new HashTag { Name = sanitizedHashTag, Score = _config.PointsPerPost }); if (TopHashTagsList.Count > _config.HashTagsToRetain) { TopHashTagsList.Remove(TopHashTagsList.Min); } } _registrationsSinceLastFlush++; if (_registrationsSinceLastFlush >= _config.DataFlushPostInterval) { Flush(); } } }
public void UpdateTopHashTagsList(TopHashTagsList topHashTagsList) => UpdateEntity(topHashTagsList);
public TopHashTagsList CreateTopHashTagsList(TopHashTagsList topHashTagsList) => CreateEntity(topHashTagsList);