Exemple #1
0
 /// <summary>
 /// Deletes the access mask.
 /// </summary>
 /// <param name="mid">
 /// The module id.
 /// </param>
 /// <param name="accessMaskId">
 /// The access mask id. 
 /// </param>
 /// <returns> 
 /// A <see cref="T:System.Boolean"/> with true if access mask was deleted and false if deletion failed.
 /// </returns>
 public static bool accessmask_delete(int? mid, object accessMaskId)
 {                
     using (var sc = new VzfSqlCommand(mid))
     {   
         sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_AccessMaskID", accessMaskId));
       
         sc.CommandText.AppendObjectQuery("accessmask_delete", mid);
         return Convert.ToBoolean(sc.ExecuteScalar(CommandType.StoredProcedure));
     }
 }
Exemple #2
0
        /// <summary>
        /// The board_create.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="adminUsername">
        /// The admin username.
        /// </param>
        /// <param name="adminUserEmail">
        /// The admin user email.
        /// </param>
        /// <param name="adminUserKey">
        /// The admin user key.
        /// </param>
        /// <param name="boardName">
        /// The board name.
        /// </param>
        /// <param name="culture">
        /// The culture.
        /// </param>
        /// <param name="languageFile">
        /// The language file.
        /// </param>
        /// <param name="boardMembershipName">
        /// The board membership name.
        /// </param>
        /// <param name="boardRolesName">
        /// The board roles name.
        /// </param>
        /// <param name="rolePrefix">
        /// The role prefix.
        /// </param>
        /// <param name="isHostUser">
        /// The is host user.
        /// </param>
        /// <returns>
        /// The <see cref="int"/> id of a new board.
        /// </returns>
        public static int board_create(
            int? mid,
            object adminUsername,
            object adminUserEmail,
            object adminUserKey,
            object boardName,
            object culture,
            object languageFile,
            object boardMembershipName,
            object boardRolesName,
            object rolePrefix,
            object isHostUser)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_BoardName", boardName));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Culture", culture));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_LanguageFile", languageFile));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_MembershipAppName", boardMembershipName));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_RolesAppName", boardRolesName));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UserName", adminUsername));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UserEmail", adminUserEmail));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UserKey", adminUserKey));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsHostAdmin", isHostUser));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_RolePrefix", rolePrefix));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                sc.CommandText.AppendObjectQuery("board_create", mid);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #3
0
Fichier : DB.cs Projet : vzrus/VZF
        private static object GetApplicationIdFromName(string connectionStringName, string appName)
        {          
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_applicationname", appName));
                sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_newguid", Guid.NewGuid()));
                sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_applicationid", null, ParameterDirection.Output));
                

                // cmd.Parameters.Add(new FbParameter("@I_USERID", FbDbType.VarChar)).Value = userID;

                sc.CommandText.AppendObjectQuery("prov_createapplication", connectionStringName);
                return sc.ExecuteScalar(CommandType.StoredProcedure, false);
            }            
        }
Exemple #4
0
Fichier : DB.cs Projet : vzrus/VZF
        public static int __GetNumberInactiveProfiles(string connectionStringName, object appName, object inactiveSinceDate)
        {            
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ApplicationName", appName));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_InactiveSinceDate", inactiveSinceDate));
                sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_newguid", Guid.NewGuid()));

                sc.CommandText.AppendObjectQuery("prov_profile_getnumberinactiveprofiles", connectionStringName);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure, false));
            }
        }
Exemple #5
0
Fichier : DB.cs Projet : vzrus/VZF
        /// <summary>
        /// The update user.
        /// </summary>
        /// <param name="connectionString">
        /// The connection string.
        /// </param>
        /// <param name="appName">
        /// The app name.
        /// </param>
        /// <param name="user">
        /// The user.
        /// </param>
        /// <param name="requiresUniqueEmail">
        /// The requires unique email.
        /// </param>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>
        public int UpdateUser(string connectionStringName, object appName, MembershipUser user, bool requiresUniqueEmail)
        {
            // connectionStringName = SqlDbAccess.GetConnectionStringNameFromConnectionString(connectionStringName);
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_APPLICATIONNAME", appName));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_userkey", user.ProviderUserKey));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_USERNAME", user.UserName));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_EMAIL", user.Email));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_COMMENT", user.Comment));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_isapproved", user.IsApproved));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "I_LASTLOGIN", user.LastLoginDate));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "I_LASTACTIVITY", user.LastActivityDate));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "I_UNIQUEEMAIL", requiresUniqueEmail));

                sc.CommandText.AppendObjectQuery("P_updateuser", connectionStringName);

                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
            }             
        }
Exemple #6
0
Fichier : DB.cs Projet : vzrus/VZF
        public void SetProfilePropertiesOld(string connectionStringName, object appName, object userID, SettingsPropertyValueCollection values, List<SettingsPropertyColumn> settingsColumnsList)
        {
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                bool profileExists = false;
                string table =
                             SqlDbAccess.GetVzfObjectNameFromConnectionString("prov_Profile", connectionStringName);    
                using (var sc1 = new VzfSqlCommand(connectionStringName))
                {                    

                    // cmd.Parameters.Add(new FbParameter("@I_USERID", FbDbType.VarChar)).Value = userID;
                    sc1.CommandText.AppendQuery(string.Format("SELECT COUNT(1) FROM {0} WHERE UserID =UNHEX(REPLACE('{1}','-',''));", table, MySqlHelpers.GuidConverter(new Guid(userID.ToString())).ToString()));

                    profileExists = Convert.ToBoolean(sc1.ExecuteScalar(CommandType.Text, false));
                }

                StringBuilder MySqlCommandTextMain =
                    new StringBuilder("");
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "?i_UserID", MySqlHelpers.GuidConverter(new Guid(userID.ToString())).ToString()));

                // Build up strings used in the query
                StringBuilder columnStr = new StringBuilder();
                StringBuilder valueStr = new StringBuilder();
                StringBuilder setStr = new StringBuilder();
                int count = 0;

                foreach (SettingsPropertyColumn column in settingsColumnsList)
                {
                    // only write if it's dirty
                    if (values[column.Settings.Name].IsDirty)
                    {
                        columnStr.Append(", ");
                        valueStr.Append(", ");
                        columnStr.Append(column.Settings.Name);
                        string valueParam = "?Value" + count;
                        valueStr.Append(valueParam);                       
                        sc.Parameters.Add(sc.CreateParameter(column.DataType, valueParam, values[column.Settings.Name].PropertyValue));
                        if (column.DataType != DbType.DateTime)
                        {
                            if (count > 0)
                            {
                                setStr.Append(",");
                            }
                            setStr.Append(column.Settings.Name);
                            setStr.Append("=");
                            setStr.Append(valueParam);
                        }
                        count++;
                    }
                }

                columnStr.Append(",LastUpdatedDate ");
                valueStr.Append(",?LastUpdatedDate");
                setStr.Append(",LastUpdatedDate=?LastUpdatedDate");
                  sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "?LastUpdatedDate", DateTime.UtcNow));               
                if (profileExists)
                {
                    MySqlCommandTextMain.Append(" UPDATE ").Append(table).Append(" SET ").Append(setStr.ToString());
                    MySqlCommandTextMain.Append(" WHERE UserID =UNHEX(REPLACE(@i_UserID,'-',''))");
                    MySqlCommandTextMain.Append(";");
                }
                else
                {
                    MySqlCommandTextMain.Append("INSERT INTO ").Append(table).Append(" (UserID").Append(columnStr.ToString());
                    MySqlCommandTextMain.Append(") VALUES (UNHEX(REPLACE(@i_UserID,'-',''))").Append(valueStr.ToString()).Append(");");
                }

                sc.Parameters.Add(sc.CreateParameter(DbType.String, "@i_UserID", MySqlHelpers.GuidConverter(new Guid(userID.ToString())).ToString()));

                sc.CommandText.AppendQuery(MySqlCommandTextMain.ToString());
                sc.ExecuteNonQuery(CommandType.Text, false);
            }
        }
