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();
}
}
}