/// <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);
        }