Exemple #7
0
        /// <summary>
        /// The set property values.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <param name="appname">
        /// The appname.
        /// </param>
        /// <param name="tableName">
        /// The table name.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="userName">
        /// The user name.
        /// </param>
        /// <param name="collection">
        /// The collection.
        /// </param>
        /// <param name="dirtyOnly">
        /// The dirty only.
        /// </param>
        /// <exception cref="ArgumentOutOfRangeException">
        /// </exception>
        public static void SetPropertyValues(
            int? mid,
            int boardId,
            string appname,
            string tableName,
            int userId,
            string userName,
            SettingsPropertyValueCollection collection,
            bool dirtyOnly = true)
        {
            string dataEngine;
            string connectionString;
            string namePattern = string.Empty;
            SqlDbAccess.GetConnectionData(mid, namePattern, out dataEngine, out connectionString);

            // guest should not be in profile
            int? userIdG = user_guest(mid, boardId);
            if (userId <= 0 || userIdG == userId || collection.Count < 1)
            {
                return;
            }

            bool itemsToSave = true;
            if (dirtyOnly)
            {
                itemsToSave = collection.Cast<SettingsPropertyValue>().Any(pp => pp.IsDirty);
            }

            // First make sure we have at least one item to save
            if (!itemsToSave)
            {
                return;
            }

            // load the data for the configuration
            List<SettingsPropertyColumn> spc = LoadFromPropertyValueCollection(mid, collection, tableName);

            // Save properties to database.
            if (spc == null || spc.Count <= 0 || !userName.IsSet())
            {
                return;
            }

            if (userName.IsNotSet())
            {
                return;
            }

            // check if profile exits to select insert or update
            bool profileExists;
            string profileExistsSql;

            switch (dataEngine)
            {
                case SqlDbAccess.MsSql:
                    profileExistsSql = MsProfile.ProfileExists;
                    break;
                case SqlDbAccess.Npgsql:
                    profileExistsSql = PgProfile.ProfileExists;
                    break;
                case SqlDbAccess.MySql:
                    profileExistsSql = MySqlProfile.ProfileExists;
                    break;
                case SqlDbAccess.Firebird:
                    profileExistsSql = FbProfile.ProfileExists;
                    break;
                default:
                    throw new ArgumentOutOfRangeException(dataEngine);
            }

            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UserID", userId));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ApplicationName", appname));

                sc.CommandText.AppendQuery(profileExistsSql.FormatWith(SqlDbAccess.GetVzfObjectName(tableName, mid)));

                profileExists = Convert.ToInt32(sc.ExecuteScalar(CommandType.Text, true)) > 0;
            }

            // create data for saving profile properties
            string sql;

            var paramData = new List<Tuple<DbType, string, object>>();
            // Build up strings used in the query
            var columnStr = new StringBuilder();
            var valueStr = new StringBuilder();
            var setStr = new StringBuilder();

            spc.ForEach(
                column =>
                    {
                        if (!collection[column.Settings.Name].IsDirty) return;

                        var nameParam = collection[column.Settings.Name].Name;
                        var valParam = collection[column.Settings.Name].PropertyValue;

                        nameParam = "@i_" + nameParam;

                        paramData.Add(new Tuple<DbType, string, object>(column.DataType, nameParam, valParam));

                        valueStr.Append(nameParam);
                        valueStr.Append(",");

                        columnStr.Append(column.Settings.Name);
                        columnStr.Append(",");

                        setStr.Append(column.Settings.Name);
                        setStr.Append("=");
                        setStr.Append(nameParam);
                        setStr.Append(",");
                    });

            // first predefined parameter without separator
            columnStr.Append("LastUpdatedDate ");
            valueStr.Append("@i_LastUpdatedDate");
            setStr.Append("LastUpdatedDate=@i_LastUpdatedDate");

            paramData.Add(new Tuple<DbType, string, object>(DbType.DateTime, "@i_LastUpdatedDate", DateTime.UtcNow));

            columnStr.Append(",LastActivity ");
            valueStr.Append(",@i_LastActivity");
            setStr.Append(",LastActivity=@i_LastActivity");

            paramData.Add(new Tuple<DbType, string, object>(DbType.DateTime, "@i_LastActivity", DateTime.UtcNow));

            columnStr.Append(",ApplicationName ");
            valueStr.Append(",@i_ApplicationName");
            setStr.Append(",ApplicationName=@i_ApplicationName");

            columnStr.Append(",IsAnonymous ");
            valueStr.Append(",@i_IsAnonymous");
            setStr.Append(",IsAnonymous=@i_IsAnonymous");

            paramData.Add(new Tuple<DbType, string, object>(DbType.Boolean, "@i_IsAnonymous", false));

            columnStr.Append(",UserName ");
            valueStr.Append(",@i_UserName");
            setStr.Append(",UserName=@i_UserName");

            paramData.Add(new Tuple<DbType, string, object>(DbType.String, "@i_UserName", userName));

            paramData.Add(new Tuple<DbType, string, object>(DbType.Int32, "@i_UserID", userId));

            paramData.Add(new Tuple<DbType, string, object>(DbType.String, "@i_ApplicationName", appname));

            // start saving...             
            switch (dataEngine)
            {
                case SqlDbAccess.MsSql:
                    sql = MsProfile.SetProfileProperties(
                        setStr.ToString(),
                        columnStr.ToString(),
                        valueStr.ToString(),
                        profileExists);
                    break;
                case SqlDbAccess.Npgsql:
                    sql = PgProfile.SetProfileProperties(
                        setStr.ToString(),
                        columnStr.ToString(),
                        valueStr.ToString(),
                        profileExists);
                    break;
                case SqlDbAccess.MySql:
                    sql = MySqlProfile.SetProfileProperties(
                        setStr.ToString(),
                        columnStr.ToString(),
                        valueStr.ToString(),
                        profileExists);
                    break;
                case SqlDbAccess.Firebird:
                    sql = FbProfile.SetProfileProperties(
                        setStr.ToString(),
                        columnStr.ToString(),
                        valueStr.ToString(),
                        profileExists);
                    break;
                default:
                    throw new ArgumentOutOfRangeException(dataEngine);
            }

            using (var sc = new VzfSqlCommand(mid))
            {
                // add parameters in a loop
                paramData.ForEach(
                    parameter => sc.Parameters.Add(sc.CreateParameter(parameter.Item1, parameter.Item2, parameter.Item3)));

                sc.CommandText.AppendQuery(sql.FormatWith(SqlDbAccess.GetVzfObjectName(tableName, mid)));
                sc.ExecuteNonQuery(CommandType.Text, true);
            }
        }
