using Microsoft.Extensions.DependencyInjection;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository.service.@base;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
* 版权所有 (c) 2024 WenJY 保留所有权利。
* CLR版本：4.0.30319.42000
* 机器名称：LAPTOP-E0N2L34V
* 命名空间：SlnMesnac.Repository.service.Impl
* 唯一标识：50d84911-9088-4fd3-b85a-151411028afc
*
* 创建者：WenJY
* 电子邮箱：wenjy@mesnac.com
* 创建时间：2024-04-08 16:47:57
* 版本：V1.0.0
* 描述：
*
*--------------------------------------------------------------------
* 修改人：
* 时间：
* 修改说明：
*
* 版本：V1.0.0
*--------------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace SlnMesnac.Repository.service.Impl
{
    public class DmsRecordAlarmTimeServiceImpl : BaseServiceImpl<DmsRecordAlarmTime>, IDmsRecordAlarmTimeService
    {

        public DmsRecordAlarmTimeServiceImpl(Repository<DmsRecordAlarmTime> rep) : base(rep)
        {
           
        }


        /// <summary>
        /// 获取设备各种规则(报警规则id2001-2010)的第一条记录
        /// </summary>
        /// <returns></returns>
        public List<DmsRecordAlarmTime> GetMachineWarnList()
        {
            List<DmsRecordAlarmTime> list = null;
            try
            {
                string sql = "WITH RankedRecords AS (    SELECT *,   ROW_NUMBER() OVER (PARTITION BY device_id ORDER BY create_time DESC) AS rn    FROM dms_record_alarm_time    WHERE alarm_rule_id BETWEEN 2001 AND 2010) SELECT * FROM RankedRecords WHERE rn = 1;";
                list = this._rep.Context.Ado.SqlQuery<DmsRecordAlarmTime>(sql);
            }catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                list = null;
            }
            return list;
        
        }
    }
}
