@@ -19,17 +19,25 @@ public class SteamExtensions
1919 /// <returns>List of steam player informations</returns>
2020 public static async Task < List < SteamPlayerPlayerModel > > GetSteamPlayers ( List < string > steamids )
2121 {
22- var request = WebRequest . Create ( Program . STEAM_API_PLAYER_URL + Program . Settings . SteamApiKey + "&steamids=" + String . Join ( "," , steamids ) ) ;
23- request . Method = "GET" ;
22+ try
23+ {
24+ var request = WebRequest . Create ( Program . STEAM_API_PLAYER_URL + Program . Settings . SteamApiKey + "&steamids=" + String . Join ( "," , steamids ) ) ;
25+ request . Method = "GET" ;
2426
25- using var webResponse = request . GetResponse ( ) ;
26- using var webStream = webResponse . GetResponseStream ( ) ;
27+ using var webResponse = request . GetResponse ( ) ;
28+ using var webStream = webResponse . GetResponseStream ( ) ;
2729
28- using var reader = new StreamReader ( webStream ) ;
29- var data = await reader . ReadToEndAsync ( ) ;
30- var model = JsonConvert . DeserializeObject < SteamPlayerModel > ( data ) ;
30+ using var reader = new StreamReader ( webStream ) ;
31+ var data = await reader . ReadToEndAsync ( ) ;
32+ var model = JsonConvert . DeserializeObject < SteamPlayerModel > ( data ) ;
3133
32- return model . response . players ;
34+ return model . response . players ;
35+ }
36+ catch ( Exception e )
37+ {
38+ ConsoleExtensions . Error ( e . Message ) ;
39+ return null ;
40+ }
3341 }
3442
3543 /// <summary>
@@ -44,24 +52,39 @@ public static async Task<string> GetGameInfo(double appId)
4452
4553 if ( reloadList )
4654 {
47- var request = WebRequest . Create ( Program . STEAM_API_GAME_LIST_URL ) ;
48- request . Method = "GET" ;
55+ try
56+ {
57+ var request = WebRequest . Create ( Program . STEAM_API_GAME_LIST_URL ) ;
58+ request . Method = "GET" ;
4959
50- using var webResponse = request . GetResponse ( ) ;
51- using var webStream = webResponse . GetResponseStream ( ) ;
60+ using var webResponse = request . GetResponse ( ) ;
61+ using var webStream = webResponse . GetResponseStream ( ) ;
5262
53- using var reader = new StreamReader ( webStream ) ;
54- var data = await reader . ReadToEndAsync ( ) ;
63+ using var reader = new StreamReader ( webStream ) ;
64+ var data = await reader . ReadToEndAsync ( ) ;
5565
56- using ( StreamWriter sw = File . CreateText ( filename ) )
66+ using ( StreamWriter sw = File . CreateText ( filename ) )
67+ {
68+ sw . WriteLine ( data ) ;
69+ }
70+ }
71+ catch ( Exception e )
5772 {
58- sw . WriteLine ( data ) ;
73+ ConsoleExtensions . Error ( e . Message ) ;
5974 }
6075 }
6176
62- var content = File . ReadAllText ( filename ) ;
63- var apps = JsonConvert . DeserializeObject < GameInfo > ( content ) . applist . apps ;
64- return apps . FirstOrDefault ( x => x . appid . Equals ( appId ) ) . name ?? "Unknown Gamename" ;
77+ try
78+ {
79+ var content = File . ReadAllText ( filename ) ;
80+ var apps = JsonConvert . DeserializeObject < GameInfo > ( content ) . applist . apps ;
81+ return apps . FirstOrDefault ( x => x . appid . Equals ( appId ) ) . name ?? "Unknown Gamename" ;
82+ }
83+ catch ( Exception e )
84+ {
85+ ConsoleExtensions . Error ( e . Message ) ;
86+ return "Unknown Gamename" ;
87+ }
6588 }
6689
6790 /// <summary>
@@ -71,8 +94,8 @@ public static async Task<string> GetGameInfo(double appId)
7194 /// <returns>Details of the collection by given collection id</returns>
7295 public static async Task < SteamFileDetailJsonDetailModel > GetCollectionInfo ( double steamCollectionId )
7396 {
74- var model = await GetPublishedFileDetails < SteamFileDetailJsonModel > ( new List < double > { steamCollectionId } ) ;
75- return model . response . publishedfiledetails . FirstOrDefault ( ) ;
97+ var model = await GetPublishedFileDetails ( new List < double > { steamCollectionId } ) ;
98+ return model ? . response ? . publishedfiledetails ? . FirstOrDefault ( ) ;
7699 }
77100
78101 /// <summary>
@@ -81,7 +104,7 @@ public static async Task<SteamFileDetailJsonDetailModel> GetCollectionInfo(doubl
81104 /// <typeparam name="T">Type of the json deserilize object that is needed</typeparam>
82105 /// <param name="files">List of file ids</param>
83106 /// <returns>Specific information above the given file ids</returns>
84- public static async Task < T > GetPublishedFileDetails < T > ( List < double > files )
107+ public static async Task < SteamFileDetailJsonModel > GetPublishedFileDetails ( List < double > files )
85108 {
86109 var parameters = new List < KeyValuePair < string , string > > ( ) ;
87110 int i = 0 ;
@@ -98,9 +121,16 @@ public static async Task<T> GetPublishedFileDetails<T>(List<double> files)
98121 content . Headers . Clear ( ) ;
99122 content . Headers . Add ( "Content-Type" , "application/x-www-form-urlencoded" ) ;
100123
101- HttpResponseMessage response = await httpClient . PostAsync ( Program . STEAM_API_FILE_DETAILS_URL , content ) ;
102-
103- return JsonConvert . DeserializeObject < T > ( await response . Content . ReadAsStringAsync ( ) ) ;
124+ try
125+ {
126+ HttpResponseMessage response = await httpClient . PostAsync ( Program . STEAM_API_FILE_DETAILS_URL , content ) ;
127+ return JsonConvert . DeserializeObject < SteamFileDetailJsonModel > ( await response . Content . ReadAsStringAsync ( ) ) ;
128+ }
129+ catch ( Exception e )
130+ {
131+ ConsoleExtensions . Error ( e . Message ) ;
132+ return null ;
133+ }
104134 }
105135 }
106136 }
0 commit comments