Exemple #8
0
        /// <summary>
        /// The pollgroup_attach.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="pollGroupId">
        /// The poll group id.
        /// </param>
        /// <param name="topicId">
        /// The topic id.
        /// </param>
        /// <param name="forumId">
        /// The forum id.
        /// </param>
        /// <param name="categoryId">
        /// The category id.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>
        public static int pollgroup_attach(
            int? mid,
            int? pollGroupId,
            int? topicId,
            int? forumId,
            int? categoryId,
            int? boardId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_PollGroupID", pollGroupId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_TopicID", topicId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumID", forumId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_CategoryID", categoryId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_BoardID", boardId));

                sc.CommandText.AppendObjectQuery("pollgroup_attach", mid);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #9
0
 /// <summary>
 /// The forum_save_parentschecker.
 /// </summary>
 /// <param name="mid">
 /// The mid.
 /// </param>
 /// <param name="forumId">
 /// The forum id.
 /// </param>
 /// <param name="parentId">
 /// The parent id.
 /// </param>
 /// <returns>
 /// The <see cref="int"/>.
 /// </returns>      
 public static int forum_save_parentschecker(int? mid, object forumId, object parentId)
 {
     using (var sc = new VzfSqlCommand(mid))
     {
         sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumID", forumId));
         sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ParentID", parentId));
         sc.CommandText.AppendObjectQuery("forum_save_prntchck", mid);
         return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
     }
 }
Exemple #10
0
        /// <summary>
        /// The forum_save.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="forumId">
        /// The forum id.
        /// </param>
        /// <param name="categoryId">
        /// The category id.
        /// </param>
        /// <param name="parentId">
        /// The parent id.
        /// </param>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <param name="description">
        /// The description.
        /// </param>
        /// <param name="sortOrder">
        /// The sort order.
        /// </param>
        /// <param name="locked">
        /// The locked.
        /// </param>
        /// <param name="hidden">
        /// The hidden.
        /// </param>
        /// <param name="isTest">
        /// The is test.
        /// </param>
        /// <param name="moderated">
        /// The moderated.
        /// </param>
        /// <param name="accessMaskId">
        /// The access mask id.
        /// </param>
        /// <param name="remoteUrl">
        /// The remote url.
        /// </param>
        /// <param name="themeUrl">
        /// The theme url.
        /// </param>
        /// <param name="imageUrl">
        /// The image url.
        /// </param>
        /// <param name="styles">
        /// The styles.
        /// </param>
        /// <param name="dummy">
        /// The dummy.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="isUserForum">
        /// The is user forum.
        /// </param>
        /// <param name="canhavepersforums">
        /// The canhavepersforums.
        /// </param>
        /// <param name="adjacentForumId">
        /// The ajacent forum id.
        /// </param>
        /// <param name="adjacentForumMode">
        /// The ajacent forum mode.
        /// </param>
        /// <returns>
        /// The <see cref="long"/>.
        /// </returns> 
        public static long forum_save(
            int? mid,
            object forumId,
            object categoryId,
            object parentId,
            object name,
            object description,
            object sortOrder,
            object locked,
            object hidden,
            object isTest,
            object moderated,
            object accessMaskId,
            object remoteUrl,
            object themeUrl,
            object imageUrl,
            object styles,
            bool dummy,
            object userId,
            bool isUserForum,
            bool canhavepersforums,
            object adjacentForumId,
            object adjacentForumMode)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                int sortOrderOut;
               
                if (int.TryParse(sortOrder.ToString(), out sortOrderOut))
                {
                    if (sortOrderOut >= 255)
                    {
                        sortOrderOut = 0;
                    }
                }

                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumID", forumId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_CategoryID", categoryId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ParentID", parentId));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Name", name));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Description", description));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SortOrder", sortOrderOut));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_Locked", locked));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_Hidden", hidden));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsTest", isTest));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_Moderated", moderated));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_RemoteURL", remoteUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ThemeURL", themeUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ImageURL", imageUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Styles", styles));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_AccessMaskID", accessMaskId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UserID", userId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsUserForum", isUserForum));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_CanHavePersForums", canhavepersforums));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_AdjacentForumID", adjacentForumId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_AdjacentForumMode", adjacentForumMode));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                sc.CommandText.AppendObjectQuery("forum_save", mid);

                object resultop = sc.ExecuteScalar(CommandType.StoredProcedure);

                if (resultop == DBNull.Value)
                {
                    return 0;
                }

             /*   if (Config.LargeForumTree)
                {
                    forum_ns_recreate(mid);
                } */
                return long.Parse(resultop.ToString());
            }
        }
Exemple #11
0
        /// <summary>
        /// The forum_move.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="forumOldId">
        /// The forum old id.
        /// </param>
        /// <param name="forumNewId">
        /// The forum new id.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>        
        public static bool forum_move(int? mid, [NotNull] object forumOldId, [NotNull] object forumNewId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumID", forumOldId));

                sc.CommandText.AppendObjectQuery("forum_listSubForums", mid);

                // if a forum already exists.
                if (!(sc.ExecuteScalar(CommandType.StoredProcedure) is DBNull))
                {
                    return false;
                }

                sc.Parameters.Clear();
                sc.CommandText.Clear();

                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumOldID", forumOldId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumNewID", forumNewId));
                sc.CommandText.AppendObjectQuery("forum_move", mid);

                // TODO: command timeout should be very large here
                sc.ExecuteNonQuery(CommandType.StoredProcedure);

               /* if (Config.LargeForumTree)
                {
                    forum_ns_recreate(mid);
                } */

                return true;
            }
        }
Exemple #12
0
        /// <summary>
        /// The category_delete.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="categoryId">
        /// The category id.
        /// </param>
        /// <param name="newCategoryId"></param>
        /// <returns>
        /// The<see cref="bool"/>.
        /// </returns>
        public static bool category_delete(int? mid, object categoryId, int? newCategoryId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_CategoryID", categoryId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_NewCategoryID", newCategoryId));


                sc.CommandText.AppendObjectQuery("category_delete", mid);
                var res = Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure)) != 0;
              /*  if (Config.LargeForumTree)
                {
                    forum_ns_recreate(mid);
                } */

                return res;
            }
        }
Exemple #13
0
        /// <summary>
        /// The buddy_remove.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="fromUserId">
        /// The from user id.
        /// </param>
        /// <param name="toUserId">
        /// The to user id.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public static string buddy_remove(int? mid, object fromUserId, object toUserId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_FromUserID", fromUserId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ToUserID", toUserId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_UseDisplayName", true));

                sc.CommandText.AppendObjectQuery("buddy_remove", mid);
                return sc.ExecuteScalar(CommandType.StoredProcedure).ToString();
            }
        }
