internal VLLibraryQuestion CreateLibraryQuestion(VLLibraryQuestion question, short textsLanguage = /*DefaultLanguage*/ -2)
        {
            if (question == null)
            {
                throw new ArgumentNullException("question");
            }
            question.ValidateInstance();


            #region SecurityLayer
            if (this.PrincipalType == Core.PrincipalType.SystemUser)
            {
                CheckPermissions(VLPermissions.ManageSystem, VLPermissions.Developer, VLPermissions.SystemService, VLPermissions.ManageBuidingBlocks);
            }
            else
            {
                throw new VLAccessDeniedException();
            }
            #endregion


            /*Υπάρχει η κατηγορία?*/
            var category = LibrariesDal.GetLibraryQuestionCategoryById(this.AccessTokenId, question.Category);
            if (category == null)
            {
                throw new VLException(SR.GetString(SR.There_is_no_item_with_id, "LibraryQuestionCategory", question.Category));
            }

            return(LibrariesDal.CreateLibraryQuestion(this.AccessTokenId, question));
        }