public HttpResponseMessage Get(string id, Frequency frequency, int day, decimal time, RunStatus lastRunStatus, int depth) { var trace = new GenericLoggingService("Details"); try { var calculator = new DateCalculator(DateTime.UtcNow, trace); var nextRunDate = calculator.Calculate(frequency, day, time, lastRunStatus, depth); if (!nextRunDate.HasValue) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new SchedulingResult { Message = "Unable to Calculate Next Run Date, ensure you have specified valid scheduling attributes" })); } return(Request.CreateResponse(HttpStatusCode.OK, new SchedulingResult { NextRunDate = nextRunDate.Value.UtcDateTime })); } catch (Exception exp) { var message = $"Error calculating next run date. {exp.Message}"; trace.Trace(TraceEventType.Error, (int)EventId.ScheduleApiError, message, exp); return(Request.CreateResponse(HttpStatusCode.InternalServerError, new SchedulingResult { Message = message })); } }
// GET api/rates/ public HttpResponseMessage Get(string id, string rateSource, string baseCurrencyCode) { var trace = new GenericLoggingService("Details"); if (rateSource.Equals(RateDataSource.Hmrc.ToString(), StringComparison.InvariantCultureIgnoreCase)) { var service = new HmrcExchangeRateService(trace); var rates = service.GetRates(ConfigurationManager.AppSettings["hmrcexchangerate:url"], baseCurrencyCode); return(BuildSuccessResponse(rates)); } if (rateSource.Equals(RateDataSource.Fixer.ToString(), StringComparison.InvariantCultureIgnoreCase)) { var service = new FixerExchangeRateService(trace); var rates = service.GetRates(ConfigurationManager.AppSettings["fixerexchangerate:url"], baseCurrencyCode); return(BuildSuccessResponse(rates)); } return(Request.CreateResponse(HttpStatusCode.BadRequest, new ExchangeRateCollection { Message = "Unknown Rate Source Specified" })); }