コード例 #1
0
        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
                       ));
        }
コード例 #2
0
        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
                       ));
        }
コード例 #3
0
        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));
        }
コード例 #4
0
        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));
        }