using System;
using System.Data;
using System.Data.SQLite;
namespace MediaBrowser.Server.Implementations.Sqlite
{
    /// 
    /// Class SQLiteExtensions
    /// 
    static class SQLiteExtensions
    {
        /// 
        /// Adds the param.
        /// 
        /// The CMD.
        /// The param.
        /// SQLiteParameter.
        /// 
        public static SQLiteParameter AddParam(this SQLiteCommand cmd, string param)
        {
            if (string.IsNullOrEmpty(param))
            {
                throw new ArgumentNullException();
            }
            
            var sqliteParam = new SQLiteParameter(param);
            cmd.Parameters.Add(sqliteParam);
            return sqliteParam;
        }
        /// 
        /// Adds the param.
        /// 
        /// The CMD.
        /// The param.
        /// The data.
        /// SQLiteParameter.
        /// 
        public static SQLiteParameter AddParam(this SQLiteCommand cmd, string param, object data)
        {
            if (string.IsNullOrEmpty(param))
            {
                throw new ArgumentNullException();
            }
            var sqliteParam = AddParam(cmd, param);
            sqliteParam.Value = data;
            return sqliteParam;
        }
        /// 
        /// Determines whether the specified conn is open.
        /// 
        /// The conn.
        /// true if the specified conn is open; otherwise, false.
        public static bool IsOpen(this SQLiteConnection conn)
        {
            return conn.State == ConnectionState.Open;
        }
    }
}