Exemple #1
0
        public IActionResult Index()
        {
            zCustomUser uu = new zCustomUser() { Gender = 0, Name = "fd" };
            _redisHashService.HashSet("mm", "pp0", uu);
            _redisHashService.HashSet("mm", "pp1", new zCustomUser() { Gender = 1, Name = "官方公告" });
          
            _redisStringService.StringSet("aa", uu);
            string val = _redisStringService.StringGet("aa");
            zCustomUser getuu = _redisHashService.HashGet<zCustomUser>("mm", "pp");

            Log4helper<HomeController>.Info($"进入了{nameof(HomeController)} 的 {nameof(Index)}");
            Log4helper<HomeController>.Errror(new System.Exception("测试Error的写入信息"));
            Log4helper<HomeController>.Debug($"测试Debug写入信息");

            // services.Configure<InterExample>(configuration.GetSection("InterExample"));  //配置为 InterExample 注入对象成功,可以获取对象信息
            // InterExample interExample = (InterExample)HttpContext.RequestServices.GetService(typeof(InterExample));
            _logger.LogError("控制台显示");
            return View();
        }
 /// <summary>
 /// 1.请求主机房间列表
 /// user:DAJCHSF_Server type:other msg:DAJCHSF_2047DABEF936;8;835;admin$/r$
 /// 2.主机返回房间列表
 /// user:DAJCHSF_2047DABEF936 type:other msg:DAJCHSF_2047DABEF936;835;admin;Zip;H4sIAAAAAAAAAIuuViotTi3KTFGyUlLSUSouSSxJBTJLikpTgdzkjMy8xLzEXJDQs46Jz2e1PF23DSiemZyfB9GQmZuYngrTXZBfDGYaQNgFiUWJSlbVSimpZSX5JYk5QBlDS5AliWmpxaklJZl56TCrasEaSioLUqHa40EGGego+aWWB6Um5xcBeSCFtTrY3Yvm1qfrFj3ta8Xh0KL8/FxDJNcaGhgbmpoYG1iam5iiOJzajupd/nTdEtIcBcRmBjR1VNe8p61rSHaXkampBW0Da13nyxmbSHOUsYmBkTl5jooFAHQFerEIAwAA$/r$
 /// </summary>
 /// <param name="msg">user:DAJCHSF_Server type:other msg:DAJCHSF_2047DABEF936;8;835;admin$/r$</param>
 public static string Host835(string msg)
 {
     try
     {
         if (msg.Split(';').Length >= 3)
         {
             string appUser = msg.Split(';')[0];
             if (appUser.Contains("_"))
             {
                 string           account  = appUser.Split('_')[0];//DAJCHSF,一个家庭可能有多个用户,mac不同,只取账户
                 List <host_room> roomList = null;
                 //获取当前房间的设备列表,先找缓存
                 string msgResult = service.HashGet("Room", account);
                 if (string.IsNullOrEmpty(msgResult))
                 {
                     using (HsfDBContext hsfDBContext = new HsfDBContext())
                     {
                         roomList  = hsfDBContext.host_room.Where(t => t.Account == account && t.DeleteMark == 0).ToList();
                         msgResult = $";835;admin;Zip;{EncryptionHelp.Encryption(JsonConvert.SerializeObject(roomList), true)}$/r$"; //不能缓存用户信息
                                                                                                                                     //缓存当前账户房间列表返回字符串
                         service.HashSet("Room", account, msgResult);
                     }
                 }
                 msgResult = appUser + msgResult;//带上用户信息
                 log.Debug($"835 OK,返回房间列表成功!返回信息:{msgResult}");
                 return(msgResult);
             }
             else
             {
                 log.Debug($"835 Fail,命令不符合规范!");
                 return(null);
             }
         }
         else
         {
             log.Debug($"835 Fail,命令不符合规范!");
             return(null);
         }
     }
     catch (Exception)
     {
         throw;
     }
 }
