public bool ValidateListLengths(ListOperationRequest request) { for (int i = 0; i < request.First.Count; i++) { if (request.First[i].Start.CompareTo(request.First[i].End) > 0 || request.First[i].Start.CompareTo(request.First[i].End) > 0 || request.Second[i].Start.CompareTo(request.Second[i].End) > 0 || request.Second[i].Start.CompareTo(request.Second[i].End) > 0) { return(false); } } return(true); }
public ActionResult PerformListOperation([FromBody] ListOperationRequest request) { try { if (_validationService.ValidateListLengths(request)) { var result = _dtiService.PerformListOperation(request.First, request.Second, request.Operation); return(Ok(new ListOperationResponse(result))); } else { return(BadRequest("Interval start can not be greater than interval end")); } } catch (Exception ex) { if (request.First.Count != request.Second.Count) { return(StatusCode(400, "Interval lists must have same length")); } throw new Exception(ex.ToString()); } }