Exemple #1
0
        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;
 }