public string GetDamageCauserName(string damageCauserKey) { try { var damageCausersDict = _memoryCache.Get <Dictionary <string, string> >(_damageCausersCacheKey); if (damageCausersDict == null) { var damageCausersJson = EmbeddedResourcesUtility.ReadEmbeddedResource(_damageCausersResourcePath); damageCausersDict = JsonConvert.DeserializeObject <Dictionary <string, string> >(damageCausersJson); _memoryCache.Set(_damageCausersCacheKey, damageCausersDict, new MemoryCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.UtcNow.Add(_damageCausersCacheExpiration) }); } return(damageCausersDict[damageCauserKey]); } catch (FileNotFoundException) { _logger.LogError($"Resource path: {_damageCausersResourcePath} not found"); } catch (JsonReaderException) { _logger.LogError($"Failed to deserialize Damage Causers json into a dictionary."); } catch (KeyNotFoundException) { _logger.LogError($"Key {damageCauserKey} not found in the damage causers dictionary."); } return(string.Empty); }
public IEnumerable <Competition> GetCompetitionSchedule() { var schedule = _memoryCache.Get <IEnumerable <Competition> >(_eventScheduleCacheKey); if (schedule != null) { return(schedule); } try { var scheduleJson = EmbeddedResourcesUtility.ReadEmbeddedResource(_eventScheduleResourcePath); var res = JsonConvert.DeserializeObject <IEnumerable <Competition> >(scheduleJson); _memoryCache.Set(_eventScheduleCacheKey, res, new MemoryCacheEntryOptions { AbsoluteExpiration = DateTimeOffset.UtcNow.Add(_eventScheduleCacheExpiration) }); return(res); } catch (FileNotFoundException) { _logger.LogError($"Resource path: {_eventScheduleResourcePath} not found"); } catch (JsonReaderException) { _logger.LogError($"Failed to deserialize Event Schedule json into a dictionary."); } return(null); }
public async Task GetTeamRankings_WhenProvidingMockInputs_ShouldProduceExpectedOutput() { // arrange var mockKillListStr = EmbeddedResourcesUtility.ReadEmbeddedResource("Fanview.Test.Mocks.killList.json"); var mockLiveMatchStatusStr = EmbeddedResourcesUtility.ReadEmbeddedResource("Fanview.Test.Mocks.liveMatchStatus.json"); var mockResStr = EmbeddedResourcesUtility.ReadEmbeddedResource("Fanview.Test.Mocks.teamRankingResult.json"); var mockKillList = JsonConvert.DeserializeObject <KillLeader>(mockKillListStr); var mockLiveMatchStatus = JsonConvert.DeserializeObject <IEnumerable <LiveMatchStatus> >(mockLiveMatchStatusStr); var mockRes = JsonConvert.DeserializeObject <IEnumerable <LiveTeamRanking> >(mockResStr); // act var res = await _sut.GetTeamRankings(mockKillList, mockLiveMatchStatus); // assert foreach (var team in res) { var mockTeam = mockRes.FirstOrDefault(t => t.TeamId == team.TeamId); Assert.AreEqual(mockTeam.RankPoints, team.RankPoints, team.TeamName + " - Rank points"); Assert.AreEqual(mockTeam.KillPoints, team.KillPoints, team.TeamName + " - Kill points"); Assert.AreEqual(mockTeam.TotalPoints, team.TotalPoints, team.TeamName + " - Total points"); Assert.AreEqual(mockTeam.TeamRank, team.TeamRank, team.TeamName + " - Rank"); } }