private void AddOrUpdate(TestRunInformation item, FileLocation location) { lock (_hash) { if (_fileLocations.ContainsKey(item.Name)) { UpdateProjectionsRemoval(LookUpByName(item.Name)); _fileWaste += _fileLocations[item.Name].Length; _fileLocations[item.Name] = location; _totalSize += location.Length; if (_useCache) _hash[item.Name] = item; } else { _fileLocations.Add(item.Name, location); _totalEntries++; _totalSize += location.Length; if (_useCache) _hash.Add(item.Name, item); } } UpdateProjections(item); }