CgwMonitorManage.eLTE.eLTEVideoMonitor.CallUserStatusDelegateFun C# (CSharp) Method

CallUserStatusDelegateFun() private method

通知用户和群组资源的状态变更信息,需要YC实现,更新设备列表状态
private CallUserStatusDelegateFun ( strResourceStatusIndicator &structResStaIndi ) : void
structResStaIndi strResourceStatusIndicator
return void
        private void CallUserStatusDelegateFun(ref strResourceStatusIndicator structResStaIndi)
        {
            NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
            logEx.Trace("Enter: CallUserStatusDelegateFun.status_type = {0},status_value = {1},ResId = {2}", Enum.GetName(typeof(resource_status_t), structResStaIndi.status_type),
                         Enum.GetName(typeof(res_status_value_t), structResStaIndi.status_value), structResStaIndi.ResId);
            if (structResStaIndi.status_type == resource_status_t.RESREGSTATUS_PROXY && structResStaIndi.status_value == res_status_value_t.STATUS_REGOK)
            {
                try
                {
                    if (this.cameraStatusOperateLock.TryEnterWriteLock(CgwConst.ENTER_LOCK_WAIT_TIME))
                    {
                        string str = structResStaIndi.ResId.ToString();
                        if (onlineUser.Exists((x) =>
                        {
                            if (x == str)
                            {
                                return true;
                            }
                            else
                            {
                                return false;
                            }
                        }))
                        {
                            return;
                        }

                        onlineUser.Add(str);
                    }
                }
                finally
                {
                    this.cameraStatusOperateLock.ExitWriteLock();
                }

            }
            else if (structResStaIndi.status_type == resource_status_t.RESREGSTATUS_PROXY && structResStaIndi.status_value == res_status_value_t.STATUS_REGFAIL)
            {
                try
                {
                    if (this.cameraStatusOperateLock.TryEnterWriteLock(CgwConst.ENTER_LOCK_WAIT_TIME))
                    {
                        string str = structResStaIndi.ResId.ToString();
                        if (onlineUser.Exists((x) =>
                        {
                            if (x == str)
                            {
                                return true;
                            }
                            else
                            {
                                return false;
                            }
                        }))
                        {
                            onlineUser.Remove(str);
                        }
                    }
                }
                finally
                {
                    this.cameraStatusOperateLock.ExitWriteLock();
                }
            }

        }