/// <summary>
        /// Get granting users from configuration
        /// </summary>
        /// <param name="dbConfig"></param>
        /// <returns></returns>
        public static IEnumerable <string> GetUserGrantsFromConfig(this IDbConfig dbConfig)
        {
            var userGrants = dbConfig.GetAllDatabaseConfigValues()
                             .Where(x => x.Key.ContainsIgnoreCase("grants:users") && x.Value.IsNotEmpty())
                             .Select(x => x.Value)
                             .ToList();

            if (userGrants.Any() == false && UserGrantsFromConfigKey.IsNotEmpty())
            {
                var outboxSchema = dbConfig.GetAllDatabaseConfigValues().FirstOrDefault(x =>
                                                                                        x.Key.EqualsIgnoreCase($"database:{UserGrantsFromConfigKey}Schema") && x.Value.IsNotEmpty()).Value;
                var schema = dbConfig.GetAllDatabaseConfigValues().FirstOrDefault(x =>
                                                                                  x.Key.EqualsIgnoreCase("database:schema") && x.Value.IsNotEmpty()).Value;

                if (string.Equals(outboxSchema, schema, StringComparison.OrdinalIgnoreCase))
                {
                    userGrants = dbConfig.GetAllDatabaseConfigValues()
                                 .Where(x => x.Key.ContainsIgnoreCase($"grants:{UserGrantsFromConfigKey}Users") && x.Value.IsNotEmpty())
                                 .Select(x => x.Value)
                                 .ToList();
                }
            }

            var defaultAppUser = dbConfig.GetAllDatabaseConfigValues().GetValue("defaultApp:user");

            if (defaultAppUser.IsNotEmpty())
            {
                userGrants.Add(defaultAppUser);
            }

            var result = userGrants.Distinct().SelectMany(userGrant => userGrant.Split(',')).ToArray();

            return(result.Select(x => x.Trim()).Distinct());
        }
        /// <summary>
        /// Get additional roles for granting users from configuration
        /// </summary>
        /// <param name="dbConfig"></param>
        /// <returns></returns>
        public static IEnumerable <string> GetAdditionalRolesGrantsFromConfig(this IDbConfig dbConfig)
        {
            var additionalRoles = dbConfig.GetAllDatabaseConfigValues()
                                  .Where(x => x.Key.ContainsIgnoreCase("grants:additionalRoles") && x.Value.IsNotEmpty())
                                  .Select(x => x.Value)
                                  .ToArray();

            var result = additionalRoles.Distinct().SelectMany(userGrant => userGrant.Split(',')).ToArray();

            return(result.Select(x => x.Trim()).Distinct());
        }