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);
        }
Пример #2
0
 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());
     }
 }