Exemple #1
0
    /// <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);
    }
Exemple #2
0
        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));
        }