コード例 #1
0
        public void Insert(U_EntitiesInRole entities)
        {
            SqlParameter[] parms1 = { new SqlParameter("@RoleId", SqlDbType.VarChar, 100), new SqlParameter("@MenuId", SqlDbType.Int) };
            SqlParameter[] parms2 = { new SqlParameter("@RoleId", SqlDbType.VarChar, 100), new SqlParameter("@Permission", SqlDbType.Int) };
            SqlParameter[] parms3 = { new SqlParameter("@RoleId", SqlDbType.VarChar, 100), new SqlParameter("@NodeId", SqlDbType.VarChar, 100) };

            using (var conn = new SqlConnection(this._databaseConnectionString))
            {
                if (conn.State != ConnectionState.Open)
                {
                    conn.Open();
                }
                var trans = conn.BeginTransaction(IsolationLevel.ReadCommitted);
                try
                {
                    foreach (var entity in entities.Menus)
                    {
                        parms1[0].Value = SqlTypeConverter.DBNullStringChecker(entities.RoleId);
                        parms1[1].Value = SqlTypeConverter.DBNullInt32Checker(entity);
                        SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert1, parms1);
                    }

                    foreach (var entity in entities.Permissions)
                    {
                        parms2[0].Value = SqlTypeConverter.DBNullStringChecker(entities.RoleId);
                        parms2[1].Value = (int)entity;
                        SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert2, parms2);
                    }

                    foreach (var entity in entities.Authorizations)
                    {
                        parms3[0].Value = SqlTypeConverter.DBNullStringChecker(entities.RoleId);
                        parms3[1].Value = SqlTypeConverter.DBNullStringChecker(entity);
                        if (entities.Type == EnmSSH.Area)
                        {
                            SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert3, parms3);
                        }
                        if (entities.Type == EnmSSH.Station)
                        {
                            SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert4, parms3);
                        }
                        if (entities.Type == EnmSSH.Room)
                        {
                            SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert5, parms3);
                        }
                        if (entities.Type == EnmSSH.Device)
                        {
                            SqlHelper.ExecuteNonQuery(trans, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_Insert6, parms3);
                        }
                    }
                    trans.Commit();
                }
                catch
                {
                    trans.Rollback();
                    throw;
                }
            }
        }
コード例 #2
0
        public void Add(U_EntitiesInRole entities)
        {
            var key = string.Format(GlobalCacheKeys.SSH_AreasPattern, entities.RoleId);

            if (_cacheManager.IsSet(key))
            {
                _cacheManager.Remove(key);
            }

            key = string.Format(GlobalCacheKeys.SSH_AuthorizationsPattern, entities.RoleId);
            if (_cacheManager.IsSet(key))
            {
                _cacheManager.Remove(key);
            }

            _repository.Insert(entities);
        }
コード例 #3
0
        public U_EntitiesInRole GetEntitiesInRole(string id)
        {
            if (U_Role.SuperId.Equals(id))
            {
                var key = GlobalCacheKeys.SSH_Authorizations;
                if (_cacheManager.IsSet(key))
                {
                    return(_cacheManager.Get <U_EntitiesInRole>(key));
                }
                else
                {
                    var auth = new U_EntitiesInRole {
                        RoleId = id, Menus = new List <int>(), Permissions = new List <EnmPermission>(), Authorizations = new List <string>()
                    };
                    foreach (var menu in _menuRepository.GetMenus())
                    {
                        auth.Menus.Add(menu.Id);
                    }
                    foreach (EnmPermission permission in Enum.GetValues(typeof(EnmPermission)))
                    {
                        auth.Permissions.Add(permission);
                    }

                    _cacheManager.Set(key, auth);
                    return(auth);
                }
            }
            else
            {
                var key = string.Format(GlobalCacheKeys.SSH_AuthorizationsPattern, id);
                if (_cacheManager.IsSet(key))
                {
                    return(_cacheManager.Get <U_EntitiesInRole>(key));
                }
                else
                {
                    var data = _repository.GetEntitiesInRole(id);
                    _cacheManager.Set(key, data);
                    return(data);
                }
            }
        }
コード例 #4
0
        public U_EntitiesInRole GetAuth(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                throw new ArgumentNullException("id");
            }

            if (_cachedAuth != null)
            {
                return(_cachedAuth);
            }

            var auth = _authService.GetEntitiesInRole(id);

            if (auth == null)
            {
                throw new iPemException("current auth not found.");
            }
            return(_cachedAuth = auth);
        }
コード例 #5
0
        public U_EntitiesInRole GetEntitiesInRole(string id)
        {
            SqlParameter[] parms = { new SqlParameter("@RoleId", SqlDbType.VarChar, 100) };
            parms[0].Value = SqlTypeConverter.DBNullStringChecker(id);

            var entity = new U_EntitiesInRole()
            {
                RoleId = id, Menus = new List <int>(), Permissions = new List <EnmPermission>(), Authorizations = new List <string>()
            };

            using (var rdr = SqlHelper.ExecuteReader(this._databaseConnectionString, CommandType.Text, SqlCommands_Sc.Sql_U_EntitiesInRole_Repository_GetEntitiesInRole, parms))
            {
                while (rdr.Read())
                {
                    entity.Menus.Add(SqlTypeConverter.DBNullInt32Handler(rdr["MenuId"]));
                }

                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        entity.Permissions.Add(SqlTypeConverter.DBNullEnmPermissionHandler(rdr["Permission"]));
                    }
                }

                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        entity.Authorizations.Add(SqlTypeConverter.DBNullStringHandler(rdr["NodeId"]));
                        entity.Type = EnmSSH.Area;
                    }
                }

                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        entity.Authorizations.Add(SqlTypeConverter.DBNullStringHandler(rdr["NodeId"]));
                        entity.Type = EnmSSH.Station;
                    }
                }

                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        entity.Authorizations.Add(SqlTypeConverter.DBNullStringHandler(rdr["NodeId"]));
                        entity.Type = EnmSSH.Room;
                    }
                }

                if (rdr.NextResult())
                {
                    while (rdr.Read())
                    {
                        entity.Authorizations.Add(SqlTypeConverter.DBNullStringHandler(rdr["NodeId"]));
                        entity.Type = EnmSSH.Device;
                    }
                }
            }
            return(entity);
        }