using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Project.Web.Model;
using System.Data;
namespace Project.Manager
{
    public static class DatabaseManager
    {
        private static System.Data.SqlClient.SqlConnection getCn()
        {
            string cs = Properties.Settings.Default.gwcs;
            System.Data.SqlClient.SqlConnection cn = new System.Data.SqlClient.SqlConnection();
            cn.ConnectionString = cs;
            return cn;
        }
        /// 
        /// 입력된 id의 그룹정보를 반환
        /// 
        /// 
        /// 
        /// 
        public static GroupUserModel GetGroupUser(string gcode, string uid)
        {
            var retval = new GroupUserModel();
            var cn = getCn();
            var sql = "select * from EETGW_GroupUser where gcode = @gcode and uid =  @uid";
            var cmd = new System.Data.SqlClient.SqlCommand(sql,cn);
            cmd.Parameters.Add("gcode", SqlDbType.VarChar).Value = gcode;
            cmd.Parameters.Add("uid", SqlDbType.VarChar).Value = uid;
            cn.Open();
            var rdr = cmd.ExecuteReader();
            var cnt = 0;
            foreach(var dr in rdr)
            {
                cnt += 1;
            }
            
            retval.Gcode = gcode;
            retval.uid = uid;
            cn.Dispose();
            return retval;
        }
        public static List getGroupList(string GroupColumn, string table, string where = "")
        {
            List retval = new List();
            var cn = getCn();
            cn.Open();
            var sql = "select {0} " +
                " from {1} " +
                " where isnull({0},'') != '' ";
            if (where != "") sql += " and " + where;
            sql += " group by {0} "+
                   " order by {0}";
            sql = string.Format(sql, "[" + GroupColumn +"]",table);
            var cmd = new System.Data.SqlClient.SqlCommand(sql,cn);
            var rdr = cmd.ExecuteReader();
            while(rdr.Read())
            {
                retval.Add(rdr[0].ToString());
            }
            cmd.Dispose();
            cn.Close();
            cn.Dispose();
            return retval;
        }
        public static List getDateList(string table,string where="")
        {
            return getGroupList("pdate", table,where);
        }
    }
}