Exemple #14
0
        /// <summary>
        /// The buddy_approve request.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="fromUserId">
        /// The from user id.
        /// </param>
        /// <param name="toUserId">
        /// The to user id.
        /// </param>
        /// <param name="mutual">
        /// The mutual.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public static string buddy_approveRequest(int? mid, object fromUserId, object toUserId, object mutual)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_FromUserID", fromUserId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ToUserID", toUserId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_Mutual", mutual));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_UseDisplayName", true));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                sc.CommandText.AppendObjectQuery("buddy_approverequest", mid);
                return sc.ExecuteScalar(CommandType.StoredProcedure).ToString();
            }
        }
Exemple #15
0
        /// <summary>
        /// The board_save.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <param name="languageFile">
        /// The language file.
        /// </param>
        /// <param name="culture">
        /// The culture.
        /// </param>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <param name="allowThreaded">
        /// The allow threaded.
        /// </param>
        /// <returns>
        /// The <see cref="int"/> id of a saved board.
        /// </returns>
        public static int board_save(
            int? mid,
            object boardId,
            object languageFile,
            object culture,
            object name,
            object allowThreaded)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_BoardID", boardId));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Name", name));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_LanguageFile", languageFile));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Culture", culture));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_AllowThreaded", allowThreaded));

                sc.CommandText.AppendObjectQuery("board_save", mid);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #16
0
        /* public static void ReadForum_delete([NotNull] object trackingID)
         {
             string dataEngine;
             string connectionString;
             int? mid = 0;  string namePattern = string.Empty;
             SqlDbAccess.GetConnectionData(mid, namePattern, out dataEngine, out connectionString);
             
             switch (dataEngine)
             {
                 case SqlDbAccess.MsSql: MsSql.Db.ReadForum_delete(connectionString, trackingID); break;
                 case SqlDbAccess.Npgsql: Postgre.Db.ReadForum_delete(connectionString, trackingID); break;
                 case SqlDbAccess.MySql:  MySqlDb.Db.ReadForum_delete(connectionString, trackingID); break;
                 case SqlDbAccess.Firebird:  FirebirdDb.Db.ReadForum_delete(connectionString, trackingID); break;
                 // case SqlDbAccess.Oracle:   VZF.Data.Oracle.Db.ReadForum_delete(connectionString, trackingID);break;
                 // case SqlDbAccess.Db2:   VZF.Data.Db2.Db.ReadForum_delete(connectionString, trackingID); break;
                 // case SqlDbAccess.Other:   VZF.Data.Other.Db.ReadForum_delete(connectionString, trackingID); break;
                 default:
                     throw new ArgumentOutOfRangeException(dataEngine);
                     break;
             }
         } */

        /// <summary>
        /// The read forum_lastread.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="forumId">
        /// The forum id.
        /// </param>
        /// <returns>
        /// The <see cref="DateTime?"/>.
        /// </returns>    
        public static DateTime? ReadForum_lastread(int? mid, [NotNull] object userId, [NotNull] object forumId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UserID", userId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_ForumID", forumId));

                sc.CommandText.AppendObjectQuery("readforum_lastread", mid);
                var tableLastRead = sc.ExecuteScalar(CommandType.StoredProcedure);
                return tableLastRead != null && tableLastRead != DBNull.Value
                           ? (DateTime)tableLastRead
                           : DateTimeHelper.SqlDbMinTime();
            }
        }
Exemple #17
0
        /// <summary>
        /// The poll_save.
        /// </summary>
        /// <param name="pollList">
        /// The poll list.
        /// </param>
        /// <returns>
        /// The <see cref="int?"/>.
        /// </returns>   
        public static int? poll_save(PollGroup pollList)
        {
            int? pollGroup = null;

            // Check if the group already exists or create it.
            using (var cmdPg = new VzfSqlCommand(pollList.mid))
            {
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.Int32, "i_topicid", pollList.TopicId));
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.Int32, "i_forumid", pollList.ForumId));
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.Int32, "i_categoryid", pollList.CategoryId));
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.Int32, "i_userid", pollList.UserId));
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.Int32, "i_flags", pollList.Flags.BitValue));
                cmdPg.Parameters.Add(cmdPg.CreateParameter(DbType.DateTime, "i_utctimestamp", DateTime.UtcNow));

                cmdPg.CommandText.AppendObjectQuery("pollgroup_save", pollList.mid);
                var dataTable = cmdPg.ExecuteDataTableFromReader(
                    CommandBehavior.Default,
                    CommandType.StoredProcedure,
                    true);

                if (dataTable.Rows[0]["PollGroupID"] != DBNull.Value)
                {
                    pollGroup = Convert.ToInt32(dataTable.Rows[0]["PollGroupID"]);
                }
                else if (dataTable.Rows[0]["NewPollGroupID"] != DBNull.Value)
                {
                    pollGroup = Convert.ToInt32(dataTable.Rows[0]["NewPollGroupID"]);
                }
            }

            pollList.Polls.ForEach(
                 poll =>
                    {
                        int? currPoll;
                        using (var cmd = new VzfSqlCommand(pollList.mid))
                        {
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.String, "i_question", poll.Question));

                            if (poll.Closes > DateTimeHelper.SqlDbMinTime())
                            {
                                cmd.Parameters.Add(cmd.CreateParameter(DbType.DateTime, "i_closes", poll.Closes));
                            }
                            else
                            {
                                cmd.Parameters.Add(cmd.CreateParameter(DbType.DateTime, "i_closes", null));
                            }

                            cmd.Parameters.Add(cmd.CreateParameter(DbType.Int32, "i_UserID", poll.UserId));
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.Int32, "i_PollGroupID", pollGroup));
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.String, "i_ObjectPath", poll.ObjectPath));
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.String, "i_MimeType", poll.MimeType));
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.Int32, "i_Flags", poll.Flags.BitValue));
                            cmd.Parameters.Add(cmd.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                            cmd.CommandText.AppendObjectQuery("poll_save", pollList.mid);
                            currPoll = cmd.ExecuteScalar(CommandType.StoredProcedure, true).ToType<int>();
                        }

                        // The cycle through poll reply choices 
                        poll.Choices.ForEach(
                            choice =>
                                {
                                    if (choice.Choice.Length <= 0)
                                    {
                                        return;
                                    }

                                    using (var cmdChoice = new VzfSqlCommand(pollList.mid))
                                    {
                                        cmdChoice.Parameters.Add(
                                            cmdChoice.CreateParameter(DbType.Int32, "i_pollid", currPoll));
                                        cmdChoice.Parameters.Add(
                                            cmdChoice.CreateParameter(DbType.String, "i_choice", choice.Choice));
                                        cmdChoice.Parameters.Add(cmdChoice.CreateParameter(DbType.Int32, "i_votes", 0));
                                        cmdChoice.Parameters.Add(
                                            cmdChoice.CreateParameter(
                                                DbType.String,
                                                "i_objectpath",
                                                choice.ObjectPath.IsNotSet() ? string.Empty : choice.ObjectPath));
                                        cmdChoice.Parameters.Add(
                                            cmdChoice.CreateParameter(
                                                DbType.String,
                                                "i_mimetype",
                                                choice.MimeType.IsNotSet() ? string.Empty : choice.MimeType));
                                        cmdChoice.Parameters.Add(
                                            cmdChoice.CreateParameter(
                                                DbType.DateTime,
                                                "i_utctimestamp",
                                                DateTime.UtcNow));

                                        cmdChoice.CommandText.AppendObjectQuery("choice_save", pollList.mid);
                                        cmdChoice.ExecuteNonQuery(CommandType.StoredProcedure, true);
                                    }
                                });
                    });

            // add links to objects
            using (var cmd2 = new VzfSqlCommand(pollList.mid))
            {
                cmd2.Parameters.Add(cmd2.CreateParameter(DbType.Int32, "i_topicid", pollList.TopicId));
                cmd2.Parameters.Add(cmd2.CreateParameter(DbType.Int32, "i_forumid", pollList.ForumId));
                cmd2.Parameters.Add(cmd2.CreateParameter(DbType.Int32, "i_categoryid", pollList.CategoryId));
                cmd2.Parameters.Add(cmd2.CreateParameter(DbType.Int32, "i_pollgroupid", pollGroup));
                cmd2.Parameters.Add(cmd2.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                cmd2.CommandText.AppendObjectQuery("pollgroup_setlinks", pollList.mid);
                cmd2.ExecuteNonQuery(CommandType.StoredProcedure, true);
            }

            return pollGroup;
        }
