示例#1
0
        [Consumes("application/json")] // application/xml
        public IActionResult Post([FromBody] Five model)
        {
            try
            {
                if (model.Note == null || model.Note.Length < 1)
                {
                    ModelState.AddModelError("Note", "노트를 입력해야 합니다.");
                }

                // 모델 유효성 검사
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState)); // 400 에러 출력
                }

                var m = _repository.Add(model);

                if (DateTime.Now.Second % 2 == 0) //[!] 둘 중 원하는 방식 사용
                {
                    //return CreatedAtAction("GetById", new { id = m.Id }, m);
                    return(CreatedAtRoute("GetById", new { id = m.Id }, m)); // 201
                }
                else
                {
                    var uri = Url.Link("GetById", new { id = m.Id });
                    return(Created(uri, m)); // 201 Created
                }

                //return Ok(m); // 200
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }
示例#2
0
        [HttpPut("{id:int}")]                                   // HttpPatch == 부분 업데이트
        public IActionResult Put(int id, [FromBody] Five model) // 액션 시그니처를 Dto로 변경
        {
            if (model == null)
            {
                return(BadRequest());
            }

            try
            {
                var oldModel = _repository.GetById(id);
                if (oldModel == null)
                {
                    return(NotFound($"{id}번 데이터가 없습니다."));
                }
                model.Id = id; // *
                _repository.Update(model);
                //return Ok(model);
                // 204 No Content
                return(NoContent()); // 이미 던져준 정보에 모든 값 가지고 있기에...
            }
            catch (Exception)
            {
                return(BadRequest("데이터가 업데이트되지 않았습니다."));
            }
        }
示例#3
0
        /// <summary>
        /// 수정
        /// </summary>
        public Five Update(Five model)
        {
            var query =
                "Update Fives               " +
                "Set                        " +
                "   Note = @Note            " +
                "Where Id = @Id             ";

            db.Execute(query, model);
            return(model);
        }
示例#4
0
        /// <summary>
        /// 입력 메서드, Add, AddXXX, CreateXXX
        /// </summary>
        public Five Add(Five model)
        {
            string sql = @"
                Insert Into Fives (Note) Values (@Note);
                Select Cast(SCOPE_IDENTITY() As Int);
            ";
            var    id  = db.Query <int>(sql, model).Single();

            model.Id = id;
            return(model);
        }
示例#5
0
        [Consumes("application/json")]                      // application/xml
        public IActionResult Post([FromBody] Five model)    // Deserialize, 생성 전용 DTO 클래스 사용 가능
        {
            try
            {
                // 예외 처리 방법
                if (model == null)
                {
                    return(BadRequest()); // Status: 400 Bad Request
                }

                // 예외 처리 방법
                if (model.Note == null || model.Note.Length < 1)
                {
                    ModelState.AddModelError("Note", "노트를 입력해야 합니다.");
                }

                // 모델 유효성 검사
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState)); // 400 에러 출력
                }

                // 데이터베이스에 저장
                var m = _repository.Add(model);

                if (DateTime.Now.Second % 2 == 0) //[!] 둘 중 원하는 방식 사용
                {
                    // GetById 액션 이름 사용해서 입력된 데이터 반환
                    //return CreatedAtAction("GetById", new { id = m.Id }, m);
                    return(CreatedAtRoute("GetFiveById", new { id = m.Id }, m)); // Status: 201 Created
                }
                else
                {
                    var uri = Url.Link("GetFiveById", new { id = m.Id });
                    return(Created(uri, m)); // 201 Created
                }

                //return Ok(m); // 200
            }
            catch (Exception)
            {
                return(BadRequest());
            }
        }