public static Discipline getDisciplineById(int disciplineId)
        {
            Dictionary<string, object> result = querySingleSql(""
                + "SELECT "
                    + "* "
                + "FROM "
                    + "`" + tableName + "` "
                + "WHERE "
                    + "`" + field_disciplineId + "` = " + disciplineId
            );

            if (result == null)
            {
                return null;
            }

            Discipline discipline = new Discipline(
                Convert.ToInt32(result[field_disciplineId]),
                Convert.ToString(result[field_name]),
                MeasureProvider.getMeasureById(Convert.ToInt32(result[field_measureId])),
                CategoryProvider.getCategoryById(Convert.ToInt32(result[field_categoryId]))
            );

            foreach (DisciplineSetDisciplineMapping disciplineSetDisciplineMapping in DisciplineSetDisciplineMappingProvider.getDisciplineSetDisciplineMappingsByDiscipline(discipline))
            {
                discipline.addDisciplineSetDisciplineMapping(disciplineSetDisciplineMapping);
            }

            List<Variant> variants = VariantProvider.getVariantsByDiscipline(discipline);
            foreach (Variant variant in variants)
            {
                discipline.addVariant(variant);
            }

            return discipline;
        }