Exemple #18
0
        /// <summary>
        /// The get search result.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="toSearchWhat">
        /// The to search what.
        /// </param>
        /// <param name="toSearchFromWho">
        /// The to search from who.
        /// </param>
        /// <param name="searchFromWhoMethod">
        /// The search from who method.
        /// </param>
        /// <param name="searchWhatMethod">
        /// The search what method.
        /// </param>
        /// <param name="categoryId">
        /// The category id.
        /// </param>
        /// <param name="forumIdToStartAt">
        /// The forum id to start at.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <param name="maxResults">
        /// The max results.
        /// </param>
        /// <param name="useFullText">
        /// The use full text.
        /// </param>
        /// <param name="searchDisplayName">
        /// The search display name.
        /// </param>
        /// <param name="includeChildren">
        /// The include children.
        /// </param>
        /// <param name="culture">
        /// The culture.
        /// </param>
        /// <returns>
        /// The <see cref="T:System.Data.DataTable"/>.
        /// </returns>
        /// <exception cref="ArgumentOutOfRangeException">
        /// </exception>
        public static DataTable GetSearchResult(
            int? mid,
            string toSearchWhat,
            string toSearchFromWho,
            SearchWhatFlags searchFromWhoMethod,
            SearchWhatFlags searchWhatMethod,
            List<int> categoryId,
            List<int> forumIdToStartAt,
            int userId,
            int boardId,
            int maxResults,
            bool useFullText,
            bool searchDisplayName,
            bool includeChildren,
            string culture)
        {
            string dataEngine;
            string connectionString;
            string namePattern = string.Empty;
            SqlDbAccess.GetConnectionData(mid, namePattern, out dataEngine, out connectionString);

            // New access
            /*  if (toSearchWhat == "*")
              {
                  toSearchWhat = string.Empty;
              }

              IEnumerable<int> forumIds = new List<int>();

              if (forumIdToStartAt != 0)
              {
                  forumIds = ForumListAll(boardId, userID, forumIdToStartAt).Select(f => f.ForumID ?? 0).Distinct();
              }

              string searchSql = new SearchBuilder().BuildSearchSql(toSearchWhat, toSearchFromWho, searchFromWhoMethod, searchWhatMethod, userID, searchDisplayName, boardId, maxResults, useFullText, forumIds);

              using (SqlCommand cmd = PostgreDbAccess.GetCommand(searchSql, true))
              {
                  return PostgreDbAccess.Current.GetData(cmd);
              } */

            if (toSearchWhat == "*")
            {
                toSearchWhat = string.Empty;
            }

            string forumIDs = string.Empty;
            string categoriesIds = string.Empty;
            DataTable dt = null;
            if ((categoryId.Any() || forumIdToStartAt.Any()) && !Config.LargeForumTree)
            {
                dt = CommonDb.forum_listall_sorted(mid, boardId, userId, forumIdToStartAt.ToArray<int>());
            }

            if (categoryId.Any())
            {
                if (Config.LargeForumTree)
                {
                    DataTable dt1 = CommonDb.forum_cataccess_actuser(mid, boardId, userId);
                    foreach (DataRow c in dt1.Rows)
                    {
                        foreach (int c1 in categoryId)
                        {
                            if (Convert.ToInt32(c["CategoryID"]) == c1)
                            {
                                categoriesIds = categoriesIds + "," + c1;
                            }
                        }
                    }

                    categoriesIds = categoriesIds.Trim(',');
                }
                else
                {
                    if (dt != null)
                    {
                        foreach (DataRow dr in dt.Rows)
                        {
                            // if not a category
                            if (Convert.ToInt32(dr["ForumID"]) == -1)
                            {
                                categoriesIds = categoriesIds + Convert.ToInt32(dr["ForumID"]) + ",";
                            }
                        }

                        categoriesIds = categoriesIds.Substring(0, forumIDs.Length - 1);

                        categoriesIds = categoriesIds.Trim(',');
                    }
                }
            }

            if (forumIdToStartAt.Any())
            {
                if (!Config.LargeForumTree)
                {
                    if (dt != null)
                    {
                        foreach (DataRow dr in dt.Rows)
                        {
                            // if not a category
                            if (Convert.ToInt32(dr["ForumID"]) != -1)
                            {
                                forumIDs = forumIDs + Convert.ToInt32(dr["ForumID"]) + ",";
                            }
                        }

                        forumIDs = forumIDs.Substring(0, forumIDs.Length - 1);
                    }
                }
                else
                {
                    foreach (int frms in forumIdToStartAt)
                    {
                        var d1 = CommonDb.forum_ns_getch_actuser(
                            mid,
                            boardId,
                            0,
                            frms,
                            userId,
                            false,
                            false,
                            "-");

                        foreach (DataRow r in d1.Rows)
                        {
                            forumIDs += "," + r["ForumID"];
                        }

                        // Parent forum only.
                        if (!includeChildren)
                        {
                            break;
                        }
                    }

                    forumIDs = forumIDs.Trim(',');
                }
            }

            // fix quotes for SQL insertion...
            toSearchWhat = toSearchWhat.Replace("'", "''").Trim();
            toSearchFromWho = toSearchFromWho.Replace("'", "''").Trim();
            string sql;
            switch (dataEngine)
            {
                case SqlDbAccess.MsSql:
                    sql = new VZF.Data.MsSql.Search.SearchBuilder().BuildSearchSql(
                        mid,
                        toSearchWhat,
                        toSearchFromWho,
                        searchFromWhoMethod,
                        searchWhatMethod,
                        userId,
                        searchDisplayName,
                        boardId,
                        maxResults,
                        useFullText,
                        forumIDs,
                        forumIdToStartAt);
                    break;
                case SqlDbAccess.Npgsql:
                    sql = new VZF.Data.Postgre.Search.SearchBuilder().BuildSearchSql(
                        mid,
                        toSearchWhat,
                        toSearchFromWho,
                        searchFromWhoMethod,
                        searchWhatMethod,
                        userId,
                        searchDisplayName,
                        boardId,
                        maxResults,
                        useFullText,
                        categoriesIds,
                        forumIDs,
                        forumIdToStartAt, 
                        culture);
                    break;
                case SqlDbAccess.MySql:
                    sql = new VZF.Data.MySql.Search.SearchBuilder().BuildSearchSql(
                        mid,
                        toSearchWhat,
                        toSearchFromWho,
                        searchFromWhoMethod,
                        searchWhatMethod,
                        userId,
                        searchDisplayName,
                        boardId,
                        maxResults,
                        useFullText,
                        categoriesIds,
                        forumIDs,
                        forumIdToStartAt);
                    break;
                case SqlDbAccess.Firebird:
                    sql = new VZF.Data.Firebird.Search.SearchBuilder().BuildSearchSql(
                        mid,
                        toSearchWhat,
                        toSearchFromWho,
                        searchFromWhoMethod,
                        searchWhatMethod,
                        userId,
                        searchDisplayName,
                        boardId,
                        maxResults,
                        useFullText,
                        categoriesIds,
                        forumIDs,
                        forumIdToStartAt);
                    break;
                    // case SqlDbAccess.Oracle:  return VZF.Data.Oracle.Db.GetSearchResult(connectionString, toSearchWhat, toSearchFromWho, searchFromWhoMethod, searchWhatMethod, categoryId, forumIdToStartAt, userId, boardId, maxResults, useFullText, searchDisplayName, includeChildren);
                    // case SqlDbAccess.Db2:  return VZF.Data.Db2.Db.GetSearchResult(connectionString, toSearchWhat, toSearchFromWho, searchFromWhoMethod, searchWhatMethod, categoryId, forumIdToStartAt, userId, boardId, maxResults, useFullText, searchDisplayName, includeChildren);
                    // case SqlDbAccess.Other:  return VZF.Data.Other.Db.GetSearchResult(connectionString, toSearchWhat, toSearchFromWho, searchFromWhoMethod, searchWhatMethod, categoryId, forumIdToStartAt, userId, boardId, maxResults, useFullText, searchDisplayName, includeChildren);
                default:
                    throw new ArgumentOutOfRangeException(dataEngine);
            }
            DataTable dtResult;
            using (var sc = new VzfSqlCommand(mid))
            {
                if (dataEngine == SqlDbAccess.MySql)
                {
                    sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "@i_Limit", maxResults.ToString(CultureInfo.InvariantCulture)));
                }

                sc.CommandText.AppendQuery(sql);
                dtResult = sc.ExecuteDataTableFromReader(CommandBehavior.Default, CommandType.Text, true);
            }

            if (dataEngine == SqlDbAccess.MySql)
            {
                string oldUid = null;
                string oldFid = null;
                foreach (DataRow dr in dtResult.Rows)
                {
                    if (oldUid == dr["UserID"].ToString() || oldFid == dr["ForumID"].ToString())
                    {
                        continue;
                    }

                    using (var sc = new VzfSqlCommand(mid))
                    {
                        sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "@i_UserID", dr["UserID"]));
                        sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "@i_ForumID", dr["ForumID"]));
                        sc.CommandText.AppendQuery(
                            string.Format(
                                "SELECT {0}(@i_UserID,@i_ForumID);",
                                SqlDbAccess.GetVzfObjectName("vaccess_s_readaccess_combo", mid)));

                        if (Convert.ToInt32(sc.ExecuteScalar(CommandType.Text)) == 0)
                        {
                            dr.Delete();
                        }

                    }

                    oldUid = dr["UserID"].ToString();
                    oldFid = dr["ForumID"].ToString();
                }

                dtResult.AcceptChanges();
            }

            return dtResult;
        }
