Ejemplo n.º 1
0
        public static void Hide(int stubId)
        {
            int userId = Security.CurrentUser.UserID;

            using (DbTransaction tran = DbTransaction.Begin())
            {
                DBWebStubs.Hide(stubId, userId);
                int imUserId = DBUser.GetOriginalId(userId);
                User.IncreaseStubsVersion(imUserId);

                try
                {
                    IMManager.UpdateUserWebStub(imUserId);
                }
                catch (IMHelperException)
                {
                }

                tran.Commit();
            }
        }
Ejemplo n.º 2
0
        public static void UpdateUserStub(
            int stubId
            , string abbreviation
            , string toolTip
            , string url
            , bool openInBrowser
            , int width
            , int height
            , byte[] icon
            , bool deleteIcon)
        {
            using (DbTransaction tran = DbTransaction.Begin())
            {
                DBWebStubs.Update(stubId, abbreviation, toolTip, url, openInBrowser, width, height);

                int imUserId = DBUser.GetOriginalId(Security.CurrentUser.UserID);
                User.IncreaseStubsVersion(imUserId);

                if (deleteIcon)
                {
                    DBWebStubs.UpdateStubIcon(stubId, null);
                }
                else if (icon != null)
                {
                    DBWebStubs.UpdateStubIcon(stubId, icon);
                }

                try
                {
                    IMManager.UpdateUserWebStub(imUserId);
                }
                catch (Exception)
                {
                }

                tran.Commit();
            }
        }
Ejemplo n.º 3
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();
            }
        }
Ejemplo n.º 4
0
        public static int CreateGroupStub(
            string abbreviation
            , string toolTip
            , string url
            , bool openInBrowser
            , int width
            , int height
            , byte[] icon
            , ArrayList groups)
        {
            int stubId = -1;

            ArrayList users = new ArrayList();

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

            using (DbTransaction tran = DbTransaction.Begin())
            {
                stubId = DBWebStubs.Create(null, abbreviation, toolTip, url, openInBrowser, width, height);

                if (icon != null)
                {
                    DBWebStubs.UpdateStubIcon(stubId, icon);
                }

                foreach (int groupId in groups)
                {
                    DBWebStubs.AddStubGroup(stubId, groupId);
                }

                foreach (int userId in users)
                {
                    User.IncreaseStubsVersion(userId);
                }

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

                tran.Commit();
            }
            return(stubId);
        }
Ejemplo n.º 5
0
        public static void UpdateGroupStub(
            int stubId
            , string abbreviation
            , string toolTip
            , string url
            , bool openInBrowser
            , int width
            , int height
            , byte[] icon
            , ArrayList groups
            , bool deleteIcon)
        {
            // Groups
            ArrayList newGroups     = new ArrayList(groups);
            ArrayList deletedGroups = new ArrayList();

            using (IDataReader reader = DBWebStubs.GetListGroupsByStub(stubId))
            {
                while (reader.Read())
                {
                    int groupId = (int)reader["GroupId"];
                    if (newGroups.Contains(groupId))
                    {
                        newGroups.Remove(groupId);
                    }
                    else
                    {
                        deletedGroups.Add(groupId);
                    }
                }
            }

            // Users
            ArrayList users = new ArrayList();

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

            using (DbTransaction tran = DbTransaction.Begin())
            {
                DBWebStubs.Update(stubId, abbreviation, toolTip, url, openInBrowser, width, height);

                if (deleteIcon)
                {
                    DBWebStubs.UpdateStubIcon(stubId, null);
                }
                else if (icon != null)
                {
                    DBWebStubs.UpdateStubIcon(stubId, icon);
                }

                // Remove Group
                foreach (int groupId in deletedGroups)
                {
                    DBWebStubs.DeleteStubGroup(stubId, groupId);
                }

                // Add Group
                foreach (int groupId in newGroups)
                {
                    DBWebStubs.AddStubGroup(stubId, groupId);
                }

                // Stubs Version
                foreach (int userId in users)
                {
                    User.IncreaseStubsVersion(userId);
                }

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

                tran.Commit();
            }
        }
Ejemplo n.º 6
0
        public static void Update(
            int imGroupId
            , string imGroupName
            , string color
            , byte[] imGroupLogo
            , ArrayList youCanSeeGroups
            , ArrayList canSeeYouGroups)
        {
            if (!CanUpdate())
            {
                throw new AccessDeniedException();
            }

            // YouCanSeeGroups
            ArrayList newYouCanSeeGroups     = new ArrayList(youCanSeeGroups);
            ArrayList deletedYouCanSeeGroups = new ArrayList();

            SeparateIems(newYouCanSeeGroups, deletedYouCanSeeGroups, DBIMGroup.GetListIMGroupsYouCanSee(imGroupId, false), "IMGroupId");

            // CanSeeYouGroups
            ArrayList newCanSeeYouGroups     = new ArrayList(canSeeYouGroups);
            ArrayList deletedCanSeeYouGroups = new ArrayList();

            SeparateIems(newCanSeeYouGroups, deletedCanSeeYouGroups, DBIMGroup.GetListIMGroupsCanSeeYou(imGroupId), "IMGroupId");

            using (DbTransaction tran = DbTransaction.Begin())
            {
                DBIMGroup.CreateUpdate(imGroupId, imGroupName, color, false);

                if (imGroupLogo != null)
                {
                    DBIMGroup.UpdateIMGroupLogo(imGroupId, imGroupLogo);
                }

                // You Can See Groups
                foreach (int groupId in deletedYouCanSeeGroups)
                {
                    DBIMGroup.DeleteDependences(imGroupId, groupId);
                }
                foreach (int groupId in newYouCanSeeGroups)
                {
                    DBIMGroup.AddDependences(imGroupId, groupId);
                }

                // Can See You Groups
                foreach (int groupId in deletedCanSeeYouGroups)
                {
                    DBIMGroup.DeleteDependences(groupId, imGroupId);
                }
                foreach (int groupId in newCanSeeYouGroups)
                {
                    DBIMGroup.AddDependences(groupId, imGroupId);
                }

                // IBN
                try
                {
                    IMManager.UpdateGroup(imGroupId);
                    foreach (int groupId in deletedCanSeeYouGroups)
                    {
                        IMManager.UpdateGroup(groupId);
                    }
                    foreach (int groupId in newCanSeeYouGroups)
                    {
                        IMManager.UpdateGroup(groupId);
                    }
                }
                catch (Exception)
                {
                }
                tran.Commit();
            }
        }