/// <summary>
 /// Fetches all possible routes for delivering cargo with provided tracking id.
 /// </summary>
 /// <param name="trackingId">Cargo tracking id.</param>
 /// <returns>Possible delivery routes</returns>
 public IList<RouteCandidateDTO> RequestPossibleRoutesForCargo(String trackingId)
 {
     var command = new RequestPossibleRoutesForCargoCommand
                       {
                           TrackingId = trackingId
                       };
     var result = (RequestPossibleRoutesForCargoCommandResult) _pipelineFactory.Process(command);
     return result.RouteCandidates;
 }
        private static IEnumerable<RouteCandidateDTO> RequestPossibleRoutesForCargo(TrackingId trackingId)
        {
            var requestPossibleRoutesForCargoCommand 
                = new RequestPossibleRoutesForCargoCommand
                      {
                          TrackingId = trackingId.IdString
                      };

            var result = (RequestPossibleRoutesForCargoCommandResult)CommandPipeline.Process(requestPossibleRoutesForCargoCommand);
            return result.RouteCandidates;
        }