public CodesResponse GetCode(CodesRequest request) { if (!_helper.IsDayYearValid(request.Day, request.Year)) { throw new DayOrYearNotValidException(); } var language = request.Language ?? Constants.DefaultLanguage; var script = _helper.BuildScriptPath(request.Year, request.Day, language); if (!File.Exists(script)) { throw new DayNotImplementedException(); } return(new CodesResponse { Language = language, Content = File.ReadAllText(script) }); }
public object GetResult(CodesRequest request) { try { return(_service.GetCode(request)); } catch (AdventOfCodeException e) { HttpContext.Response.StatusCode = e.Code; return(new ProblemDetails { Status = e.Code, Title = e.Title, Detail = e.Message }); } catch (Exception e) { // logging HttpContext.Response.StatusCode = 500; return(new ProblemDetails { Status = 500, Title = "Internal server error.", Detail = e.Message }); } }