Beispiel #1
0
        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
                }));
            }
        }
Beispiel #2
0
        // 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"
            }));
        }