Exemple #19
0
        /// <summary>
        /// Gets a title for an album with specified id. 
        /// </summary>
        /// <param name="mid">
        /// The module ID.
        /// </param>
        /// <param name="albumId">
        /// The album Id.
        /// </param>
        /// <returns>
        /// Returns a <see cref="T:System.String"/> with album title.
        /// </returns>
        public static string album_gettitle(int? mid, object albumId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(
                    sc.CreateParameter(
                        DbType.Int32,
                        "i_AlbumID",
                        (albumId == null || albumId.ToString() == "0") ? null : albumId));

                sc.CommandText.AppendObjectQuery("album_gettitle", mid);
                return sc.ExecuteScalar(CommandType.StoredProcedure).ToString();
            }
        }
Exemple #20
0
        /// <summary>
        /// The group_save.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="groupId">
        /// The group id.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <param name="isAdmin">
        /// The is admin.
        /// </param>
        /// <param name="isGuest">
        /// The is guest.
        /// </param>
        /// <param name="isStart">
        /// The is start.
        /// </param>
        /// <param name="isModerator">
        /// The is moderator.
        /// </param>
        /// <param name="isHidden">
        /// The is hidden.
        /// </param>
        /// <param name="accessMaskId">
        /// The access mask id.
        /// </param>
        /// <param name="pmLimit">
        /// The pm limit.
        /// </param>
        /// <param name="style">
        /// The style.
        /// </param>
        /// <param name="sortOrder">
        /// The sort order.
        /// </param>
        /// <param name="description">
        /// The description.
        /// </param>
        /// <param name="usrSigChars">
        /// The usr sig chars.
        /// </param>
        /// <param name="usrSigBbCodes">
        /// The usr sig bb codes.
        /// </param>
        /// <param name="usrSigHtmlTags">
        /// The usr sig html tags.
        /// </param>
        /// <param name="usrAlbums">
        /// The usr albums.
        /// </param>
        /// <param name="usrAlbumImages">
        /// The usr album images.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="isUserGroup">
        /// The is user group.
        /// </param>
        /// <param name="personalForumsNumber">
        /// The personal forums number.
        /// </param>
        /// <param name="personalAccessMasksNumber">
        /// The personal access masks number.
        /// </param>
        /// <param name="personalGroupsNumber">
        /// The personal groups number.
        /// </param>
        /// <returns>
        /// The <see cref="long"/>.
        /// </returns>
        public static long group_save(
            int? mid,
            object groupId,
            object boardId,
            object name,
            object isAdmin,
            object isGuest,
            object isStart,
            object isModerator,
            object isHidden,
            object accessMaskId,
            object pmLimit,
            object style,
            object sortOrder,
            object description,
            object usrSigChars,
            object usrSigBbCodes,
            object usrSigHtmlTags,
            object usrAlbums,
            object usrAlbumImages,
            object userId,
            object isUserGroup,
            object personalForumsNumber,
            object personalAccessMasksNumber,
            object personalGroupsNumber)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_GroupID", groupId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_BoardID", boardId));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Name", name));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsAdmin", isAdmin));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsGuest", isGuest));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsStart", isStart));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsModerator", isModerator));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsHidden", isHidden));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_AccessMaskID", accessMaskId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_PMLimit", pmLimit));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Style", style));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SortOrder", sortOrder));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Description", description));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UsrSigChars", usrSigChars));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UsrSigBBCodes", usrSigBbCodes));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UsrSigHTMLTags", usrSigHtmlTags));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UsrAlbums", usrAlbums));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UsrAlbumImages", usrAlbumImages));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UserID", userId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_IsUserGroup", isUserGroup));
                sc.Parameters.Add(
                    sc.CreateParameter(DbType.Int32, "i_PersonalAccessMasksNumber", personalAccessMasksNumber));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_PersonalGroupsNumber", personalGroupsNumber));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_PersonalForumsNumber", personalForumsNumber));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                sc.CommandText.AppendObjectQuery("group_save", mid);
                return Convert.ToInt64(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #21
0
        /// <summary>
        /// The shoutbox_clearmessages.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public static bool shoutbox_clearmessages(int? mid, int boardId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_BoardId", boardId));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_UTCTIMESTAMP", DateTime.UtcNow));

                sc.CommandText.AppendObjectQuery("shoutbox_clearmessages", mid);
                return Convert.ToBoolean(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #22
0
        /// <summary>
        /// The medal_save.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="boardId">
        /// The board id.
        /// </param>
        /// <param name="medalId">
        /// The medal id.
        /// </param>
        /// <param name="name">
        /// The name.
        /// </param>
        /// <param name="description">
        /// The description.
        /// </param>
        /// <param name="message">
        /// The message.
        /// </param>
        /// <param name="category">
        /// The category.
        /// </param>
        /// <param name="medalUrl">
        /// The medal url.
        /// </param>
        /// <param name="ribbonUrl">
        /// The ribbon url.
        /// </param>
        /// <param name="smallMedalUrl">
        /// The small medal url.
        /// </param>
        /// <param name="smallRibbonUrl">
        /// The small ribbon url.
        /// </param>
        /// <param name="smallMedalWidth">
        /// The small medal width.
        /// </param>
        /// <param name="smallMedalHeight">
        /// The small medal height.
        /// </param>
        /// <param name="smallRibbonWidth">
        /// The small ribbon width.
        /// </param>
        /// <param name="smallRibbonHeight">
        /// The small ribbon height.
        /// </param>
        /// <param name="sortOrder">
        /// The sort order.
        /// </param>
        /// <param name="flags">
        /// The flags.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        public static bool medal_save(
            int? mid,
            object boardId,
            object medalId,
            object name,
            object description,
            object message,
            object category,
            object medalUrl,
            object ribbonUrl,
            object smallMedalUrl,
            object smallRibbonUrl,
            object smallMedalWidth,
            object smallMedalHeight,
            object smallRibbonWidth,
            object smallRibbonHeight,
            object sortOrder,
            object flags)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                int sortOrderOut;
                bool result = Int32.TryParse(sortOrder.ToString(), out sortOrderOut);
                if (result)
                {
                    if (sortOrderOut >= 255)
                    {
                        sortOrderOut = 0;
                    }
                }
                else
                {
                    sortOrderOut = 0;
                }

                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_BoardID", boardId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_MedalID", medalId));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Name", name));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Description", description));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Message", message));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_Category", category));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_MedalURL", medalUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_RibbonURL", ribbonUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_SmallMedalURL", smallMedalUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_SmallRibbonURL", smallRibbonUrl));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SmallMedalWidth", smallMedalWidth));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SmallMedalHeight", smallMedalHeight));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SmallRibbonWidth", smallRibbonWidth));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SmallRibbonHeight", smallRibbonHeight));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_SortOrder", sortOrderOut));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_Flags", flags));

                sc.CommandText.AppendObjectQuery("medal_save", mid);
                return Convert.ToBoolean(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #23
0
Fichier : DB.cs Projet : vzrus/VZF
        public int DeleteInactiveProfiles(string connectionStringName, object appName, object inactiveSinceDate)
        {
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ApplicationName", appName));
                sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_InactiveSinceDate", inactiveSinceDate));

                sc.CommandText.AppendObjectQuery("prov_profile_deleteinactive", connectionStringName);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure, false));
            }
        }
