Example #1
0
 private void Client_DataReceived(object sender, SimpleTCP.Message e)
 {
     FileWorker.LogHelper.WriteLog("刷卡信息:" + e.MessageString);
     string[] messageArr = e.MessageString.Split(new string[] { "TRDS" }, StringSplitOptions.RemoveEmptyEntries);
     for (int j = 0; j < messageArr.Length; j++)
     {
         messageArr[j] = "TRDS" + messageArr[j];
     }
     for (int i = 0; i < messageArr.Length; i++)
     {
         string[] receMessage = messageArr[i].Split(new char[] { '|' });
         if (receMessage[0] == "TRDS")
         {
             if (receMessage.Length >= 10)
             {
                 AccessEntity accessEnt = AccessParseTool.parseAccess(receMessage);
                 string       jsonMess  = accessEnt.toJson();
                 KafkaWorker.sendAccessMessage(jsonMess);
                 anoAlarm = GetConfigMess();
                 if (anoAlarm.Keys.Contains(receMessage[9]))
                 {
                     AlarmEntity alarmEnt  = AlarmParseTool.parseAlarm(receMessage, anoAlarm);
                     string      jsonAlarm = alarmEnt.toJson();
                     KafkaWorker.sendAlarmMessage(jsonAlarm);
                 }
             }
             else
             {
                 FileWorker.LogHelper.WriteLog("刷卡信息不全," + messageArr[i]);
             }
         }
     }
 }
Example #2
0
 protected static void DefaultCMSContentCreated(object sender, ActiveEventArgs e)
 {
     AccessEntity a = new AccessEntity();
     a.MenuValue = "url:~/";
     a.RoleName = "Everyone";
     a.Save();
 }
