public IHttpActionResult PostSearchLine ( [DateTimeRangeValidate] string dateRange = "", string line = "", [OrderByValidate] string orderBy = "ASC", string type = "JOSN" ) { DateTime fromDateTime; DateTime toDateTime; var isValidate = ParserHandler.Instance.ParserDateTimeRange(dateRange, out fromDateTime, out toDateTime); if (!isValidate) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Error: date time range input not expected"))); } var criteria = new Criteria() { FromDateTime = fromDateTime != DateTime.MinValue ? fromDateTime : (DateTime?)null, ToDateTime = toDateTime != DateTime.MaxValue ? toDateTime : (DateTime?)null, LineName = line, OrderBy = orderBy }; string message; if (!criteria.CheckCriteriaValid(out message)) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.BadRequest, message))); } try { var routes = dao.FindRoute(criteria); var formatters = string.Compare(type.ToUpper(), "JSON") == 0 ? (MediaTypeFormatter)Configuration.Formatters.JsonFormatter : string.Compare(type.ToUpper(), "XML") == 0 ? (MediaTypeFormatter)Configuration.Formatters.XmlFormatter : (MediaTypeFormatter)Configuration.Formatters.JsonFormatter; // let caller handle the result if the result was empty return(Content(HttpStatusCode.OK, routes, formatters)); } catch (Exception ex) { return(ResponseMessage(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message))); } }