Exemple #24
0
        /// <summary>
        /// The message_ remove thanks.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="fromUserId">
        /// The from user id.
        /// </param>
        /// <param name="messageId">
        /// The message id.
        /// </param>
        /// <param name="useDisplayName">
        /// The use display name.
        /// </param>
        /// <returns>
        /// The <see cref="string"/>.
        /// </returns>
        public static string message_RemoveThanks(int? mid, object fromUserId, object messageId, bool useDisplayName)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_FromUserID", fromUserId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_MessageID", messageId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_UseDisplayName", useDisplayName));

                sc.CommandText.AppendObjectQuery("message_removethanks", mid);
                return sc.ExecuteScalar(CommandType.StoredProcedure).ToString();
            }
        }
Exemple #25
0
Fichier : DB.cs Projet : vzrus/VZF
        public static int __DeleteProfiles(string connectionStringName, object appName, object userNames)
        {
            using (var sc = new VzfSqlCommand(connectionStringName))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_ApplicationName", appName)); ;
                sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_UserNames", userNames));
                sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_newguid", Guid.NewGuid()));

                sc.CommandText.AppendObjectQuery("prov_profile_deleteprofiles", connectionStringName);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure, false));
            }
        }
Exemple #26
0
        /// <summary>
        /// The message_ thanks number.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="messageId">
        /// The message id.
        /// </param>
        /// <returns>
        /// The <see cref="int"/>.
        /// </returns>  >
        public static int message_ThanksNumber(int? mid, object messageId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_MessageID", messageId));

                sc.CommandText.AppendObjectQuery("message_thanksnumber", mid);
                return Convert.ToInt32(sc.ExecuteScalar(CommandType.StoredProcedure));
            }
        }