Example #3
0
        public IHttpActionResult Create(AccessEntity model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                _accessService.Insert(model);

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Example #4
0
        public IHttpActionResult Update(AccessEntity model)
        {
            if (model == null)
            {
                return(BadRequest());
            }

            try
            {
                _accessService.Update(model);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
Example #5
0
    public static AccessEntity parseAccess(string cardNumber, string deviceCode, string enterOrExit, string personId, string swingTime, string deptName, string deviceName, string personName, string openType, string openTypeName)
    {
        AccessEntity accessEntity = null;

        try
        {
            accessEntity = new AccessEntity();
            accessEntity.meta.eventType    = "ACS_RECORD_CARD";
            accessEntity.meta.msgType      = "RECORD_CARD";
            accessEntity.meta.receiver     = "";
            accessEntity.meta.recvSequence = "";
            accessEntity.meta.recvTime     = "";
            accessEntity.meta.sender       = "MJRECORD";
            accessEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            accessEntity.meta.sequence     = "";

            accessEntity.body.cardNumber   = cardNumber;
            accessEntity.body.cardStatus   = "";
            accessEntity.body.cardType     = "";
            accessEntity.body.cardTypeName = "IC卡";
            accessEntity.body.channelCode  = "";
            accessEntity.body.channelName  = "";
            accessEntity.body.deptName     = deptName;
            accessEntity.body.deviceCode   = deviceCode;
            accessEntity.body.deviceName   = deviceName;
            accessEntity.body.enterOrExit  = enterOrExit;
            accessEntity.body.id           = "";
            accessEntity.body.openResult   = "1";
            accessEntity.body.openType     = openType;
            accessEntity.body.openTypeName = openTypeName;
            accessEntity.body.paperNumber  = "";
            accessEntity.body.personCode   = personId;
            accessEntity.body.personId     = personId;
            accessEntity.body.personName   = personName;
            accessEntity.body.swingTime    = swingTime;
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析刷卡失败," + ex.Message);
        }
        return(accessEntity);
    }
Example #6
0
    public static AccessEntity parseAccess(AxHSCEventSDK accessInfo, AxHSCCardHolderSDK cardHolder)
    {
        AccessEntity accessEntity = null;

        try
        {
            accessEntity = new AccessEntity();
            accessEntity.meta.eventType    = "ACS_RECORD_CARD";
            accessEntity.meta.msgType      = "RECORD_CARD";
            accessEntity.meta.receiver     = "";
            accessEntity.meta.recvSequence = "";
            accessEntity.meta.recvTime     = "";
            accessEntity.meta.sender       = "MJRECORD";
            accessEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            accessEntity.meta.sequence     = "";

            accessEntity.body.cardNumber  = accessInfo.sUserCardID;
            accessEntity.body.cardStatus  = "";
            accessEntity.body.cardType    = "";
            accessEntity.body.channelCode = "";
            accessEntity.body.channelName = accessInfo.sPanelName;
            accessEntity.body.deptName    = cardHolder.sCardUserDepartment;//accessInfo.sUserDepartment;
            accessEntity.body.deviceCode  = accessInfo.sEventLocation;
            accessEntity.body.deviceName  = accessInfo.sEventDes;
            accessEntity.body.enterOrExit = "3";
            accessEntity.body.id          = "";
            accessEntity.body.openResult  = "1";
            accessEntity.body.openType    = "";
            accessEntity.body.paperNumber = "";
            accessEntity.body.personCode  = "";
            accessEntity.body.personId    = accessInfo.sUserID;
            accessEntity.body.personName  = accessInfo.sUserName;
            accessEntity.body.swingTime   = DateTime.Parse(accessInfo.sEventTime).ToString("yyyy-MM-dd HH:mm:ss");
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析刷卡失败," + ex.Message);
        }
        return(accessEntity);
    }
Example #7
0
    public static AccessEntity parseAccess(string[] message)
    {
        AccessEntity accessEntity = null;

        try
        {
            accessEntity = new AccessEntity();
            accessEntity.meta.eventType    = "ACS_RECORD_CARD";
            accessEntity.meta.msgType      = "RECORD_CARD";
            accessEntity.meta.receiver     = "";
            accessEntity.meta.recvSequence = "";
            accessEntity.meta.recvTime     = "";
            accessEntity.meta.sender       = "MJRECORD";
            accessEntity.meta.sendTime     = DateTime.Now.ToString("yyyyMMddHHmmss");
            accessEntity.meta.sequence     = "";

            accessEntity.body.deviceCode = message[8]; //刷卡设备编号
            //通过设备编号查询设备名称
            accessEntity.body.deviceName = SeleSql(message[8]);

            accessEntity.body.swingTime  = message[6]; //刷卡时间  第五个
            accessEntity.body.personCode = message[3]; //人员编号 第三个
            accessEntity.body.personName = SelePersonTable(message[3], 0);
            accessEntity.body.deptName   = SelePersonTable(message[3], 3);
            //accessEntity.body.personName 人员名称
            //accessEntity.body.deptName 部门名称
            accessEntity.body.openResult  = message[2]; //刷卡的一个结果
            accessEntity.body.channelCode = message[1]; //通道编码--内部编码
            accessEntity.body.cardNumber  = "";         //卡编号,暂时
            //accessEntity.body.cardNumber = "";
            accessEntity.body.cardStatus  = "";
            accessEntity.body.cardType    = "";
            accessEntity.body.channelName = "";
            accessEntity.body.enterOrExit = "";
            accessEntity.body.id          = "";
            accessEntity.body.openType    = "";
            accessEntity.body.paperNumber = "";
            accessEntity.body.personId    = "";
            //accessEntity.body.cardNumber = accessInfo.sUserCardID;
            //accessEntity.body.cardStatus = "";
            //accessEntity.body.cardType = "";
            //accessEntity.body.channelCode = "";
            //accessEntity.body.channelName = accessInfo.sPanelName;
            //accessEntity.body.deptName = accessInfo.sUserDepartment;
            //accessEntity.body.deviceCode = accessInfo.sEventDevice;
            //accessEntity.body.deviceName = accessInfo.sEventDevice;
            //accessEntity.body.enterOrExit = "3";
            //accessEntity.body.id = "";
            //accessEntity.body.openResult = "1";
            //accessEntity.body.openType = "";
            //accessEntity.body.paperNumber = "";
            //accessEntity.body.personCode = "";
            //accessEntity.body.personId = accessInfo.sUserID;
            //accessEntity.body.personName = accessInfo.sUserName;
            //accessEntity.body.swingTime = DateTime.Parse(accessInfo.sEventTime).ToString("yyyy-MM-dd HH:mm:ss");
        }
        catch (Exception ex)
        {
            FileWorker.LogHelper.WriteLog("解析刷卡失败," + ex.Message);
        }
        return(accessEntity);
    }
Example #8
0
        public void UpdateTestClient(Obj obixObj, Watch watch)
        {
            //FileWorker.LogHelper.WriteLog("收到数据:"+watch.type.ToString()+";;长度是"+obixObj.list().Length.ToString());
            if (watch.type == WatchType.Alarm)
            {
                if (obixObj.list().Length > 0)
                {
                    if (obixObj.list()[0].list().Length > 0)
                    {
                        //FileWorker.LogHelper.WriteLog("obixObj.list()[0].list().Length长度是" + obixObj.list()[0].list().Length.ToString());
                        if (obixObj.list()[0].list()[0].list().Length > 0)
                        {
                            //FileWorker.LogHelper.WriteLog("obixObj.list()[0].list()[0].list().Length长度是" + obixObj.list()[0].list()[0].list().Length.ToString());
                            foreach (Obj obj in obixObj.list()[0].list()[0].list())
                            {
                                try
                                {
                                    string time             = ((Abstime)obj.get("timestamp")).Val.ToString();
                                    string type             = ((Int)obj.get("eventType")).Val.ToString();
                                    string desc             = obj.Display.ToString();
                                    object id               = obj.Href;
                                    object ack              = obj.get("ack");
                                    object clear            = obj.get("clear");
                                    object pointDescription = null;
                                    object priority         = ((Int)obj.get("priority")).Val;
                                    string source           = string.Empty;
                                    string alarmType        = null;
                                    string fname            = string.Empty;
                                    string lname            = string.Empty;
                                    object cardnumber       = null;
                                    string user             = string.Empty;
                                    string card             = string.Empty;
                                    string deviceName       = string.Empty;
                                    string deptName         = string.Empty;

                                    if (obj.get("companyname") != null)
                                    {
                                        deptName = obj.get("companyname").ToString();
                                    }
                                    if (obj.get("devicedescription") != null)
                                    {
                                        deviceName = obj.get("devicedescription").ToString();
                                    }
                                    if (obj.get("source") != null)
                                    {
                                        source = obj.get("source").Href.ToString();
                                    }
                                    if (obj.get("fname") != null)
                                    {
                                        fname = obj.get("fname").ToString();
                                    }
                                    if (obj.get("lname") != null)
                                    {
                                        lname = obj.get("lname").ToString();
                                    }
                                    if (obj.get("cardnumber") != null)
                                    {
                                        cardnumber = obj.get("cardnumber").Href;
                                    }
                                    if (obj.get("accessUser") != null)
                                    {
                                        user = obj.get("accessUser").Href.ToString();
                                    }
                                    if (obj.get("accessCredential") != null)
                                    {
                                        card = obj.get("accessCredential").Href.ToString();
                                    }
                                    if (obj.get("AlarmStatus") != null)
                                    {
                                        alarmType = ((Str)obj.get("AlarmStatus")).Val;
                                    }
                                    if (obj.get("pointdescription") != null)
                                    {
                                        pointDescription = ((Str)obj.get("pointdescription")).Val;
                                    }
                                    FileWorker.LogHelper.WriteLog(string.Format("eventType:{0};desc:{1};source:{2};user:{3};credential:{4}",
                                                                                type, desc, source, user, card));

                                    if (source != string.Empty)
                                    {
                                        source = DataFormatTool.pickTailFromString(source);
                                    }
                                    time = DataFormatTool.formatDatetime(time);
                                    //event type=500是刷卡,只有刷卡时才产生卡号、人员编号
                                    if (type == "500")
                                    {
                                        if (card != string.Empty)
                                        {
                                            card = DataFormatTool.pickTailFromString(card);
                                        }
                                        if (user != string.Empty)
                                        {
                                            user = DataFormatTool.pickTailFromString(user);
                                        }
                                        AccessEntity access = AccessParseTool.parseAccess(card, source, "1", user, time, deptName, deviceName, lname + fname, "", "刷卡+密码开门");
                                        KafkaWorker.sendAccessMessage(access.toJson());
                                        //continue;
                                    }
                                    if (type == "608")//按钮开门,无卡号、人员编号
                                    {
                                        AccessEntity access = AccessParseTool.parseAccess("", source, "2", "", time, "", deviceName, "", "", "按钮开门");
                                        KafkaWorker.sendAccessMessage(access.toJson());
                                        continue;
                                    }
                                    if (type == "903" || type == "10903")
                                    {
                                        DeviceStateEntity devState = DeviceStateParseTool.parseDeviceState(source, type);
                                        KafkaWorker.sendDeviceMessage(devState.toJson());
                                    }
                                    //423,400,10900,900,500,903
                                    if (alarmRuleDic.ContainsKey(type))//报警
                                    {
                                        AlarmEntity alarm = AlarmParseTool.parseAlarm(source, alarmRuleDic[type].Item1, alarmRuleDic[type].Item2, time, airportIata, airportName);
                                        KafkaWorker.sendAlarmMessage(alarm.toJson());
                                        continue;
                                    }
                                }
                                catch (Exception ex)
                                {
                                    FileWorker.LogHelper.WriteLog("消息接收及解析、发送过程中出现异常:" + ex.Message);
                                    continue;
                                }
                            }
                        }
                    }
                }
            }
            #region 暂时不用
            else //watch.type == WatchType.Object
            {
                if (obixObj.list().Length > 0)
                {
                    DateTime updateTime = DateTime.Now;
                    foreach (Obj obj in obixObj.list()[0].list())
                    {
                        //bool rowFound = false;
                        //for (int i = 0; i < grd.Rows.Count; i++)
                        //{
                        //    if (grd.Rows[i].Cells[0].Value.Equals(obj.Href))
                        //    {
                        //        if (obj.isErr())
                        //        {
                        //            //Object deleted in PW
                        //            grd.Rows.RemoveAt(i);
                        //        }
                        //        else
                        //        {
                        //            grd.Rows[i].Cells[1].Value = DateTime.Now;
                        //            updateTime = (DateTime)grd.Rows[i].Cells[1].Value;
                        //        }
                        //        rowFound = true;
                        //        break;
                        //    }
                        //}
                        //if (!rowFound)
                        //{
                        //    updateTime = DateTime.Now;
                        //    //grd.Rows.Add(obj.Href, updateTime);
                        //}

                        ////when object's parent url is subscribed.
                        //System.Uri uri = obj.Href.toUri();
                        //if (uri.Segments.Length >= 5)
                        //{
                        //    string strUri = uri.ToString();
                        //    if (strUri.EndsWith("/"))
                        //        strUri = strUri.Substring(0, strUri.Length - 1);
                        //    int nIndex = strUri.LastIndexOf("/");
                        //    strUri = strUri.Substring(0, nIndex);
                        //    for (int i = 0; i < grd.Rows.Count; i++)
                        //    {
                        //        string strObjHref = Convert.ToString(grd.Rows[i].Cells[0].Value);
                        //        if (strObjHref.EndsWith("/"))
                        //            strObjHref = strObjHref.Substring(0, strObjHref.Length - 1);
                        //        if (strObjHref.Equals(strUri))
                        //        {
                        //            grd.Rows[i].Cells[1].Value = updateTime;
                        //            break;
                        //        }
                        //    }
                        //}
                    }
                }
            }
            #endregion
        }
Example #9
0
        protected void CreateNewRoleMenuMapping(object sender, ActiveEventArgs e)
        {
            string roleName = e.Params["RoleName"].Get<string>();
            string menuValue = e.Params["MenuValue"].Get<string>();
            string pars = e.Params["Params"].Get<string>();

            List<Criteria> crit = new List<Criteria>
            {
                Criteria.Eq("MenuValue", menuValue),
                Criteria.Eq("RoleName", roleName)
            };
            if( pars != null)
                crit.Add(Criteria.Eq("Params", pars));

            if (string.IsNullOrEmpty(menuValue))
            {
                Node node = new Node();
                node["Message"].Value = Language.Instance["RoleYouCanNotInfo", null, @"You cannot change the accessibility of that 
item since it has no 'Value' property"];
                node["Duration"].Value = 2000;
                ActiveEvents.Instance.RaiseActiveEvent(
                    this,
                    "ShowInformationMessage",
                    node);
            }
            else if (ActiveType<AccessEntity>.CountWhere(crit.ToArray()) > 0)
            {
                Node node = new Node();
                node["Message"].Value = String.Format(Language.Instance["RoleAlreadyAssociatedInfo", null, @"Role; '{0}' already associated with item..."], roleName);
                node["Duration"].Value = 2000;
                ActiveEvents.Instance.RaiseActiveEvent(
                    this,
                    "ShowInformationMessage",
                    node);
            }
            else
            {
                AccessEntity a = new AccessEntity
                {
                    MenuValue = menuValue, 
                    RoleName = roleName, 
                    Params = pars
                };
                a.Save();

                // Running upwards in the hierarchy and creating new access objects for all
                // parents recursively, since otherwise there's no point at all in adding
                // the access to the menu item...
                Node parent = e.Params["Parents", false];
                while (parent != null)
                {
                    string parentRoleName = parent["RoleName"].Get<string>();
                    string parentMenuValue = parent["MenuValue"].Get<string>();
                    if (parentMenuValue == null)
                        break;
                    if (ActiveType<AccessEntity>.CountWhere(
                            Criteria.Eq("RoleName", parentRoleName),
                            Criteria.Eq("MenuValue", parentMenuValue)) == 0)
                    {
                        AccessEntity aParent = new AccessEntity
                        {
                            RoleName = parentRoleName,
                            MenuValue = parentMenuValue
                        };
                        aParent.Save();
                    }
                    parent = parent["Parents", false];
                }

                // Sending back updates...
                int idxNo = 0;
                foreach (AccessEntity idx in ActiveType<AccessEntity>.Select())
                {
                    e.Params["Access"]["Access" + idxNo]["MenuValue"].Value = idx.MenuValue;
                    e.Params["Access"]["Access" + idxNo]["RoleName"].Value = idx.RoleName;
                    e.Params["Access"]["Access" + idxNo]["Params"].Value = idx.Params;
                    idxNo += 1;
                }
            }
        }