Example #1
0
 /// <summary>
 /// 更新主机实时数据
 /// </summary>
 /// <param name="datas">待更新的数据</param>
 /// <returns></returns>
 public string UpdatedHostTimeDatas(params HostRealTimeDataInputDto[] datas)
 {
     try
     {
         int count = 0;
         HostRealTimeDataRepository.UnitOfWork.BeginTransaction();
         foreach (var d in datas)
         {
             var value = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.HostOne.RegPackage == d.RegPackage);
             if (value != null)
             {
                 Guid Id     = value.Id;
                 var  result = d.MapTo(value);
                 result.Id       = Id;
                 result.IsOnline = true;
                 count          += HostRealTimeDataRepository.Update(result);
                 if (d.EnergyConsumption != 0 && d.EnergyConsumption != -1)
                 {
                     AddEnergyConsumption(value.Host_Id, value.HostOne.Organize_Id, d.EnergyConsumption);
                 }
             }
         }
         HostRealTimeDataRepository.UnitOfWork.Commit();
         return(count > 0 ? $"主机实时数据更新影响数据{count}条" :
                "提交的主机实时数据更新未发生任何改变");
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
 }
Example #2
0
        /// <summary>
        /// 更新主机应答信息
        /// </summary>
        /// <param name="_0X61_In">数据</param>
        /// <returns></returns>
        public OperationResult UpdatedHost_0x61(Host_0x61_In _0X61_In)
        {
            var value = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.HostOne.RegPackage == _0X61_In.RegPackage);

            if (value != null)
            {
                value.Latitude   = _0X61_In.Latitude;
                value.Longitude  = _0X61_In.Longitude;
                value.TimeZone   = _0X61_In.TimeZone;
                value.UpdateTime = DateTime.Now;
                return(HostRealTimeDataRepository.Update(value) > 0 ?
                       new OperationResult(OperationResultType.Success, $"主机:{_0X61_In.RegPackage} 请求应答的参数更新成功!") :
                       new OperationResult(OperationResultType.NoChanged, $"主机:{_0X61_In.RegPackage} 请求应答的参数更新未发生改变!"));
            }
            else
            {
                return(new OperationResult(OperationResultType.QueryNull, $"主机:{_0X61_In.RegPackage} 不存在"));
            }
        }
Example #3
0
        /// <summary>
        /// 设置主机警报信息
        /// </summary>
        /// <param name="repack">主机注册包</param>
        /// <param name="index">警报类型序号</param>
        /// <returns></returns>
        private int SetHostAlert(string repack, int index)
        {
            int row = 0;
            // 获取目标主机信息
            var host = HostRepository.Entities.FirstOrDefault(m => m.RegPackage == repack);

            if (index == 0)
            {   //主机断线时更新主机在线状态
                HostRealTimeData hostReal = HostRealTimeDataRepository.TrackEntities.FirstOrDefault(m => m.Host_Id == host.Id);
                hostReal.IsOnline = false;
                HostRealTimeDataRepository.Update(hostReal);
            }
            // 获取警报类型字典信息(超压 Index = 1)
            var ditem = DataItemDetailRepository.Entities.FirstOrDefault(m => m.QueryCoding == "InformationType" && m.Index == index);

            if (host != null && ditem != null)
            {
                // 获取管理该组织机构的用户信息
                var user_orgs = UserOrganizeMapRepository.Entities.Where(m => m.Organize_Id == host.Organize_Id).ToList();
                if (user_orgs != null)
                {
                    foreach (var user in user_orgs)
                    {
                        row += InformationRepository.Insert(new Information
                        {
                            CreatedTime       = DateTime.Now,
                            DataItemDetail_Id = ditem.Id,
                            IsReaded          = false,
                            ObjectId          = host.Id,
                            Organize_Id       = host.Organize_Id,
                            TypeIndex         = ditem.Index,
                            TypeName          = ditem.FullName,
                            UserLogin_Id      = user.UserLogin_Id
                        });
                    }
                }
            }
            return(row);
        }