public static Model.RouteCreationInfo Convert(Client.RouteCreationInfo clientCreationInfo)
        {
            if (clientCreationInfo == null)
            {
                throw new ArgumentNullException(nameof(clientCreationInfo));
            }

            //todo сделать по умному, с игнорированием некорректных идов
            var guids = clientCreationInfo.Checkpoints.Select(Guid.Parse).ToList();

            var modelCreationInfo = new Model.RouteCreationInfo(clientCreationInfo.FromPlace, clientCreationInfo.ToPlace,
                                                                guids);

            return(modelCreationInfo);
        }
        public async Task <IActionResult> CreateRouteAsync([FromBody] Client.RouteCreationInfo creationInfo,
                                                           CancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            if (creationInfo == null)
            {
                var error = ErrorResponsesService.BodyIsMissing(nameof(creationInfo));
                return(BadRequest(error));
            }

            var modelCreationInfo = Converter.RouteCreationInfoConverter.Convert(creationInfo);
            var modelRoute        = await routeRepository.CreateAsync(modelCreationInfo, cancellationToken).ConfigureAwait(false);

            var modelCheckpoints = await checkpointRepository.GetAllAsync(cancellationToken).ConfigureAwait(false);

            var clientRoute = Converter.RouteConverter.Convert(modelRoute, modelCheckpoints);

            return(CreatedAtRoute("GetRouteRoute", new { id = clientRoute.Id }, clientRoute));
        }