Skip to content

Commit

Permalink
Added more exception handling
Browse files Browse the repository at this point in the history
Added better support for datetime differences
  • Loading branch information
Firewolf1337 committed Mar 15, 2023
1 parent 1547625 commit 2f4bbca
Show file tree
Hide file tree
Showing 2 changed files with 49 additions and 25 deletions.
50 changes: 37 additions & 13 deletions RCRPlanner/FetchData.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
using System.Text.Json.Serialization;
using System.Windows.Media.Imaging;
using System.Diagnostics;
using System.Windows;


namespace RCRPlanner
Expand Down Expand Up @@ -43,6 +44,7 @@ class FetchData
public static HttpClient client = new HttpClient();
public bool loggedIn = false;


public class iRacingLinks
{
public string link { get; set; }
Expand All @@ -51,29 +53,51 @@ public class iRacingLinks
public async Task<int> Login_API(byte[] Email, byte[] Password, bool forcelogin)
{
HttpResponseMessage response;

foreach (Cookie cookie in cookie.GetCookies(new Uri("https://iracing.com")))
{
if (cookie.Name == "authtoken_members" && cookie.Expires > DateTime.Now.AddMinutes(10) && forcelogin == false)
{
response = await client.GetAsync(iracingDataDoc);
try
{
response = await client.GetAsync(iracingDataDoc);
return Convert.ToInt32(response.StatusCode);

}
catch (Exception ex)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show("Existing connection: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}
if (handler.CookieContainer.Count == 0 || forcelogin)
{
handler = new HttpClientHandler();
handler.CookieContainer = cookie;
client = new HttpClient(handler);
string loginHash = EncryptPW(Email, Password);
string postBody = "{\"email\": \"" + Encoding.Default.GetString(Email) + "\",\"password\": \"" + loginHash + "\"}";
var content = new StringContent(postBody, Encoding.UTF8, "application/json");

response = await client.PostAsync(iracingAuthUrl, content);
try
{
handler = new HttpClientHandler();
handler.CookieContainer = cookie;
client = new HttpClient(handler);
string loginHash = EncryptPW(Email, Password);
string postBody = "{\"email\": \"" + Encoding.Default.GetString(Email) + "\",\"password\": \"" + loginHash + "\"}";
var content = new StringContent(postBody, Encoding.UTF8, "application/json");

response = await client.PostAsync(iracingAuthUrl, content);
response = await client.GetAsync(iracingDataDoc);
return Convert.ToInt32(response.StatusCode);
}
catch (Exception ex)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show("Connection: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
return 0;


response = await client.GetAsync(iracingDataDoc);

return Convert.ToInt32(response.StatusCode);
}
public async Task<string> getLink(string url)
{
Expand Down
24 changes: 12 additions & 12 deletions RCRPlanner/MainWindow.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -390,7 +390,7 @@ private async void worker_DoWork(object sender, DoWorkEventArgs e)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message,"Something went wrong." , MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("Reload data: " + ex.InnerException.Message,"Something went wrong." , MessageBoxButton.OK, MessageBoxImage.Error);
}
error = true;
}
Expand Down Expand Up @@ -742,7 +742,7 @@ private async void btnLogin_Click(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("Login: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
Expand Down Expand Up @@ -840,7 +840,7 @@ from allseries in ser.DefaultIfEmpty()
_trackobj.Name = tr.track_name;
_trackobj.Layoutname = tr.config_name;
_trackobj.Corners = tr.corners_per_lap;
_trackobj.Created = tr.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern);
_trackobj.Created = tr.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentUICulture);
_trackobj.Length = isMetric ? Math.Round(tr.track_config_length * 1.60934, 3) : tr.track_config_length;
_trackobj.Owned = User.track_packages.Any(p => p.package_id == tr.package_id) ? checksymbol : "";
_trackobj.Pitlimit = isMetric ? Convert.ToInt32(tr.pit_road_speed_limit * 1.60934) : tr.pit_road_speed_limit;
Expand All @@ -850,7 +850,7 @@ from allseries in ser.DefaultIfEmpty()
_trackobj.Category = tr.category;
_trackobj.TrackImage = new Uri("file:///" + exePath + tracksLogo + tr.track_id + ".png");
_trackobj.Week = track.SeasonSchedule.race_week_num+1;
_trackobj.Weekdate = DateTime.Parse(track.SeasonSchedule.start_date).ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern);
_trackobj.Weekdate = DateTime.Parse(track.SeasonSchedule.start_date, Thread.CurrentThread.CurrentUICulture).ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentUICulture);
_trackobj.Racelenght = track.SeasonSchedule.race_lap_limit != null ? track.SeasonSchedule.race_lap_limit.ToString() +" Laps": track.SeasonSchedule.race_time_limit.ToString() + " Min";
tracks.Add(_trackobj);
}
Expand Down Expand Up @@ -899,7 +899,7 @@ private void generateCarView()
carsDataGridObject.Weight = isMetric ? Convert.ToInt32(car.car_weight * 0.453592) : car.car_weight;
carsDataGridObject.Price = "$" + car.price.ToString();
carsDataGridObject.Owned = User.car_packages.Any(p => p.package_id == car.package_id) ? checksymbol : "";
carsDataGridObject.Created = car.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern);
carsDataGridObject.Created = car.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentUICulture);
carsDataGridObject.Series = seriesDataGridsList;
carsDataGridObject.Series_Participations = seriesDataGridsList.Count;
carsDataGridObject.ForumLink = car.forum_url;
Expand Down Expand Up @@ -963,7 +963,7 @@ private void generateTrackView()
newLayout.Layoutname = track.config_name;
newLayout.TrackImage = new Uri("file:///" + exePath + tracksLogo + track.track_id + ".png");
newLayout.Corners = track.corners_per_lap;
newLayout.Created = track.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern);
newLayout.Created = track.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentUICulture);
newLayout.Length = isMetric ? Math.Round(track.track_config_length * 1.60934,3) : track.track_config_length; ;
newLayout.Owned = User.track_packages.Any(p => p.package_id == track.package_id) ? checksymbol : "";
newLayout.Pitlimit = isMetric ? Convert.ToInt32(track.pit_road_speed_limit * 1.60934) : track.pit_road_speed_limit;
Expand Down Expand Up @@ -1003,7 +1003,7 @@ private void generateTrackView()
_trackObj.Layouts.Add(track);
_trackObj.Layouts_count++;
_trackObj.Participations += track.Participations;
_trackObj.Created = (DateTime.Parse(track.Created) < DateTime.Parse(_trackObj.Created)) ? track.Created : _trackObj.Created;
_trackObj.Created = (DateTime.Parse(track.Created, Thread.CurrentThread.CurrentUICulture) < DateTime.Parse(_trackObj.Created, Thread.CurrentThread.CurrentUICulture)) ? track.Created : _trackObj.Created;
}
if (_trackObj.Name.Contains("[Retired]"))
{
Expand Down Expand Up @@ -1048,7 +1048,7 @@ private void generatePurchaseGuideView()
dgObjects.tracksDataGrid tracksDataGridObject = new dgObjects.tracksDataGrid();
tracksDataGridObject.Name = track.track_name;
tracksDataGridObject.TrackImage = new Uri("file:///" + exePath + tracksLogo + track.track_id + ".png");
tracksDataGridObject.Created = track.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern);
tracksDataGridObject.Created = track.created.ToString(Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, Thread.CurrentThread.CurrentUICulture);
tracksDataGridObject.Price = "$" + track.price.ToString();
tracksDataGridObject.PackageID = track.package_id;
tracksDataGridObject.TrackID = track.track_id;
Expand Down Expand Up @@ -2087,7 +2087,7 @@ private async void btnProfileUpdate_Click(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("App Update:" + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
Expand Down Expand Up @@ -2198,7 +2198,7 @@ private async void btnMenu1_Click(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("Participation stats: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
btnMenu1.Content = "Get stat";
btnMenu1.IsEnabled = true;
Expand Down Expand Up @@ -2240,7 +2240,7 @@ private async void btnMenu1_Click(object sender, RoutedEventArgs e)
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("iRating stats: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
btnMenu1.Content = "Get stat";
btnMenu1.IsEnabled = true;
Expand Down Expand Up @@ -2389,7 +2389,7 @@ private async void ddMenu2_SelectionChanged(object sender, SelectionChangedEvent
{
if (!String.IsNullOrEmpty(ex.InnerException.Message))
{
MessageBox.Show(ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
MessageBox.Show("Loading iRating stats: " + ex.InnerException.Message, "Something went wrong.", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
Expand Down

0 comments on commit 2f4bbca

Please sign in to comment.