Example #1
0
 /// <summary>
 /// StubId, Abbreviation, ToolTip, Url, OpenInBrowser, Width, Height, IsInternal, HasIcon
 /// </summary>
 /// <returns></returns>
 public static IDataReader GetStub(int StubId)
 {
     return(DBWebStubs.GetStub(StubId));
 }
Example #2
0
        public static void Delete(int stubId)
        {
            int       userId = -1;
            ArrayList users  = new ArrayList();
            ArrayList groups = new ArrayList();

            using (IDataReader reader = DBWebStubs.GetStub(stubId))
            {
                if (!reader.Read())
                {
                    return;
                }
                if (reader["UserId"] != DBNull.Value)
                {
                    userId = DBUser.GetOriginalId((int)reader["UserId"]);
                }
            }

            if (userId == -1)
            {
                using (IDataReader reader = DBWebStubs.GetListGroupsByStub(stubId))
                {
                    while (reader.Read())
                    {
                        groups.Add((int)reader["GroupId"]);
                    }
                }

                foreach (int groupId in groups)
                {
                    using (IDataReader reader = SecureGroup.GetListAllUsersInGroup(groupId))
                    {
                        while (reader.Read())
                        {
                            if (reader["OriginalId"] != DBNull.Value)
                            {
                                int imUserId = (int)reader["OriginalId"];
                                if (!users.Contains(imUserId))
                                {
                                    users.Add(imUserId);
                                }
                            }
                        }
                    }
                }
            }

            using (DbTransaction tran = DbTransaction.Begin())
            {
                DBWebStubs.Delete(stubId);

                if (userId > 0)                 // UserStub
                {
                    User.IncreaseStubsVersion(userId);

                    try
                    {
                        IMManager.UpdateUserWebStub(userId);
                    }
                    catch (Exception)
                    {
                    }
                }
                else
                {
                    foreach (int imUserId in users)
                    {
                        User.IncreaseStubsVersion(imUserId);
                    }

                    try
                    {
                        foreach (int imUserId in users)
                        {
                            IMManager.UpdateUserWebStub(imUserId);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }

                tran.Commit();
            }
        }