public async Task <IActionResult> CreateTouristRoute( [FromBody] TouristRouteForCreationDto touristRouteForCreationDto ) { var touristRouteModel = _mapper.Map <TouristRoute>(touristRouteForCreationDto); await _touristRouteRepository.AddTouristRouteAsync(touristRouteModel); await _touristRouteRepository.SaveAsync(); var touristRouteToReturn = _mapper.Map <TouristRouteDto>(touristRouteModel); var links = CreateLinkForTouristRoute( touristRouteModel.Id, null); var result = touristRouteToReturn.ShapeData(null) as IDictionary <string, object>; result.Add("links", links); return(CreatedAtRoute( "GetTouristRoutesById", new { touristRouteId = result["id"] }, result )); }
public IActionResult CreateTouristRoute([FromBody] TouristRouteForCreationDto touristRouteForCreationDto) { // 需要新建一个DTO,专门用来处理资源创建的数据输入 /* * DTO 是一种复杂的对象,ASP.NET 中自带了反序列化的功能, 自动将请求主题的内容解析并加在TouristRouteForCreationDto中 * **/ // 1. 使用Automapper创建新DTO与Model的映射关系,因为我们已经有了TouristRouteProfile, 所以直接使用这个profile,加上新的映射关系 var touristRouteModel = _mapper.Map <TouristRoute>(touristRouteForCreationDto); // 2. 数据添加进DbContext _touristRouteRepository.AddTouristRoute(touristRouteModel); // 3. 数据库的保存 _touristRouteRepository.Save(); // 4. 返回给前端DTO,需要把touristRouteModel 映射成 touristRouteDto var touristRouteToReturn = _mapper.Map <TouristRouteDto>(touristRouteModel); // 5. 返回201 Create return(CreatedAtRoute( "GetTouristRouteById", new { touristRouteId = touristRouteToReturn.Id }, touristRouteToReturn )); }
public IActionResult CreateTouristRoute([FromBody] TouristRouteForCreationDto touristRouteForCreationDto) { var touristRouteModel = _mapper.Map <TouristRoute>(touristRouteForCreationDto); _touristRouteRepository.AddTouristRoute(touristRouteModel); _touristRouteRepository.Save(); var touristRouteToReturn = _mapper.Map <TouristTouteDto>(touristRouteModel); return(CreatedAtRoute("GetTouristRoutesById", new { touristRouteId = touristRouteToReturn.Id }, touristRouteToReturn)); }
public async Task <IActionResult> CreateTouristRoute([FromBody] TouristRouteForCreationDto touristRouteForCreation) { var touristRouteModel = _mapper.Map <TouristRoute>(touristRouteForCreation); _touristRouteRepository.AddTouristRoute(touristRouteModel); await _touristRouteRepository.SaveAsync(); var touristRouteToReturn = _mapper.Map <TouristRouteDto>(touristRouteModel); return(CreatedAtRoute("GetTouristRouteById", new { touristRouteId = touristRouteModel.Id }, touristRouteToReturn)); }