Exemple #27
0
Fichier : DB.cs Projet : vzrus/VZF
        /*
        public  void ValidateAddColumnInProfile( string columnName, NpgsqlTypes.NpgsqlDbType columnType )
        {
            NpgsqlCommand cmd = new NpgsqlCommand( sprocName );
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add( "@ApplicationName", appName );
            cmd.Parameters.Add( "@Username", username );
            cmd.Parameters.Add( "@IsUserAnonymous", isAnonymous );

            return cmd;
        }
        */

        public static void __SetPropertyValues(
            string connectionStringName,
            SettingsContext context,
            SettingsPropertyValueCollection collection,
            List<SettingsPropertyColumn> settingsColumnsList)
        {
            bool isAuthenticated = (bool)context["IsAuthenticated"];
            string appName = (string)context["ApplicationName"];

            // sc.Add("IsAnonymous", isAnonymous);
            // sc.Add("LastActivityDate", lastActivityDate);
            if (context["UserID"] == null)
            {
                return;
            }

            var userid = (Guid)context["UserID"];
            if (collection.Count < 1)
            {
                return;
            }

            string index = string.Empty;
            string stringData = string.Empty;
            byte[] binaryData = null;
            int count = EncodeProfileData(collection, isAuthenticated, ref index, ref stringData, ref binaryData);
            if (count < 1)
            {
                return;
            }

            // save the encoded profile data to the database

             // using (TransactionScope ts = new TransactionScope())
             // {

             // either create a new user or fetch the existing user id
             Guid userId = SchemaManager.CreateOrFetchUserId(userid, isAuthenticated);
             bool profileExists = false;
    
             string table =
                              SqlDbAccess.GetVzfObjectNameFromConnectionString("prov_profile", connectionStringName);
             using (var sc1 = new VzfSqlCommand(connectionStringName))
             {

                 // cmd.Parameters.Add(new FbParameter("@I_USERID", FbDbType.VarChar)).Value = userID;
                 sc1.CommandText.AppendQuery(String.Format("SELECT COUNT(1) FROM {0} WHERE userid ='{1}';", table, new Guid(userId.ToString())));

                 profileExists = Convert.ToBoolean(sc1.ExecuteScalar(CommandType.Text, false));
                 sc1.CommandText.Clear();
             }

             var mu = Membership.GetUser(userId);

             if (profileExists)
             {
                 using (var sc = new VzfSqlCommand(connectionStringName))
                 {


                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_valueindex", index));
                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_stringdata", stringData));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Binary, "I_binarydata", binaryData));
                     sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_lastupdateddate", DateTime.UtcNow));
                     sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_lastactivitydate", mu.LastActivityDate));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_applicationid", (Guid)GetApplicationIdFromName(connectionStringName,appName)));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_isanonymous", false));
                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_username", mu.UserName));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_userId", userId));
                     sc.CommandText.AppendQuery(string.Format(
                                 @"UPDATE {0} SET valueindex = :i_valueindex,stringdata= :i_stringData,binarydata= :i_binaryData,
                                                  lastupdateddate= :i_lastupdateddate,lastactivitydate= :i_lastactivitydate,
                                                 username= :i_username WHERE userid = :i_userid and applicationid = :i_applicationid;",
                                 table));
                    int res =  sc.ExecuteNonQuery(CommandType.Text, false);
                      if (res == 0)
                     {
                         // Error
                     }
                 }
             }
             else
             {
                   using (var sc = new VzfSqlCommand(connectionStringName))
                 {

                     sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_userId", userId));
                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_valueindex", index));
                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "I_stringdata", stringData));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Binary, "I_binarydata", binaryData));
                     sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_lastupdateddate", DateTime.UtcNow));
                     sc.Parameters.Add(sc.CreateParameter(DbType.DateTime, "i_lastactivitydate", mu.LastActivityDate));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Guid, "i_applicationid", (Guid)GetApplicationIdFromName(connectionStringName,appName)));
                     sc.Parameters.Add(sc.CreateParameter(DbType.Boolean, "i_isanonymous", false));
                     sc.Parameters.Add(sc.CreateParameter(DbType.String, "i_username", mu.UserName));                    
                     sc.CommandText.AppendQuery(string.Format(@"INSERT INTO {0} 
                                                                (userid,valueindex,stringdata,binarydata,lastupdateddate,lastactivitydate,
                                                                applicationid,isanonymous,username)
                                                                VALUES (:i_userid,:i_valueindex,:i_stringData,:i_binaryData,:i_lastupdateddate,
                                                                        :i_lastactivitydate,:i_applicationid,:i_isanonymous,:i_username) ;",
                                                                                                                                           table));
                    int res =  sc.ExecuteNonQuery(CommandType.Text, false);
                      if (res == 0)
                     {
                         // Error
                     }
                 }                
             }
         }
Exemple #28
0
        /// <summary>
        /// The readtopic_lastread.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <param name="userId">
        /// The user id.
        /// </param>
        /// <param name="topicId">
        /// The topic id.
        /// </param>
        /// <returns>
        /// The <see cref="DateTime?"/>.
        /// </returns>
        public static DateTime? Readtopic_lastread(int? mid, [NotNull] object userId, [NotNull] object topicId)
        {
            using (var sc = new VzfSqlCommand(mid))
            {
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_UserID", userId));
                sc.Parameters.Add(sc.CreateParameter(DbType.Int32, "i_TopicID", topicId));

                sc.CommandText.AppendObjectQuery("readtopic_lastread", mid);
                return sc.ExecuteScalar(CommandType.StoredProcedure).ToType<DateTime?>();
            }
        }
Exemple #29
0
Fichier : DB.cs Projet : vzrus/VZF
    /// <summary>
    /// Database Action - Get Role Exists
    /// </summary>
    /// <param name="appName">
    /// Application Name
    /// </param>
    /// <param name="roleName">
    /// Role Name
    /// </param>
    /// <returns>
    /// Database containing Role Information
    /// </returns>
    public object GetRoleExists(string connectionStringName, object appName, object roleName)
    {
      using (var sc = new VzfSqlCommand(connectionStringName))
      {
          sc.Parameters.Add(sc.CreateParameter(DbType.String, "@ApplicationName", appName));
          sc.Parameters.Add(sc.CreateParameter(DbType.String, "@RoleName", roleName));

          sc.CommandText.AppendObjectQuery("prov_role_exists", connectionStringName);
          return sc.ExecuteScalar(CommandType.StoredProcedure, false);
      }
    }
Exemple #30
0
        /// <summary>
        /// The get full text supported.
        /// </summary>
        /// <param name="mid">
        /// The mid.
        /// </param>
        /// <returns>
        /// The <see cref="bool"/>.
        /// </returns>
        /// <exception cref="ApplicationException">
        /// </exception>
        public static bool GetFullTextSupported(int? mid)
        {
            string dataEngine;
            string connectionString;
            string namePattern = string.Empty;
            SqlDbAccess.GetConnectionData(mid, namePattern, out dataEngine, out connectionString);

            switch (dataEngine)
            {
                case SqlDbAccess.MsSql:
                    return VZF.Data.MsSql.Db.FullTextSupported;
                case SqlDbAccess.Npgsql:
                    return VZF.Data.Postgre.Db.FullTextSupported;
                case SqlDbAccess.MySql:
                    using (var sc = new VzfSqlCommand(mid))
                    {
                        sc.CommandText.AppendQuery("SELECT VERSION();");
                        var fullVersion = sc.ExecuteScalar(CommandType.Text).ToString();
                        var fullVersionArr = fullVersion.Trim().Split('.');
                        if (fullVersionArr[0].ToType<int>() >= 5 && fullVersionArr[1].ToType<int>() >= 6)
                        {
                            return true;
                        }
                    }

                    return false;
                case SqlDbAccess.Firebird:
                    return VZF.Data.Firebird.Db.FullTextSupported;
                    
                    // case SqlDbAccess.Oracle:  return VZF.Data.Oracle.Db.fullTextSupported;;
                    // case SqlDbAccess.Db2:  return VZF.Data.Db2.Db.fullTextSupported;;
                    // case SqlDbAccess.Other:  return VZF.Data.Other.Db.fullTextSupported;; 
                default:
                    throw new ApplicationException(string.Format("No config for Board or Object  '{0}' ", mid));
            }
        }