더북(TheBook)

코드 3-1 추상화를 위반하여 기능 구현하기

public class UserStats {    → 모델을 정의한다.
    public int Received { get; set; }
    public int Sent { get; set; }
}
public class StatsController: ControllerBase {    → 컨트롤러
    public UserStats Get(int userId) {    → API 엔드포인트
        var result = new UserStats();
        string connectionString = config.GetConnectionString("DB");
        using (var conn = new SqlConnection(connectionString)) {
            conn.Open();
            var cmd = conn.CreateCommand();
            cmd.CommandText =
              "SELECT COUNT(*) FROM Messages WHERE FromId={0}";
            cmd.Parameters.Add(userId);
            result.Sent = (int)cmd.ExecuteScalar();
            cmd.CommandText =
              "SELECT COUNT(*) FROM Messages WHERE ToId={0}";
            result.Received = (int)cmd.ExecuteScalar();
        }
        return result;
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.