BaseAnalysis.cs 1.82 KB
using HHECS.DAQHandle.DataAccess;
using HHECS.DAQHandle.Models;

namespace HHECS.DAQHandle.EquipmentHandle
{
    internal abstract class BaseAnalysis : IAnalysis
    {
        protected DataContext Context = DbContextFactory.CreateDbContext();

        public abstract void Execute(IEnumerable<EquipmentDataRecord> records);

        /// <summary>
        /// 更新设备属性值
        /// </summary>
        /// <param name="record">取最后一条记录</param>
        protected virtual void UpdateTagValue(EquipmentDataRecord record)
        {
            //var tags = record.Tags.Select(x => x.Tag).ToList();
            //var equipmentProperties = Context.Equipment.Where(x => x.EquipmentSN == record.EquipmentSN).Include(x => x.EquipmentProperties).SelectMany(x => x.EquipmentProperties).Where(x => tags.Contains(x.Tag)).ToList();
            //foreach (var item in equipmentProperties)
            //{
            //    var tagItem = record.Tags.Where(x => x.Tag.Equals(item.Tag)).First();
            //    item.Value = tagItem.Value;
            //    item.UpdateTime = DateTime.Now;
            ////}
            //Context.EquipmentProperties.AddRange(equipmentProperties);
            //Context.SaveChanges();
        }

        /// <summary>
        /// 更新设备状态记录
        /// </summary>
        /// <param name="records"></param>
        protected virtual void UpdateEquipmentStatus<T>(string equipmentSN, IEnumerable<T> statusCodes, IEnumerable<EquipmentDataRecord> records) where T : Enum
        {

        }

        /// <summary>
        /// 更新设备报警记录
        /// </summary>
        /// <param name="records"></param>
        protected virtual void UpdateEquipmentAlarm<T>(string equipmentSN, IEnumerable<T> alarmCodes, IEnumerable<EquipmentDataRecord> records) where T : Enum
        {

        }
    }
}