Exemple #3
0
        //报警事件回掉
        private static bool AlarmCallBackEx(int lCommand, IntPtr lLoginID, IntPtr pBuf, uint dwBufLen, IntPtr pchDVRIP, int nDVRPort, bool bAlarmAckFlag, int nEventID, IntPtr dwUser)
        {
            EM_ALARM_TYPE type   = (EM_ALARM_TYPE)lCommand;
            string        hostIp = Marshal.PtrToStringAnsi(pchDVRIP);

            var alarmdata = httpHelper.GetAlarmsByHostIP(hostIp);

            switch (type)
            {
            case EM_ALARM_TYPE.ALARM_ARMMODE_CHANGE_EVENT:
            {
                NET_ALARM_ARMMODE_CHANGE_INFO info = (NET_ALARM_ARMMODE_CHANGE_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_ARMMODE_CHANGE_INFO));
                Console.WriteLine("布撤防状态变化事件信息:变化后状态:{0},场景模式:{1},触发方式:{2},ID:{3}",
                                  GetStatus(info.bArm), GetScene(info.emSceneMode), GetTrigger(info.emTriggerMode), info.dwID);
            }
            break;

            case EM_ALARM_TYPE.ALARM_INPUT_SOURCE_SIGNAL:    //报警状态变化写入
            {
                NET_ALARM_INPUT_SOURCE_SIGNAL_INFO info = (NET_ALARM_INPUT_SOURCE_SIGNAL_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_INPUT_SOURCE_SIGNAL_INFO));
                var alarm = alarmdata.Where(u => u.Channel_ID - 1 == info.nChannelID).FirstOrDefault();

                //AppAlarmStatus appAlarmStatus = alarmstatusdto.Where(u => u.Channel_ID-1 == info.nChannelID).FirstOrDefault();
                AppAlarmStatus appAlarmStatus = service.HashGet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data");
                if (info.nAction == 0)          // 0:开始 1:停止(设备内0表示报警)
                {
                    if (appAlarmStatus != null)
                    {
                        appAlarmStatus.IsOpenDoor           = alarm.IsOpenOrClosed;
                        appAlarmStatus.IsAlarm              = 1;
                        appAlarmStatus.LastModificationTime = DateTime.Now.ToString();
                        appAlarmStatus.TreatmentState       = 1;
                        appAlarmStatus.AlarmHostIP          = hostIp;
                        service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus);
                        if (appAlarmStatus.IsDefence == 1)        //报警
                        {
                            AppAlarmManageStates appAlarmManage = new AppAlarmManageStates();
                            appAlarmManage.AlarmHost_IP         = hostIp;
                            appAlarmManage.Alarm_ID             = alarm.Alarm_ID;
                            appAlarmManage.Channel_ID           = info.nChannelID + 1;
                            appAlarmManage.AlarmTime            = DateTime.Now.ToString();
                            appAlarmManage.LastModificationTime = DateTime.Now;
                            appAlarmManage.CreationTime         = DateTime.Now;
                            service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus);
                            Console.WriteLine("设备处于布防状态");
                        }
                    }
                    else
                    {
                        UpdateAlarmManageStateDto AppAlarmManageStates2 = new  UpdateAlarmManageStateDto();
                        AppAlarmManageStates2.AlarmHost_IP = hostIp;
                        AppAlarmManageStates2.AlarmTime    = info.stuTime.ToString();

                        AppAlarmManageStates2.Channel_ID = info.nChannelID;
                        httpHelper.AddAlarmManageState(AppAlarmManageStates2);

                        Console.WriteLine("此模块未添加进资料库");
                    }
                }
                else        //消除报警状态
                {
                    if (appAlarmStatus != null)
                    {
                        appAlarmStatus.IsAlarm = 0;
                        appAlarmStatus.LastModificationTime = DateTime.Now.ToString();

                        service.HashSet <AppAlarmStatus>("AlarmStatus_" + alarm.Alarm_ID, "data", appAlarmStatus);
                    }
                    else
                    {
                        //AppAlarmStatus appAlarmStatus4 = new AppAlarmStatus();
                        //appAlarmStatus4.IsAlarm = 0;
                        //appAlarmStatus4.Channel_ID = info.nChannelID;
                        //appAlarmStatus4.Alarm_ID = info.nChannelID.ToString();
                        //appAlarmStatus4.AlarmHostIP = hostIp;
                        //appAlarmStatus4.LastModificationTime = info.stuTime.ToString();
                        //StatusDB.Add(appAlarmStatus4);
                    }
                }

                Console.WriteLine($"报警输入源事件信息:IP:{hostIp},通道:{info.nChannelID+1},动作:{ GetAction(info.nAction)},报警时间:{DateTime.Now.ToString()}");
                loghelper.WriteLog($"报警输入:IP:{hostIp},通道:{info.nChannelID+1},动作:{ GetAction(info.nAction)}");
            }
            break;

            case EM_ALARM_TYPE.ALARM_DEFENCE_ARMMODE_CHANGE:    //撤布防状态变化写入
            {
                NET_ALARM_DEFENCE_ARMMODECHANGE_INFO info = (NET_ALARM_DEFENCE_ARMMODECHANGE_INFO)Marshal.PtrToStructure(pBuf, typeof(NET_ALARM_DEFENCE_ARMMODECHANGE_INFO));
                var alarmstatuslist = httpHelper.GetAlarmsByHostIP(hostIp);
                var appAlarm        = alarmstatuslist.Where(u => u.Channel_ID == info.nDefenceID).FirstOrDefault();

                if (!service.HashExists(appAlarm.Alarm_ID, "data"))
                {
                    var appAlarmStatus = service.HashGet <AppAlarmStatus>(appAlarm.Alarm_ID, "data");
                    if (appAlarmStatus != null)
                    {
                        if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING)
                        {
                            appAlarmStatus.IsDefence = 1;        //布防
                        }
                        else if (info.emDefenceStatus == EM_DEFENCEMODE.DISARMING)
                        {
                            appAlarmStatus.IsDefence = 2;        //撤防
                        }
                        else
                        {
                            appAlarmStatus.IsDefence = -1;        //未知
                        }
                        appAlarmStatus.LastModificationTime = DateTime.Now.ToString();

                        service.HashSet("AlarmStatus_" + appAlarmStatus.Alarm_ID, "data", appAlarmStatus);
                    }
                }
                //更新AppAlarmManageStates数据
                AppAlarmManageStates appAlarmManage = httpHelper.GetAlarmManageStates(appAlarm.Alarm_ID).FirstOrDefault();
                if (appAlarmManage != null && appAlarmManage.AlarmTime != null)
                {
                    if (string.IsNullOrEmpty(appAlarmManage.WithdrawTime))
                    {             //判断异常
                        if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING)
                        {
                            appAlarmManage.DefenceTime    = DateTime.Now.ToString();
                            appAlarmManage.WithdrawRemark = "用户布防";
                        }
                        else
                        {
                            appAlarmManage.WithdrawTime   = DateTime.Now.ToString();
                            appAlarmManage.WithdrawRemark = "报警撤防";
                            appAlarmManage.WithdrawMan    = "系统默认";
                        }
                    }
                    else
                    {
                        if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING)
                        {
                            appAlarmManage.DefenceTime = DateTime.Now.ToString();
                            //  appAlarmManage.WithdrawRemark = "用户布防";
                        }
                        else
                        {
                            appAlarmManage.WithdrawTime   = DateTime.Now.ToString();
                            appAlarmManage.WithdrawRemark = "重复撤防";
                            appAlarmManage.WithdrawMan    = "系统默认";
                        }
                    }
                    appAlarmManage.LastModificationTime = DateTime.Now;
                    httpHelper.UpdateAlarmManageState(appAlarmManage);
                }
                else
                {
                    UpdateAlarmManageStateDto appAlarmManage3 = new UpdateAlarmManageStateDto();
                    appAlarmManage3.AlarmHost_IP = hostIp;
                    appAlarmManage3.Channel_ID   = info.nDefenceID + 1;
                    if (alarmdata.Where(u => u.Channel_ID - 1 == info.nDefenceID).FirstOrDefault() != null)
                    {
                        appAlarmManage3.Alarm_ID = alarmdata.Where(u => u.Channel_ID - 1 == info.nDefenceID).FirstOrDefault().Alarm_ID;
                    }

                    if (info.emDefenceStatus == EM_DEFENCEMODE.ARMING)
                    {
                        appAlarmManage3.DefenceTime = DateTime.Now.ToString();
                    }
                    else
                    {
                        appAlarmManage3.WithdrawTime   = DateTime.Now.ToString();
                        appAlarmManage3.WithdrawRemark = "用户撤防";
                        appAlarmManage3.WithdrawMan    = "系统默认";
                    }
                    httpHelper.AddAlarmManageState(appAlarmManage3);
                }


                Console.WriteLine($"防区布撤防状态改变事件信息:IP:{hostIp},状态:{GetDefence(info.emDefenceStatus)}, 防区号:{info.nDefenceID+1},时间:{DateTime.Now.ToString()}");
                loghelper.WriteLog($"防区布撤防信息:IP:{hostIp}, 防区号:{info.nDefenceID+1},状态:{GetDefence(info.emDefenceStatus)}");
            }
            break;

            default:
                Console.WriteLine(lCommand.ToString("X"));
                break;
            }
            return(true);
        }