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