public static ResultBase Upgrade(UpgradeData Data) { // 데이터베이스 커넥션을 가져옴 using (var db = DB.GetDB()) { // 트랜즈액션을 시작합니다. var transaction = db.BeginTransaction(); // 반환할 결과 객체를 생성해 놓습니다. ResultBase result = new ResultBase(); try { // 스토어드 프로시져를 실행시키기 위해 명령을 준비합니다. var command = new SqlCommand(); command.Connection = db; command.Transaction = transaction; command.CommandText = @"USP_User_Upgrade"; command.CommandType = CommandType.StoredProcedure; // 스토어드 프로시져에 전달할 파라미터를 정합니다. command.Parameters.Add("@UserID", Data.UserID); command.Parameters.Add("@UpgradeType", Data.UpgradeType); command.Parameters.Add("@ResultCode", SqlDbType.Int); command.Parameters["@ResultCode"].Direction = ParameterDirection.Output; command.Parameters.Add("@Message", SqlDbType.VarChar, 300); command.Parameters["@Message"].Direction = ParameterDirection.Output; // 스토어드 프로시져를 실행시킵니다. command.ExecuteNonQuery(); // 스토어드 프로시져가 잘 실행됬는 지 확인할 수 있는 ResultCode와 Message를 반환 데이터에 명시합니다. result.ResultCode = (int)command.Parameters["@ResultCode"].Value; result.Message = command.Parameters["@Message"].Value.ToString(); // 트랜즈액션을 커밋합니다. transaction.Commit(); return result; } catch (System.Exception ex) { // 에러가 발생하면 트랜즈액션을 롤백합니다. transaction.Rollback(); throw ex; } } }
/* URL : /Upgrade Method : POST 내용 : 유저의 프로필을 가져오는 API */ public ResultBase Post(UpgradeData Data) { ResultBase result = UserModel.Upgrade(Data); return result; }