/// <summary> /// Remove every single status reported by the given tracker across all rooms /// </summary> /// <param name="trackerId"></param> /// <returns>The amount of statuses removed per content</returns> public async Task <Dictionary <long, int> > RemoveStatusesByTrackerAsync(int trackerId) { UserStatusCollection? statusCollection; Dictionary <long, int> removed = new Dictionary <long, int>(); foreach (var key in statuses.Keys.ToList()) { if (statuses.TryGetValue(key, out statusCollection)) { await statusCollection !.CollectionLock.WaitAsync(); try { var thisRemoved = statusCollection !.Statuses.RemoveAll(x => x.trackerId == trackerId); if (thisRemoved > 0) { removed.Add(key, thisRemoved); } } finally { statusCollection !.CollectionLock.Release(); } } } return(removed); }
public static List <CollectionLock> GetCollectionLock(string criteria, int branchID) { var dbUtil = new DatabaseManager(); var collectionLocks = new List <CollectionLock>(); using (var conn = new SqlConnection(dbUtil.getSQLConnectionString("MainDB"))) { conn.Open(); using (SqlCommand cmd = conn.CreateCommand()) { cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "spColGetCollectionLock"; cmd.CommandTimeout = 180; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@strCriteria", criteria); cmd.Parameters.AddWithValue("@intBranchID", branchID); using (SqlDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { var collectionLock = new CollectionLock { CollectionLockID = ReferenceEquals(reader["intCollectionLockID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intCollectionLockID"]), BranchID = ReferenceEquals(reader["intBranchID"], DBNull.Value) ? 0 : Convert.ToInt32(reader["intBranchID"]), DateTransaction = ReferenceEquals(reader["datTransaction"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datTransaction"]), DateFrom = ReferenceEquals(reader["datFrom"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datFrom"]), DateTo = ReferenceEquals(reader["datTo"], DBNull.Value) ? String.Empty : Convert.ToString(reader["datTo"]), Remarks = ReferenceEquals(reader["strRemarks"], DBNull.Value) ? String.Empty : Convert.ToString(reader["strRemarks"]), IsLock = !ReferenceEquals(reader["blnIsLock"], DBNull.Value) && Convert.ToBoolean(reader["blnIsLock"]) }; collectionLocks.Add(collectionLock); } return(collectionLocks); } } } }
public static string Manage(NameValueCollection querystring) { int intParser; bool boolParser; UserProfile userProfile = WebCommon.GetUserProfile(); var collection = new CollectionLock { CollectionLockID = int.TryParse(querystring.Get("CollectionLockID"), out intParser) ? intParser : 0, BranchID = int.TryParse(querystring.Get("BranchID"), out intParser) ? intParser : 0, DateTransaction = querystring.Get("DateTransaction"), DateFrom = querystring.Get("DateFrom"), DateTo = querystring.Get("DateTo"), Remarks = querystring.Get("Remarks"), IsLock = bool.TryParse(querystring.Get("IsLock"), out boolParser) && boolParser, UserID = userProfile.UserId }; string isInsert = querystring.Get("TransType"); string param = WebCommon.ToXML(collection); return(CollectionLockDAL.Manage(param, isInsert)); }