using System;
using AIMSDAL;
using AIMSModel;
using System.Collections;
using System.Collections.Generic;
using DrawGraph;
using System.Data.SqlClient;
namespace AIMSBLL
{
    public partial class BOperationRecord
    {
        #region 插入实体操作部份
        /// 
        /// 插入实体
        /// 
        /// 实体类对象
        /// 标识列值或影响的记录行数
        public static int Insert(OperationRecord operationRecord)
        {
            return DOperationRecord.Insert(operationRecord);
        }
        #endregion
        #region 删除实体操作
        /// 
        /// 删除实体
        /// 
        /// 实体类对象
        /// 影响的记录行数
        public static int Delete(OperationRecord operationRecord)
        {
            return DOperationRecord.Delete(operationRecord);
        }
        /// 
        /// 根据对象查询语句删除
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        public static int Delete(string oql, ParameterList parameters)
        {
            return DOperationRecord.Delete(oql, parameters);
        }
        #endregion
        #region 更新实体操作
        /// 
        /// 更新实体
        /// 
        /// 实体类对象
        /// 影响的记录行数
        public static int Update(OperationRecord operationRecord)
        {
            return DOperationRecord.Update(operationRecord);
        }
        /// 
        /// 根据对象查询语句更新实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 影响的记录行数
        public static int Update(string oql, ParameterList parameters)
        {
            int Result = DOperationRecord.Update(oql, parameters);
            if (Result > 0 && parameters != null && oql.Contains("Time") && parameters.Keys.Count > 0)
            {
                foreach (string key in parameters.Keys)
                {
                    if (key.ToUpper() == "@ID")
                    {
                        DOperationRecord.UpdateTimeSpan(int.Parse(parameters[key].ToString()));
                        break; 
                    }
                }
            }
            return Result;
        }
        #endregion
        #region 查询实体集合
        /// 
        /// \查询实体集合
        /// 
        /// 实体类对象集合
        public static List Select()
        {
            return DOperationRecord.Select();
        }
        /// 
        /// 递归查询实体集合
        /// 
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        public static List Select(RecursiveType recursiveType, int recursiveDepth)
        {
            return DOperationRecord.Select(recursiveType, recursiveDepth);
        }
        /// 
        /// 根据对象查询语句查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体类对象集合
        public static List Select(string oql, ParameterList parameters)
        {
            return DOperationRecord.Select(oql, parameters);
        }
        /// 
        /// 根据对象查询语句递归查询实体集合
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体类对象集合
        public static List Select(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return DOperationRecord.Select(oql, parameters, recursiveType, recursiveDepth);
        }
        #endregion
        #region 查询单个实体
        /// 
        /// 更据对象查询语句查询单个实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 实体对象
        public static OperationRecord SelectSingle(string oql, ParameterList parameters)
        {
            return DOperationRecord.SelectSingle(oql, parameters);
        }
        /// 
        /// 更据对象查询语句递归查询单个实体
        /// 
        /// 对象查询语句
        /// 参数列表
        /// 递归类型
        /// 递归深度
        /// 实体对象
        public static OperationRecord SelectSingle(string oql, ParameterList parameters, RecursiveType recursiveType, int recursiveDepth)
        {
            return DOperationRecord.SelectSingle(oql, parameters, recursiveType, recursiveDepth);
        }
        /// 
        /// 按主键字段查询特定实体
        /// 
        /// 主键值
        /// 实体类对象
        public static OperationRecord SelectSingle(int? id)
        {
            return DOperationRecord.SelectSingle(id);
        }
        /// 
        /// 更据主键递归查询单个实体
        /// 
        /// 递归类型
        /// 递归深度
        /// 实体对象
        public static OperationRecord SelectSingle(int? id, RecursiveType recursiveType, int recursiveDepth)
        {
            return DOperationRecord.SelectSingle(id, recursiveType, recursiveDepth);
        }
        #endregion
    }
}