private Response SickRageTest() { var sickRageSettings = this.Bind <SickRageSettings>(); var valid = this.Validate(sickRageSettings); if (!valid.IsValid) { return(Response.AsJson(valid.SendJsonError())); } try { var status = SickRageApi.Ping(sickRageSettings.ApiKey, sickRageSettings.FullUri); return(status?.result == "success" ? Response.AsJson(new JsonResponseModel { Result = true, Message = "Connected to SickRage successfully!" }) : Response.AsJson(new JsonResponseModel { Result = false, Message = "Could not connect to SickRage, please check your settings." })); } catch (Exception e) // Exceptions are expected, if we cannot connect so we will just log and swallow them. { Log.Warn("Exception thrown when attempting to get SickRage's status: "); Log.Warn(e); var message = $"Could not connect to SickRage, please check your settings. <strong>Exception Message:</strong> {e.Message}"; if (e.InnerException != null) { message = $"Could not connect to SickRage, please check your settings. <strong>Exception Message:</strong> {e.InnerException.Message}"; } return(Response.AsJson(new JsonResponseModel { Result = false, Message = message })); } }
public async Task <bool> SickRage([FromBody] SickRageSettings settings) { try { settings.Enabled = true; var result = await SickRageApi.Ping(settings.ApiKey, settings.FullUri); return(result?.data?.pid != null); } catch (Exception e) { Log.LogError(LoggingEvents.Api, e, "Could not test SickRage"); return(false); } }