Example #1
0
 public Sql2000DataAccessModel(ArchitectureModel aModel, string daName, string prefix)
     : this(aModel, daName, daName, prefix)
 {
 }
Example #2
0
 public Sql2000DataAccessModel(ArchitectureModel aModel, string daName, string daFolder, string prefix)
     : base(aModel)
 {
     m_DynamicSPs = new ArrayList();
       base.LayerName = daName;
       base.LayerFolder = daFolder;
       base.m_Prefix = prefix;
       m_DescriptionKey = "Description";
 }
Example #3
0
 public ServiceLayerModel(ArchitectureModel aModel, string slName, string slFolder, DataAccessModel daLayer)
     : base(aModel)
 {
     m_Services = new ServiceContainer();
       base.LayerName = slName;
       base.LayerFolder = slFolder;
       DataAccessLayer = daLayer;
       aModel.ServiceLayers.Add(this);
 }
Example #4
0
 // Methods
 public Sql2000DataAccessModel(ArchitectureModel aModel, string daName)
     : this(aModel, daName, daName, "sys")
 {
 }
Example #5
0
        private static void BuildDocument(ArchitectureModel archModel, string xslPath)
        {
            foreach (Sql2000DataAccessModel daLayer in archModel.DataLayers)
              {
            string result = @"<?xml version=""1.0"" encoding=""utf-8"" ?>";

            result += "<DataAccessLayer name='" + daLayer.LayerName + "' >";
            foreach (DataEntityModel entity in daLayer.Entities)
            {
              result += "<Entity name='" + entity.Name + "' description='" + entity.Description + "'  >";
              foreach (DataFieldModel field in entity.Fields)
              {
            result += "<Field name='" + field.Name + "'";
            result += " type='" + field.TypeString + "'";
            result += " allownull='" + field.AllowNull.ToString() + "'";
            result += " primarykey='" + field.IsPKField.ToString() + "'";
            result += " description='" + field.Description + "'";
            result += " />";
              }

              foreach (AssocModel assoc in entity.ChildAssocs)
              {
            string pkFields = "";
            foreach (DataFieldModel pkfield in assoc.Parent.PKFields)
            {
              if (pkFields.Length > 0)
              {
                pkFields = pkFields + ", ";
              }
              pkFields = pkFields + pkfield.Name;
            }

            string foreignFields = "";
            foreach (DataFieldModel foreignfield in assoc.ForeignFields)
            {
              if (foreignFields.Length > 0)
              {
                foreignFields = foreignFields + ", ";
              }
              foreignFields = foreignFields + foreignfield.Name;
            }

            result += "<ChildAssoc name='" + assoc.Name + "'";
            result += " parent='" + assoc.Parent.Name + "'";
            result += " child='" + entity.Name + "'";
            result += " pkfields='" + pkFields + "'";
            result += " foreignfields='" + foreignFields + "'";
            result += " />";
              }

              result += "</Entity>";
            }
            result += "</DataAccessLayer>";

            StreamWriter writer = File.CreateText(Path.Combine(archModel.SolutionFolder, daLayer.LayerName) + ".xml");
            writer.Write(result);
            writer.Flush();
            writer.Close();

            if (File.Exists(xslPath))
            {
              XslTransform xsl = new XslTransform();
              xsl.Load(xslPath);

              XmlDocument xmlDoc = new XmlDocument();
              xmlDoc.LoadXml(result);
              MemoryStream stream = new MemoryStream();
              xsl.Transform(xmlDoc, null, stream);
              stream.Position = 0;
              StreamReader reader = new StreamReader(stream);
              string resultHtml = reader.ReadToEnd();

              StreamWriter writer2 = File.CreateText(Path.Combine(archModel.SolutionFolder, daLayer.LayerName) + ".html");
              writer2.Write(resultHtml);
              writer2.Flush();
              writer2.Close();
            }
              }
        }
Example #6
0
 // Methods
 public ServiceLayerModel(ArchitectureModel aModel, string slName, DataAccessModel daLayer)
     : this(aModel, slName, string.Empty, daLayer)
 {
 }
Example #7
0
 // Methods
 public Oracle8DataAccessModel(ArchitectureModel aModel, string daName)
     : this(aModel, daName, daName, "sys")
 {
 }
Example #8
0
 // Methods
 public BusinessDocLayerModel(ArchitectureModel aModel, string slName)
     : this(aModel, slName, slName)
 {
 }
Example #9
0
 // Methods
 public DataAccessModel(ArchitectureModel aModel)
     : base(aModel)
 {
     m_Prefix = "sys";
       m_Entities = new DataEntityContainer();
       m_Assocs = new AssocModelContainer();
       m_DataContextName = "DataContext";
       m_ConfigKey = "AppDatabase";
       aModel.DataLayers.Add(this);
 }
Example #10
0
 // Methods
 public LayerModel(ArchitectureModel aModel)
 {
     Parent = aModel;
 }
Example #11
0
 // Methods
 public CSharpUtilityGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
 }
Example #12
0
 // Methods
 public CSharpBusinessServiceGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
 }
Example #13
0
 // Methods
 public CSharpBusinessHostGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
 }
Example #14
0
 // Methods
 public Sql2000DataContextGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
 }
Example #15
0
 public Oracle8DataAccessModel(ArchitectureModel aModel, string daName, string daFolder, string prefix)
     : base(aModel)
 {
     m_PackageName = "";
       base.LayerName = daName;
       base.LayerFolder = daFolder;
       base.m_Prefix = prefix;
       m_PackageName = daName;
 }
Example #16
0
 // Methods
 public VSNetGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
       m_RefAsm.Add("Helpers", "Grepton.Helpers.dll");
       m_RefAsm.Add("Diagnostics", "Grepton.Diagnostics.dll");
       m_RefAsm.Add("Runtime", "Grepton.Runtime.dll");
 }
Example #17
0
 // Methods
 public Oracle8DataContextGenerator(ArchitectureModel archModel)
 {
     m_Arch = archModel;
 }
Example #18
0
 public BusinessDocLayerModel(ArchitectureModel aModel, string slName, string slFolder)
     : base(aModel)
 {
     m_Docs = new BusinessDocContainer();
       base.LayerName = slName;
       base.LayerFolder = slFolder;
 }
Example #19
0
        // --------------------------------------------------------------------------------
        /// <summary>
        /// Builds the architecture model to be used for code generation.
        /// </summary>
        /// <returns>Architecture model.</returns>
        // --------------------------------------------------------------------------------
        public static ArchitectureModel BuildModel()
        {
            // --- Create the architecture
              ArchitectureModel archModel = new ArchitectureModel("Ndi.HelpDesk");
              //archModel.SolutionFolder = @"C:\Generated";
              archModel.SolutionFolder = @"d:\Work\_Ndi\Generated\"; //MB
              archModel.DisableBaseInterfaces = false;

              // --- Create and set up data access layer
              Sql2000DataAccessModel daLayer = new Sql2000DataAccessModel(archModel, "DataAccess", "ndihd");
              //daLayer.Connection = new SqlConnection(@"Password=ndi;Persist Security Info=True;User ID=ndi;Initial Catalog=Ndi;Data Source=NDISQL\NDISQL");
              //MB
              daLayer.Connection =
            new SqlConnection(
              @"Password=NdiUser;Persist Security Info=True;User ID=NdiUser;Initial Catalog=NdiHelpDeskGenerated;Data Source=(local)");
              daLayer.DescriptionKey = "MS_Description";

              #region Számláló

              // --- New Entity: Template
              DataEntityModel tblCounter = daLayer.NewTable("Counter").Descr("Látogatók száma");
              tblCounter += New.Field("nID", "int").PK.Descr("Azonosító");
              tblCounter += New.Field("nCount", "int").NotNull.Disp.Descr("Látogatók száma");

              #endregion

              #region Kérdõívek, sablonok általános része

              // ezek az entitások kiemelhetõek a rendszerbõl

              // --- New Entity: Template
              DataEntityModel tblTemplate = daLayer.NewTable("Template").Descr("Kérdõív sablonok");
              tblTemplate += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblTemplate += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Sablon neve");
              tblTemplate +=
            New.Field("nPublicityLevel", "int").NotNull.Descr(
              "Publikussági szint P: publikus minden felhasználónak, R: csak regisztrált felhasználók, O: csak saját szervezet felhasználói");
              tblTemplate += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              // --- New Entity: TemplateDetail
              DataEntityModel tblTemplateDetail =
            daLayer.NewTable("TemplateDetail").Descr("Kérdõív sablonok részletei, a kérdések definíciója");
              tblTemplateDetail += New.Field("cID", "varchar(50)").PK.Descr("Kérdés beszédes azonosítója");
              tblTemplateDetail += New.Field("uTemplateRef", "uniqueidentifier").PK.Descr("Sablon referencia");
              tblTemplateDetail.Relate("DetailOfTemplate", tblTemplate, true, "uTemplateRef");
              tblTemplateDetail += New.Field("cQuestion", "text").NotNull.Descr("Kérdés szövege");
              tblTemplateDetail +=
            New.Field("cDataType", "varchar(50)").NotNull.Descr("Kérdés adat típusa (szöveg, választólista, dátum, stb.)");
              tblTemplateDetail +=
            New.Field("cLayout", "varchar(50)").NotNull.Descr(
              "Kérdés megjelenítési típusa (szöveg, választólista, dátum, stb.)");
              tblTemplateDetail += New.Field("cConstraint", "text").Null.Descr("Kérdéshez tartozó validációs információk");
              tblTemplateDetail += New.Field("cItemList", "text").Null.Descr("Választólista esetén a lista elemei");
              tblTemplateDetail += New.Field("cDescription", "text").Null.Descr("Kérdés leírása (súgó)");
              tblTemplateDetail +=
            New.Field("nOrder", "int").Null.Descr("Kérdés sorszáma, ez a mezõ határozza meg a kérdések sorrendjét");
              tblTemplateDetail += New.Field("nPageIndex", "int").NotNull.Descr("Kérdés melyik lapon van");
              tblTemplateDetail += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblTemplateDetail +=
            New.Field("bIsFilterCondition", "bit").NotNull.Def("0").Descr("A kérdés szerepelhet-e, mint keresési feltétel?");
              // ---<End of fields>

              // --- New Entity: TemplatePage
              DataEntityModel tblTemplatePage = daLayer.NewTable("TemplatePage").Descr("Kérdõív sablon lapjai");
              tblTemplatePage += New.Field("uTemplateRef", "uniqueidentifier").PK.Descr("Sablon referencia");
              tblTemplatePage.Relate("PageOfTemplate", tblTemplate, true, "uTemplateRef");
              tblTemplatePage += New.Field("nPageIndex", "int").PK.Descr("Lap sorszáma");
              tblTemplatePage += New.Field("cName", "varchar(500)").NotNull.Disp.Descr("Lap neve");
              tblTemplatePage +=
            New.Field("bIsActive", "bit").NotNull.Def("1").Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              // --- New Entity: QuestionForm
              DataEntityModel tblQuestionForm = daLayer.NewTable("QuestionForm").Descr("Kitöltött kérdõív fejlécek");
              tblQuestionForm += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblQuestionForm += New.Field("uTemplateRef", "uniqueidentifier").NotNull.Descr("Sablon referencia");
              // nonclustered index
              tblQuestionForm += New.Field("dLastModifiedDate", "datetime").Null.Descr("Az utolsó módosítás idõpontja");
              tblQuestionForm += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              tblQuestionForm += New.Field("bIsActual", "bit").NotNull.Def("0").Descr("Naprakész");
              tblQuestionForm += New.Field("dLastModifiedByUser", "datetime").Null.Descr("Az utolsó módosítás idõpontja, amit az user csinált");

              tblQuestionForm += New.Field("dLastValidationDate", "datetime").Null.Descr("Utolsó validáció idopontja");

              tblQuestionForm.Relate("QuestionFormOfTemplate", "TemplateByQuestionForm", tblTemplate, true, "uTemplateRef");
              // ---<End of fields>

              // --- New Entity: QuestionFormDetail
              DataEntityModel tblQuestionFormDetail =
            daLayer.NewTable("QuestionFormDetail").Descr("Kitöltött kérdõív részletek");
              tblQuestionFormDetail +=
            New.Field("uQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, melyhez a válasz tartozik");
              tblQuestionFormDetail.Relate("DetailOfQuestionForm", tblQuestionForm, true, "uQuestionFormRef");
              tblQuestionFormDetail +=
            New.Field("cTemplateDetailRef", "varchar(50)").PK.Descr("Kérdés sablon, melyhez a válasz tartozik"); //PK
              tblQuestionFormDetail += New.Field("uTemplateRef", "uniqueidentifier").PK.Descr("Sablon referencia");
              // ez legyen clustered
              tblQuestionFormDetail.Relate("TemplateDetailOfQuestionFormDetail", tblTemplateDetail, true, "cTemplateDetailRef",
                                   "uTemplateRef");
              tblQuestionFormDetail += New.Field("cAnswer", "text").NotNull.Disp.Descr("A kérdésre adott válasz");
              tblQuestionFormDetail +=
            New.Field("uFreetextId", "uniqueidentifier").NotNull.Def("newid()").Descr(
              "A freetext indexhez egyedi azonosító.");
              // ---<End of fields>

              // --- New Entity: PendingQuestionForm
              DataEntityModel tblPendingQuestionForm =
            daLayer.NewTable("PendingQuestionForm").Descr("Módosítás alatti kérdõív fejlécek");
              tblPendingQuestionForm += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblPendingQuestionForm += New.Field("uQuestionFormRef", "uniqueidentifier").Null.Descr("Kérdõív azonosító");
              tblPendingQuestionForm.Relate("PendingQFOfQuestionForm", tblQuestionForm, false, "uQuestionFormRef");
              tblPendingQuestionForm += New.Field("uTemplateRef", "uniqueidentifier").NotNull.Descr("Sablon referencia");
              // nonclustered index
              tblPendingQuestionForm.Relate("PendingQuestionFormOfTemplate", "TemplateByQuestionForm", tblTemplate, true,
                                    "uTemplateRef");
              tblPendingQuestionForm += New.Field("cStatus", "char(3)").NotNull.Descr("A kérdõív státusza");
              tblPendingQuestionForm +=
            New.Field("cSentBy", "varchar(50)").Null.Descr("A mentést készítõ felhasználó login neve");
              tblPendingQuestionForm += New.Field("dSentDate", "datetime").Null.Descr("A mentés készítésének idõpontja");
              tblPendingQuestionForm +=
            New.Field("cDecidedBy", "varchar(50)").Null.Descr("A jóváhagyást végzõ felhasználó login neve");
              tblPendingQuestionForm += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              tblPendingQuestionForm += New.Field("cRejectComment", "varchar(1000)").Null.Descr("Elutasítás indoklása");
              tblPendingQuestionForm += New.Field("bIsActual", "bit").NotNull.Def("0").Descr("Naprakész");
              tblPendingQuestionForm += New.Field("dLastModifiedByUser", "datetime").Null.Descr("Az utolsó módosítás idõpontja, amit az user csinált");
              tblPendingQuestionForm += New.Field("dLastValidationDate", "datetime").Null.Descr("Utolsó validáció idopontja");

              // ---<End of fields>

              // --- New Entity: PendingQuestionFormDetail
              DataEntityModel tblPendingQuestionFormDetail =
            daLayer.NewTable("PendingQuestionFormDetail").Descr("Módosítás alatti kérdõív részletek");
              tblPendingQuestionFormDetail +=
            New.Field("uQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, melyhez a válasz tartozik");
              tblPendingQuestionFormDetail.Relate("DetailOfPendingQuestionForm", tblPendingQuestionForm, true,
                                          "uQuestionFormRef");
              tblPendingQuestionFormDetail +=
            New.Field("cTemplateDetailRef", "varchar(50)").PK.Descr("Kérdés sablon, melyhez a válasz tartozik"); //PK
              tblPendingQuestionFormDetail += New.Field("uTemplateRef", "uniqueidentifier").PK.Descr("Sablon referencia");
              // ez legyen clustered
              tblPendingQuestionFormDetail.Relate("TemplateDetailOfPendingQuestionFormDetail", tblTemplateDetail, true,
                                          "cTemplateDetailRef", "uTemplateRef");
              tblPendingQuestionFormDetail += New.Field("cAnswer", "text").NotNull.Disp.Descr("A kérdésre adott válasz");
              // ---<End of fields>

              #endregion

              #region szervezet, user

              // --- New Entity: OrganisationForm
              DataEntityModel tblOrganisationForm = daLayer.NewTable("OrganisationForm").Descr("Szervezeti formák szótára");
              tblOrganisationForm += New.Field("cID", "char(10)").PK.Descr("Szervezeti forma kódja");
              tblOrganisationForm += New.Field("cName", "varchar(250)").CK.NotNull.Disp.Descr("Szervezeti forma megnevezése");
              tblOrganisationForm += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              // --- New Entity: WorkingArea
              DataEntityModel tblWorkingArea = daLayer.NewTable("WorkingArea").Descr("Mûködési terület");
              tblWorkingArea += New.Field("cID", "char(10)").PK.Descr("Mûködési terület kódja");
              tblWorkingArea += New.Field("cName", "varchar(250)").CK.NotNull.Disp.Descr("Mûködési terület megnevezése");
              tblWorkingArea += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblWorkingArea += New.Field("bIsKef", "bit").NotNull.Def("0").Descr("Az adott kód megjelenjen e a KEF -eknél?");
              tblWorkingArea += New.Field("nRank", "int").NotNull.Def("0").Descr("Sorszám");

              // ---<End of fields>

              // --- New Entity: Qualification
              DataEntityModel tblQualification = daLayer.NewTable("Qualification").Descr("Legmagasabb iskolai végzettség");
              tblQualification += New.Field("cID", "char(10)").PK.Descr("Iskolai végzettség kódja");
              tblQualification += New.Field("cName", "varchar(250)").CK.NotNull.Disp.Descr("Iskolai végzettség megnevezése");
              tblQualification += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblQualification += New.Field("nOrder", "int").Null.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              // --- New Entity: RegionSearch
              DataEntityModel tblRegionSearch = daLayer.NewTable("RegionSearch").Descr("Kódtár tábla a régiók listájához");
              tblRegionSearch += New.Field("cRegionSearchCode", "char(10)").PK.Descr("Régió kód a térképes kereséshez");
              tblRegionSearch += New.Field("cRegionDescription", "varchar(50)").Null.Descr("Régió leírása");
              // ---<End of fields>

              // --- New Entity: Region
              DataEntityModel tblRegion = daLayer.NewTable("Region").Descr("Megyék szótára");
              tblRegion += New.Field("cID", "char(10)").PK.Descr("A megye kódja");
              tblRegion += New.Field("cName", "varchar(250)").CK.NotNull.Disp.Descr("A megye megnevezése");
              tblRegion += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblRegion += New.Field("cRegionSearchRef", "char(10)").Null.Descr("Régió kód a térképes kereséshez");
              tblRegion.Relate("RegionSearchOfRegion", tblRegionSearch, true, "cRegionSearchRef");
              // ---<End of fields>

              // --- New Entity: DistrictSearch
              DataEntityModel tblDistrictSearch =
            daLayer.NewTable("DistrictSearch").Descr("Kódtár tábla a kerületek listájához");
              tblDistrictSearch += New.Field("nDistrictSearchCode", "int").PK.Descr("Kerület kód a térképes kereséshez");
              tblDistrictSearch += New.Field("cDistrictDescription", "varchar(50)").Null.Descr("Kerület leírása");
              // ---<End of fields>

              // --- New Entity: Organisation
              DataEntityModel tblOrganisation = daLayer.NewTable("Organisation").Descr("Regisztrált szervezetek");
              tblOrganisation += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblOrganisation += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Szervezet neve");
              tblOrganisation +=
            New.Field("cDepartment", "varchar(250)").Null.Disp.Descr("Szervezet egysége (pl.: tanszék, osztály)");
              tblOrganisation += New.Field("cPostCode", "varchar(10)").NotNull.Disp.Descr("Szervezet címének irányítószáma");
              tblOrganisation += New.Field("cCity", "varchar(100)").NotNull.Disp.Descr("Szervezet címének települése");
              tblOrganisation +=
            New.Field("cAddress", "varchar(100)").NotNull.Disp.Descr("Szervezet címének utca, házszám része");
              tblOrganisation += New.Field("cRegionRef", "char(10)").Null.Disp.Descr("A megye kódja");
              tblOrganisation.Relate("RegionOfOrganisation", tblRegion, true, "cRegionRef");
              tblOrganisation += New.Field("cCountry", "varchar(100)").Null.Descr("Szervezet címének ország része");
              tblOrganisation +=
            New.Field("cMailingPostCode", "varchar(10)").Null.Descr("Szervezet levelezési címének irányítószáma");
              tblOrganisation += New.Field("cMailingCity", "varchar(100)").Null.Descr("Szervezet levelezési címének települése");
              tblOrganisation +=
            New.Field("cMailingAddress", "varchar(100)").Null.Descr("Szervezet levelezési címének utca, házszám része");
              tblOrganisation += New.Field("cPhone1", "varchar(20)").Null.Descr("Szervezet telefonszáma 1");
              tblOrganisation += New.Field("cPhone2", "varchar(20)").Null.Descr("Szervezet telefonszáma 2");
              tblOrganisation += New.Field("cPhone3", "varchar(20)").Null.Descr("Szervezet telefonszáma 3");
              tblOrganisation += New.Field("cPhoneDiscounted", "varchar(20)").Null.Descr("Kedvezményes telefonszám");
              tblOrganisation += New.Field("cFax", "varchar(20)").Null.Descr("Szervezet fax száma");
              tblOrganisation += New.Field("cEmail1", "varchar(250)").Null.Descr("Szervezet e-mail címe 1");
              tblOrganisation += New.Field("cEmail2", "varchar(250)").Null.Descr("Szervezet e-mail címe 2");
              tblOrganisation += New.Field("cEmail3", "varchar(250)").Null.Descr("Szervezet e-mail címe 3");
              tblOrganisation += New.Field("cHomePage", "varchar(250)").Null.Disp.Descr("Szervezet internet honlapja");
              tblOrganisation += New.Field("cContactName", "varchar(250)").Null.Descr("Kontakt személy neve");
              tblOrganisation += New.Field("cContactPhone", "varchar(20)").Null.Descr("Kontakt személy telefonszáma");
              tblOrganisation += New.Field("cContactEmail", "varchar(250)").Null.Descr("Kontakt személy e-mail címe");
              tblOrganisation += New.Field("cDescription", "varchar(1000)").Null.Descr("Szervezet leírása");
              tblOrganisation += New.Field("cCallingHours", "varchar(1000)").Null.Descr("Fogadóórák");
              tblOrganisation += New.Field("cOrganisationFormRef", "char(10)").NotNull.Disp.Descr("Szervezeti forma kódja");
              tblOrganisation.Relate("FormOfOrganisation", tblOrganisationForm, true, "cOrganisationFormRef");
              tblOrganisation += New.Field("nSourceGovernment", "float").NotNull.Descr("Költségvetés forrása, állami");
              tblOrganisation += New.Field("nSourceCompetition", "float").NotNull.Descr("Költségvetés forrása, pályázat");
              tblOrganisation += New.Field("nSourceSponsor", "float").NotNull.Descr("Költségvetés forrása, szponzoráció");
              tblOrganisation += New.Field("nSourceDonation", "float").NotNull.Descr("Költségvetés forrása, adomány");
              tblOrganisation += New.Field("nSourceTax", "float").NotNull.Descr("Költségvetés forrása, adó 1% felajánlás");
              tblOrganisation += New.Field("nSourceOther", "float").NotNull.Descr("Költségvetés forrása, egyéb");
              tblOrganisation +=
            New.Field("cSourceOtherName", "varchar(100)").Null.Descr("Költségvetés forrása, egyéb megnevezése");
              tblOrganisation += New.Field("cEstablishmentYear", "char(4)").Null.Descr("Szervezet alapításának éve");
              tblOrganisation += New.Field("bActivityPrevention", "bit").NotNull.Disp.Descr("Végez-e prevenciós tevékenységet?");
              tblOrganisation += New.Field("bActivityResearch", "bit").NotNull.Disp.Descr("Végez-e kutatási tevékenységet?");
              tblOrganisation +=
            New.Field("bActivityRehabilitation", "bit").NotNull.Disp.Descr("Végez-e kezelés, ellátási tevékenységet?");
              tblOrganisation += New.Field("bActivityOther", "bit").NotNull.Disp.Descr("Végez-e egyéb tevékenységet?");
              tblOrganisation += New.Field("cWorkingAreaRef", "char(10)").NotNull.Descr("Mûködési terület");
              tblOrganisation.Relate("WorkingAreaOfOrganisation", tblWorkingArea, true, "cWorkingAreaRef");
              tblOrganisation +=
            New.Field("cWorkingAreaOther", "varchar(500)").Null.Descr("Mûködési területhez kiegészítõ információ");
              tblOrganisation += New.Field("nWorkersFix", "int").NotNull.Def("0").Descr("Állandó munkatársak száma");
              tblOrganisation += New.Field("nWorkersExternal", "int").NotNull.Def("0").Descr("Külsõ munkatársak száma");
              tblOrganisation += New.Field("nWorkersVolunteer", "int").NotNull.Def("0").Descr("Önkéntesek száma");
              tblOrganisation += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");

              tblOrganisation += New.Field("nJobPsychologist", "int").NotNull.Def("0").Descr("Pszichológusok száma");
              tblOrganisation += New.Field("nJobPsychiater", "int").NotNull.Def("0").Descr("Pszichiáterek száma");
              tblOrganisation += New.Field("nJobDoctor", "int").NotNull.Def("0").Descr("Egyéb orvosok száma");
              tblOrganisation +=
            New.Field("nJobMedicalExpert", "int").NotNull.Def("0").Descr("Más egészségügyi szakemberek száma");
              tblOrganisation +=
            New.Field("nJobHealthExpert", "int").NotNull.Def("0").Descr("Egészségfejlesztési szakemberek száma");
              tblOrganisation += New.Field("nJobSociologist", "int").NotNull.Def("0").Descr("Szociológusok száma");
              tblOrganisation += New.Field("nJobSocialPolitician", "int").NotNull.Def("0").Descr("Szociálpolitikusok száma");
              tblOrganisation += New.Field("nJobSocialWorker", "int").NotNull.Def("0").Descr("Szociális munkások száma");
              tblOrganisation += New.Field("nJobSocialPedagogist", "int").NotNull.Def("0").Descr("Szociálpedagógusok száma");
              tblOrganisation += New.Field("nJobPedagogist", "int").NotNull.Def("0").Descr("Pedagógusok száma");
              tblOrganisation += New.Field("nJobManualist", "int").NotNull.Def("0").Descr("Gyógypedagógusok száma");
              tblOrganisation += New.Field("nJobLawyer", "int").NotNull.Def("0").Descr("Jogászok száma");
              tblOrganisation += New.Field("nJobPoliceman", "int").NotNull.Def("0").Descr("Rendõrök száma");
              tblOrganisation += New.Field("nJobMentalhygiene", "int").NotNull.Def("0").Descr("Mentálhigiénikusok száma");
              tblOrganisation += New.Field("nJobCultureOrganizer", "int").NotNull.Def("0").Descr("Mûvelõdésszervezõk száma");
              tblOrganisation += New.Field("nJobOther1", "int").NotNull.Def("0").Descr("Egyéb szakma 1 száma");
              tblOrganisation += New.Field("nJobOther2", "int").NotNull.Def("0").Descr("Egyéb szakma 2 száma");
              tblOrganisation += New.Field("nJobOther3", "int").NotNull.Def("0").Descr("Egyéb szakma 3 száma");
              tblOrganisation += New.Field("cJobOtherName1", "varchar(50)").Null.Descr("Egyéb szakma 1 neve");
              tblOrganisation += New.Field("cJobOtherName2", "varchar(50)").Null.Descr("Egyéb szakma 2 neve");
              tblOrganisation += New.Field("cJobOtherName3", "varchar(50)").Null.Descr("Egyéb szakma 3 neve");

              //05.04.04 - KEF -hez szükséges módosítások
              tblOrganisation +=
            New.Field("bIsKef", "bit").Null.Def("0").Disp.Descr(
              "a szervezet KEF-e.Csak olyan szervezet lehet KEF, akinek a koordináció tevékenység be van jelölve.");
              tblOrganisation += New.Field("cRegionSearchCodeRef", "char(10)").Null.Descr("Régió kód a térképes kereséshez");
              tblOrganisation.Relate("RegionSearchCodeOfOrganisation", tblRegionSearch, true, "cRegionSearchCodeRef");
              tblOrganisation += New.Field("nDistrictSearchCodeRef", "int").Null.Descr("Kerület kód a térképes kereséshez");
              tblOrganisation.Relate("DistrictSearchCodeOfOrganisation", tblDistrictSearch, true, "nDistrictSearchCodeRef");
              tblOrganisation += New.Field("cIntroduceText", "text").Null.Descr("Bemutatkozó szöveg");
              tblOrganisation += New.Field("cDrogStrategyDescription", "text").Null.Descr("Drog stratégia leírás");
              tblOrganisation += New.Field("cAreaDescription", "text").Null.Descr("Térség leírása");

              tblOrganisation += New.Field("cEstablishmentMonth", "char(2)").Null.Descr("Szervezet alapításának hónapja");
              tblOrganisation +=
            New.Field("cAreaHomePage", "varchar(250)").Null.Descr("A térség (pl. város, kerület) honlapja ");

              //07.01.26 - KEF kiegészítés - Utolsó módosítások dátumaival
              tblOrganisation += New.Field("dLastModified", "datetime").Null.Descr("Utolsó módosítás idõpontja").Def("getDate()");
              tblOrganisation +=
            New.Field("dIntroduceTextLastModified", "datetime").Null.Descr(
              "Bemutatkozás alatti Bemutatkozás utolsó módosításának idõpontja");
              tblOrganisation +=
            New.Field("dAreaDescriptionLastModified", "datetime").Null.Descr(
              "Bemutatkozás alatti Térségünkrõl utolsó módosításának idõpontja");
              tblOrganisation +=
            New.Field("dDrogStrategyLastModified", "datetime").Null.Descr("Helyi stratégia utolsó módosításának idõpontja");
              tblOrganisation +=
            New.Field("dKefMembersLastModified", "datetime").Null.Descr("KEF tagok - utolsó módosítás idõpontja");
              tblOrganisation +=
            New.Field("dKefDownloadsLastModified", "datetime").Null.Descr("Egyéb dokumentumok - utolsó módosítás idõpontja");
              tblOrganisation +=
            New.Field("dKefEventsLastModified", "datetime").Null.Descr("Események - utolsó módosítás idõpontja");

              //07.08.26 - Szervezetek, kérdoívek - validáció
              tblOrganisation +=
            New.Field("cValidationState", "varchar(50)").Null.Descr("Szervezetek, kérdoívek - validáció értéke");
              tblOrganisation += New.Field("dLastValidationDate", "datetime").Null.Descr("Utolsó validáció idopontja");
              tblOrganisation += New.Field("bIsActual", "bit").NotNull.Def("0").Descr("Naprakész");

              // ---<End of fields>

              // --- New Entity: KefContactType
              DataEntityModel tblKefContactType =
            daLayer.NewTable("KefContactType").Descr(
              "Kódtár a KEF tagok kapcsolattartójának KEF -ben betöltött tisztségérõl");
              tblKefContactType += New.Field("cID", "char(10)").PK.Descr("Titulus kódja");
              tblKefContactType += New.Field("cName", "varchar(250)").NotNull.Descr("Titulus megnevezése");
              tblKefContactType += New.Field("bMultiple", "bit").NotNull.Descr("Egy, vagy több példány lehet belõle");
              tblKefContactType += New.Field("nRank", "int").NotNull.Def("0").Descr("Sorszám");
              // ---<End of fields>

              // --- New Entity: OrgMemberOfOrg
              DataEntityModel tblOrgMemberOfOrg =
            daLayer.NewTable("OrgMemberOfOrg").Descr("Kapcsolótábla a szervezet-tagszervezet kapcsolat tárolására");
              tblOrgMemberOfOrg += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblOrgMemberOfOrg += New.Field("uOrganisationKefRef", "uniqueidentifier").NotNull.Descr("Szervezet azonosító");
              tblOrgMemberOfOrg.Relate("KefOrgOfOrg", tblOrganisation, true, "uOrganisationKefRef");
              tblOrgMemberOfOrg +=
            New.Field("uOrganisationMemberRef", "uniqueidentifier").NotNull.Descr(
              "Szervezet azonosító - tagokhoz tartozó szervezet");
              tblOrgMemberOfOrg.Relate("MemberOrgOfOrg", tblOrganisation, true, "uOrganisationMemberRef");
              tblOrgMemberOfOrg += New.Field("cContactName", "varchar(250)").Null.Descr("Kapcsolattartó neve");
              tblOrgMemberOfOrg +=
            New.Field("cContactInstitution", "varchar(250)").Null.Descr(
              "A felhasználó által megadott, a szervezettõl eltérõ intézmény név");
              tblOrgMemberOfOrg += New.Field("cContactZipCode", "varchar(250)").Null.Descr("Irányítószám");
              tblOrgMemberOfOrg += New.Field("cContactTownShip", "varchar(250)").Null.Descr("Település");
              tblOrgMemberOfOrg += New.Field("cContactAddress", "varchar(250)").Null.Descr("Utca, házszám");
              tblOrgMemberOfOrg += New.Field("cContactPhone1", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 1");
              tblOrgMemberOfOrg += New.Field("cContactPhone2", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 2");
              tblOrgMemberOfOrg += New.Field("cContactPhone3", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 3");
              tblOrgMemberOfOrg += New.Field("cContactFax", "varchar(20)").Null.Descr("Kapcsolattartó faxszáma");
              tblOrgMemberOfOrg +=
            New.Field("cContactPosition", "varchar(250)").Null.Descr("Kapcsolattartó beosztása a képviselt intézményben");
              tblOrgMemberOfOrg +=
            New.Field("cContactPositionInKef", "varchar(250)").Null.Descr("Kapcsolattartó beosztása a KEF - ben");
              tblOrgMemberOfOrg += New.Field("cContactQualification", "varchar(250)").Null.Descr("Kapcsolattartó képzettsége");
              tblOrgMemberOfOrg += New.Field("cContactEmail1", "varchar(250)").Null.Descr("Kapcsolattartó email címe 1");
              tblOrgMemberOfOrg += New.Field("cContactEmail2", "varchar(250)").Null.Descr("Kapcsolattartó email címe 2");
              tblOrgMemberOfOrg += New.Field("cContactEmail3", "varchar(250)").Null.Descr("Kapcsolattartó email címe 3");
              tblOrgMemberOfOrg += New.Field("cKefContactTypeRef", "char(10)").Disp.Descr("KEF tag tisztségét leíró azonosító");
              tblOrgMemberOfOrg.Relate("KefContactTypeOfMember", tblKefContactType, true, "cKefContactTypeRef");
              // ---<End of fields>

              // --- New Entity: OrgOwnMember
              DataEntityModel tblOrgOwnMember = daLayer.NewTable("OrgOwnMember").Descr("Szervezet (KEF) saját tagjai");
              tblOrgOwnMember += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblOrgOwnMember +=
            New.Field("uOrganisationKefRef", "uniqueidentifier").NotNull.Descr(
              "Szervezet (KEF) azonosító amelyhez a saját tagot rögzíteni akarjuk");
              tblOrgOwnMember.Relate("OrgOwnMemberOfOrg", tblOrganisation, true, "uOrganisationKefRef");
              tblOrgOwnMember += New.Field("cOrganisationName", "varchar(250)").NotNull.Descr("Szervezet neve");
              tblOrgOwnMember += New.Field("cOrganisationDepartment", "varchar(250)").Null.Descr("Szervezeti egység");
              tblOrgOwnMember += New.Field("cOrganisationPostCode", "varchar(10)").Null.Descr("Szervezet irányító száma");
              tblOrgOwnMember += New.Field("cOrganisationCity", "varchar(100)").Null.Descr("Szervezet város");
              tblOrgOwnMember += New.Field("cOrganisationAddress", "varchar(100)").Null.Descr("Szervezet címe");
              tblOrgOwnMember += New.Field("cContactName", "varchar(250)").NotNull.Descr("Szervezet képviselõje");
              tblOrgOwnMember += New.Field("cContactType", "varchar(100)").Null.Descr("Szervezet képviselõjének titulusa");
              tblOrgOwnMember +=
            New.Field("cContactPosition", "varchar(250)").Null.Descr("Képviselõ beosztása a képviselt szervezetben");
              tblOrgOwnMember +=
            New.Field("cContactPositionInKef", "varchar(250)").Null.Descr("Kapcsolattartó beosztása a KEF - ben");
              tblOrgOwnMember += New.Field("cContactQualification", "varchar(250)").Null.Descr("Kapcsolattartó végzettsége");
              tblOrgOwnMember +=
            New.Field("cMailingInstitution", "varchar(250)").Null.Descr(
              "A felhasználó által megadott, a szervezettõl eltérõ intézmény név (Levelezési cím)");
              tblOrgOwnMember += New.Field("cMailingZipCode", "varchar(250)").Null.Descr("Irányítószám");
              tblOrgOwnMember += New.Field("cMailingTownShip", "varchar(250)").Null.Descr("Település");
              tblOrgOwnMember += New.Field("cMailingAddress", "varchar(250)").Null.Descr("Utca, házszám");
              tblOrgOwnMember += New.Field("cContactPhone1", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 1");
              tblOrgOwnMember += New.Field("cContactPhone2", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 2");
              tblOrgOwnMember += New.Field("cContactPhone3", "varchar(20)").Null.Descr("Kapcsolattartó telefonszáma 3");
              tblOrgOwnMember += New.Field("cContactFax", "varchar(20)").Null.Descr("Kapcsolattartó faxszáma");
              tblOrgOwnMember += New.Field("cContactEmail1", "varchar(250)").Null.Descr("Kapcsolattartó email címe 1");
              tblOrgOwnMember += New.Field("cContactEmail2", "varchar(250)").Null.Descr("Kapcsolattartó email címe 2");
              tblOrgOwnMember += New.Field("cContactEmail3", "varchar(250)").Null.Descr("Kapcsolattartó email címe 3");
              // ---<End of fields>

              // --- New Entity: KefFileType
              DataEntityModel tblKefFileType = daLayer.NewTable("KefFileType").Descr("KEF fájl típus kódtár");
              tblKefFileType += New.Field("cID", "char(10)").PK.Descr("Azonosító kód");
              tblKefFileType += New.Field("cName", "varchar(250)").NotNull.Descr("Fájl típus megnevezése");
              tblKefFileType += New.Field("bIsStrategy", "bit").NotNull.Descr("KEF drog stratégia letöltéshez tartozó fájl");
              tblKefFileType += New.Field("bIsOtherDocument", "bit").NotNull.Descr("KEF - egyéb dokumentum");
              tblKefFileType += New.Field("bIsOrgAttachment", "bit").NotNull.Descr("Szervezethez tartozó dokumentum");
              tblKefFileType += New.Field("nRank", "int").NotNull.Def("0").Descr("Sorszám");
              // ---<End of fields>

              // --- New Entity: OrganisationAttachment
              DataEntityModel tblOrgAttachment = daLayer.NewTable("OrganisationAttachment").Descr("Szervezethez csatolt fájlok");
              tblOrgAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblOrgAttachment +=
            New.Field("uOrganisationRef", "uniqueidentifier").Disp.Descr("Szervezet, melyhez a fájl tartozik");
              tblOrgAttachment.Relate("AttachmentOfOrganisation", tblOrganisation, true, "uOrganisationRef");
              tblOrgAttachment += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblOrgAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt fájl neve, cím");
              tblOrgAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblOrgAttachment += New.Field("cAuthor", "varchar(1000)").Null.Descr("Szerzõk");
              tblOrgAttachment += New.Field("cPublisher", "varchar(500)").Null.Descr("Kiadó");
              tblOrgAttachment += New.Field("cPublishedYear", "char(4)").Null.Descr("Megjelenés éve");
              tblOrgAttachment += New.Field("cKeywords", "varchar(100)").Null.Descr("Kulcsszavak");
              tblOrgAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblOrgAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblOrgAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?");
              tblOrgAttachment += New.Field("cKefFileTypeRef", "char(10)").Null.Descr("Fájl típusa");
              tblOrgAttachment += New.Field("nRank", "int").NotNull.Descr("Sorrendbeli hely");

              tblOrgAttachment.Relate("KefFileTypeOfOrgAttachment", tblKefFileType, true, "cKefFileTypeRef");
              // ---<End of fields>

              // --- New Entity: KefEvent
              DataEntityModel tblKefEvent = daLayer.NewTable("KefEvent").Descr("KEF események");
              tblKefEvent += New.Field("uOrganisationRef", "uniqueidentifier").Disp.Descr("Szervezet, melyhez a fájl tartozik");
              tblKefEvent.Relate("OrganisationOfKefEvent", tblOrganisation, true, "uOrganisationRef");
              tblKefEvent += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblKefEvent += New.Field("cName", "varchar(250)").NotNull.Descr("Név");
              tblKefEvent += New.Field("cLocation", "varchar(250)").NotNull.Descr("Helyszín");
              tblKefEvent += New.Field("dDate", "datetime").NotNull.Descr("Idõpont");
              tblKefEvent += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Leírás");
              tblKefEvent += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?");
              // ---<End of fields>

              // --- New Entity: KefCategory
              DataEntityModel tblKefCategory = daLayer.NewTable("KefCategory").Descr("Kódtár, melyben a kategóriákat tároljuk");
              tblKefCategory += New.Field("cID", "char(10)").PK.Descr("Kategória kódja");
              tblKefCategory += New.Field("cName", "varchar(250)").NotNull.Descr("Kategória neve");
              tblKefCategory += New.Field("bMultiple", "bit").NotNull.Descr("Egy, vagy több példány lehet belõle");
              tblKefCategory += New.Field("bDownload", "bit").NotNull.Descr("Tartozhat-e hozzá letöltés");
              // ---<End of fields>

              // --- New Entity: KefWebData
              DataEntityModel tblKefWebData =
            daLayer.NewTable("KefWebData").Descr(
              "A KEF honlapon megjelenõ általános információkat (linkek, bemutatkozás, szakanyagok, stb.) közös táblája");
              tblKefWebData += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblKefWebData += New.Field("cKefCategoryRef", "char(10)").NotNull.Descr("Kategória azonosító");
              tblKefWebData.Relate("KefCategoryOfKefWebData", tblKefCategory, true, "cKefCategoryRef");
              tblKefWebData += New.Field("cTitle", "varchar(250)").NotNull.Descr("Cím");
              tblKefWebData += New.Field("cSubTitle", "varchar(250)").Null.Descr("Alcím");
              tblKefWebData += New.Field("cShortDescription", "varchar(500)").Null.Descr("Rövid leírás");
              tblKefWebData += New.Field("cDescription", "text").Null.Descr("Szöveg");
              tblKefWebData += New.Field("cLink", "varchar(250)").Null.Descr("Link");
              tblKefWebData += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?");
              tblKefWebData += New.Field("nLinkRank", "int").NotNull.Def("0").Descr("A link sorrendje");
              tblKefWebData += New.Field("bIsManual", "bit").NotNull.Def("0").Descr("KEF kézikönyv?");
              tblKefWebData += New.Field("dCreatedDate", "DateTime").NotNull.Def("getDate()").Descr("Létrehozás dátuma");

              // ---<End of fields>

              // --- New Entity: KefDownload
              DataEntityModel tblKefDownload = daLayer.NewTable("KefDownload").Descr("Letölthetõ anyagok");
              tblKefDownload += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblKefDownload += New.Field("uKefWebDataRef", "uniqueidentifier").NotNull.Descr("KEF Weboldal azonosító");
              tblKefDownload.Relate("KefWebDataOfKefDownload", tblKefWebData, true, "uKefWebDataRef");
              tblKefDownload += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblKefDownload += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt fájl neve, cím");
              tblKefDownload += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblKefDownload += New.Field("cAuthor", "varchar(1000)").Null.Descr("Szerzõk");
              tblKefDownload += New.Field("cPublisher", "varchar(500)").Null.Descr("Kiadó");
              tblKefDownload += New.Field("cPublishedYear", "char(4)").Null.Descr("Megjelenés éve");
              tblKefDownload += New.Field("cKeywords", "varchar(100)").Null.Descr("Kulcsszavak");
              tblKefDownload += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblKefDownload += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblKefDownload += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?");
              tblKefDownload += New.Field("nRank", "int").NotNull.Descr("Sorszám");
              // ---<End of fields>

              // --- New Entity: User
              DataEntityModel tblUser = daLayer.NewTable("User").Descr("Regisztrált felhasználók");
              tblUser += New.Field("cLoginName", "varchar(50)").PK.Descr("Bejelentkezési név");
              tblUser += New.Field("cPassword", "varchar(50)").NotNull.Descr("Jelszó");
              tblUser += New.Field("cPasswordQuestion", "varchar(500)").Null.Descr("Jelszóra emlékeztetõ kérdés");
              tblUser +=
            New.Field("uOrganisationRef", "uniqueidentifier").Null.Descr("Szervezet, melyhez a felhasználó tartozik");
              tblUser.Relate("UserOfOrganisation", "OrganisationByUser", tblOrganisation, false, "uOrganisationRef");
              tblUser += New.Field("cName", "varchar(100)").NotNull.Disp.Descr("Felhasználó neve");
              tblUser += New.Field("cSex", "char(1)").NotNull.Descr("Felhasználó neme");
              tblUser += New.Field("cBirthYear", "char(4)").NotNull.Descr("Felhasználó születési éve");
              tblUser += New.Field("cPhone", "varchar(20)").Null.Descr("Felhasználó telefonszáma");
              tblUser += New.Field("cEmail", "varchar(250)").NotNull.Disp.Descr("Felhasználó e-mail címe");
              tblUser += New.Field("cPostCode", "varchar(10)").Null.Descr("Felhasználó levelezési címének irányítószáma");
              tblUser += New.Field("cCity", "varchar(100)").Null.Descr("Felhasználó levelezési címének települése");
              tblUser += New.Field("cAddress", "varchar(100)").Null.Descr("Felhasználó levelezési címének utca, házszám része");
              tblUser += New.Field("cCountry", "varchar(100)").Null.Descr("Felhasználó levelezési címének ország része");
              tblUser += New.Field("cQualificationRef", "char(10)").NotNull.Descr("Legmagasabb iskolai végzettsége");
              tblUser.Relate("QualificationOfUser", tblQualification, true, "cQualificationRef");
              tblUser += New.Field("cGraduation", "varchar(1000)").Null.Descr("Tudományos fokozat");
              tblUser += New.Field("cProfession", "varchar(1000)").Null.Descr("Szakma");
              tblUser += New.Field("cJob", "varchar(1000)").Null.Descr("Munkahely");
              tblUser += New.Field("cReasonOfRegistration", "varchar(1000)").NotNull.Descr("Adatbázis használatának célja");
              tblUser += New.Field("cRight", "char(1)").NotNull.Descr("Felhasználó jogosultsági szintje");
              tblUser += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblUser += New.Field("bNewsMail", "bit").Descr("Kapjon-e hírlevelet?");
              tblUser += New.Field("bMustChangePassword", "bit").Descr("Belépéskor meg kell-e változtatnia a jelszavát?");
              tblUser +=
            New.Field("bLockedOut", "bit").Descr("Sikertelen belépési kísérlet miatt a felhasználó le van-e tiltva?");
              tblUser += New.Field("nFailedAttemptCount", "int").NotNull.Def("0").Descr("Sikertelen belépési kísérletek száma");
              tblUser += New.Field("dFailedAttemptDate", "datetime").Null.Descr("Sikertelen belépési kísérlet idõpontja");
              tblUser += New.Field("cStyleSheet", "varchar(100)").Null.Descr("Kiválasztott design");
              // ---<End of fields>

              #endregion

              #region regisztrációs adatok

              // --- New Entity: RegisterOrganisation
              DataEntityModel tblRegisterOrganisation =
            daLayer.NewTable("RegisterOrganisation").Descr("Regisztrálandó szervezetek");
              tblRegisterOrganisation += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblRegisterOrganisation += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Szervezet neve");
              tblRegisterOrganisation +=
            New.Field("cDepartment", "varchar(250)").Null.Disp.Descr("Szervezet egysége (pl.: tanszék, osztály)");
              tblRegisterOrganisation +=
            New.Field("cPostCode", "varchar(10)").Null.Descr("Szervezet székhelyének irányítószáma");
              tblRegisterOrganisation += New.Field("cCity", "varchar(100)").Null.Descr("Szervezet székhelyének települése");
              tblRegisterOrganisation +=
            New.Field("cAddress", "varchar(100)").Null.Descr("Szervezet székhelyének utca, házszám része");
              tblRegisterOrganisation += New.Field("cRegionRef", "char(10)").NotNull.Descr("A megye kódja");
              tblRegisterOrganisation.Relate("RegionOfRegisterOrganisation", tblRegion, true, "cRegionRef");
              tblRegisterOrganisation += New.Field("cCountry", "varchar(100)").Null.Descr("Szervezet címének ország része");
              tblRegisterOrganisation += New.Field("cPhone1", "varchar(20)").Null.Descr("Szervezet telefonszáma 1");
              tblRegisterOrganisation += New.Field("cFax", "varchar(20)").Null.Descr("Szervezet fax száma");
              tblRegisterOrganisation += New.Field("cEmail1", "varchar(250)").Null.Descr("Szervezet e-mail címe 1");
              tblRegisterOrganisation += New.Field("cHomePage", "varchar(250)").Null.Descr("Szervezet internet honlapja");
              tblRegisterOrganisation +=
            New.Field("bActivityPrevention", "bit").NotNull.Disp.Descr("Végez-e prevenciós tevékenységet?");
              tblRegisterOrganisation +=
            New.Field("bActivityResearch", "bit").NotNull.Disp.Descr("Végez-e kutatási tevékenységet?");
              tblRegisterOrganisation +=
            New.Field("bActivityRehabilitation", "bit").NotNull.Disp.Descr("Végez-e kezelés, ellátási tevékenységet?");
              tblRegisterOrganisation += New.Field("bActivityOther", "bit").NotNull.Disp.Descr("Végez-e egyéb tevékenységet?");
              tblRegisterOrganisation += New.Field("cWorkingAreaRef", "char(10)").NotNull.Descr("Mûködési terület");
              tblRegisterOrganisation.Relate("WorkingAreaOfRegisterOrganisation", tblWorkingArea, true, "cWorkingAreaRef");
              tblRegisterOrganisation +=
            New.Field("cWorkingAreaOther", "varchar(500)").Null.Descr("Mûködési területhez kiegészítõ információ");
              tblRegisterOrganisation +=
            New.Field("cOrganisationFormRef", "char(10)").NotNull.Disp.Descr("Szervezeti forma kódja");
              tblRegisterOrganisation.Relate("FormOfRegisterOrganisation", tblOrganisationForm, true, "cOrganisationFormRef");

              tblRegisterOrganisation += New.Field("cLoginName", "varchar(50)").NotNull.Disp.Descr("Bejelentkezési név");
              tblRegisterOrganisation += New.Field("cUserName", "varchar(100)").NotNull.Disp.Descr("Felhasználó neve");
              tblRegisterOrganisation += New.Field("cUserSex", "char(1)").NotNull.Descr("Felhasználó neme");
              tblRegisterOrganisation += New.Field("cUserBirthYear", "char(4)").NotNull.Descr("Felhasználó születési éve");
              tblRegisterOrganisation += New.Field("cUserPhone", "varchar(20)").Null.Descr("Felhasználó telefonszáma");
              tblRegisterOrganisation += New.Field("cUserEmail", "varchar(250)").NotNull.Disp.Descr("Felhasználó e-mail címe");
              tblRegisterOrganisation += New.Field("cUserCountry", "varchar(100)").Null.Descr("Szervezet címének ország része");
              tblRegisterOrganisation +=
            New.Field("cUserPostCode", "varchar(10)").Null.Descr("Felhasználó levelezési címének irányítószáma");
              tblRegisterOrganisation +=
            New.Field("cUserCity", "varchar(100)").Null.Descr("Felhasználó levelezési címének települése");
              tblRegisterOrganisation +=
            New.Field("cUserAddress", "varchar(100)").Null.Descr("Felhasználó levelezési címének utca, házszám része");
              tblRegisterOrganisation +=
            New.Field("cQualificationRef", "char(10)").NotNull.Descr("Felhasználó legmagasabb iskolai végzettsége");
              tblRegisterOrganisation.Relate("QualificationOfRegisterOrganisation", tblQualification, true, "cQualificationRef");
              tblRegisterOrganisation +=
            New.Field("cReasonOfRegistration", "varchar(1000)").NotNull.Descr("Adatbázis használatának célja");

              tblRegisterOrganisation += New.Field("cStatus", "char(3)").NotNull.Disp.Descr("A regisztrálás státusza");
              tblRegisterOrganisation += New.Field("dSentDate", "datetime").NotNull.Disp.Descr("A küldés idõpontja");
              tblRegisterOrganisation +=
            New.Field("cDecidedBy", "varchar(50)").Null.Descr("A jóváhagyást végzõ felhasználó login neve");
              tblRegisterOrganisation += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              tblRegisterOrganisation += New.Field("cRejectComment", "varchar(1000)").Null.Descr("Elutasítás indoklása");
              tblRegisterOrganisation +=
            New.Field("bIsUserRegistred", "bit").NotNull.Def("0").Descr("Létezõ felhasználóhoz regisztrálunk");
              // ---<End of fields>

              // --- New Entity: RegisterUser
              DataEntityModel tblRegisterUser = daLayer.NewTable("RegisterUser").Descr("Regisztrálandó felhasználók");
              tblRegisterUser += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblRegisterUser += New.Field("cLoginName", "varchar(50)").NotNull.Disp.Descr("Bejelentkezési név");
              tblRegisterUser +=
            New.Field("uOrganisationRef", "uniqueidentifier").Null.Descr("Szervezet, melyhez a felhasználó tartozik");
              tblRegisterUser.Relate("RegisterUserOfOrganisation", "OrganisationByUser", tblOrganisation, false,
                             "uOrganisationRef");
              tblRegisterUser += New.Field("cName", "varchar(100)").NotNull.Disp.Descr("Felhasználó neve");
              tblRegisterUser += New.Field("cSex", "char(1)").NotNull.Descr("Felhasználó neme");
              tblRegisterUser += New.Field("cBirthYear", "char(4)").NotNull.Descr("Felhasználó születési éve");
              tblRegisterUser += New.Field("cPhone", "varchar(20)").Null.Descr("Felhasználó telefonszáma");
              tblRegisterUser += New.Field("cEmail", "varchar(250)").NotNull.Disp.Descr("Felhasználó e-mail címe");
              tblRegisterUser +=
            New.Field("cPostCode", "varchar(10)").Null.Descr("Felhasználó levelezési címének irányítószáma");
              tblRegisterUser += New.Field("cCity", "varchar(100)").Null.Descr("Felhasználó levelezési címének települése");
              tblRegisterUser +=
            New.Field("cAddress", "varchar(100)").Null.Descr("Felhasználó levelezési címének utca, házszám része");
              tblRegisterUser += New.Field("cCountry", "varchar(100)").Null.Descr("Felhasználó levelezési címének ország része");
              tblRegisterUser += New.Field("cQualificationRef", "char(10)").NotNull.Descr("Legmagasabb iskolai végzettsége");
              tblRegisterUser.Relate("QualificationOfRegisterUser", tblQualification, true, "cQualificationRef");
              tblRegisterUser +=
            New.Field("cReasonOfRegistration", "varchar(1000)").NotNull.Descr("Adatbázis használatának célja");
              tblRegisterUser += New.Field("cRight", "char(1)").NotNull.Disp.Descr("Felhasználó jogosultsági szintje");
              tblRegisterUser += New.Field("bNewsMail", "bit").Descr("Kapjon-e hírlevelet?");
              tblRegisterUser += New.Field("cStatus", "char(3)").NotNull.Disp.Descr("A regisztrálás státusza");
              tblRegisterUser += New.Field("dSentDate", "datetime").NotNull.Disp.Descr("A küldés idõpontja");
              tblRegisterUser += New.Field("cDecidedBy", "varchar(50)").Null.Descr("A jóváhagyást végzõ felhasználó login neve");
              tblRegisterUser += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              tblRegisterUser += New.Field("cRejectComment", "varchar(1000)").Null.Descr("Elutasítás indoklása");
              // ---<End of fields>

              #endregion

              #region Programok, szakemberek

              // --- New Entity: Expert
              DataEntityModel tblExpert = daLayer.NewTable("Expert").Descr("Szakemberek");
              tblExpert += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblExpert += New.Field("cName", "varchar(100)").NotNull.Disp.Descr("Szakember neve");
              tblExpert +=
            New.Field("cNamePrefix", "varchar(50)").Null.Disp.Descr("Név prefix, ide írja a Dr., PhD, stb. titulusokat");
              tblExpert += New.Field("cPhone1", "varchar(20)").NotNull.Disp.Descr("Szakember telefonszáma 1");
              tblExpert += New.Field("cPhone2", "varchar(20)").Null.Disp.Descr("Szakember telefonszáma 2");
              tblExpert += New.Field("cPhone3", "varchar(20)").Null.Disp.Descr("Szakember telefonszáma 3");
              tblExpert += New.Field("cFax", "varchar(20)").Null.Disp.Descr("Szakember fax száma");
              tblExpert += New.Field("cEmail1", "varchar(250)").NotNull.Disp.Descr("Szakember e-mail címe 1");
              tblExpert += New.Field("cEmail2", "varchar(250)").Null.Disp.Descr("Szakember e-mail címe 2");
              tblExpert += New.Field("cEmail3", "varchar(250)").Null.Disp.Descr("Szakember e-mail címe 3");
              tblExpert +=
            New.Field("cPostCode", "varchar(10)").NotNull.Disp.Descr("Szakember levelezési címének irányítószáma");
              tblExpert += New.Field("cCity", "varchar(100)").NotNull.Disp.Descr("Szakember levelezési címének települése");
              tblExpert +=
            New.Field("cAddress", "varchar(100)").NotNull.Disp.Descr("Szakember levelezési címének utca, házszám része");
              tblExpert +=
            New.Field("cAddressInstitute", "varchar(200)").Null.Disp.Descr("Levelezés címzett intézménye (ha nem lakcím)");
              tblExpert += New.Field("cJob", "varchar(1000)").Null.Descr("Munkahely");
              tblExpert += New.Field("cQualificationRef", "char(10)").NotNull.Disp.Descr("Legmagasabb iskolai végzettsége");
              tblExpert.Relate("QualificationOfExpert", tblQualification, true, "cQualificationRef");
              tblExpert += New.Field("cGraduation", "varchar(1000)").Null.Descr("Tudományos fokozat");
              tblExpert += New.Field("cProfession", "varchar(1000)").Null.Descr("Szakma");
              tblExpert += New.Field("cActivity", "text").Null.Descr("Szakmai tevékenység tömör összefoglalása");
              tblExpert += New.Field("cPublications", "text").Null.Descr("Publikációk");
              tblExpert += New.Field("cBiography", "text").Null.Descr("Önélatrajz");
              tblExpert += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");

              // --- New Entity: ExpertAttachment
              DataEntityModel tblExpertAttachment =
            daLayer.NewTable("ExpertAttachment").Descr("Szakemberhez csatolt önéletrajzok");
              tblExpertAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblExpertAttachment +=
            New.Field("uExpertRef", "uniqueidentifier").Disp.Descr("Szakember, melyhez az önéletrajz tartozik");
              tblExpertAttachment.Relate("AttachmentOfExpert", tblExpert, true, "uExpertRef");
              tblExpertAttachment +=
            New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt önéletrajz elérési útvonala");
              tblExpertAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt önéletrajz neve, cím");
              tblExpertAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblExpertAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblExpertAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblExpertAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>
              // ---<End of fields>

              // --- New Entity: ProgramCategory
              DataEntityModel tblProgramCategory = daLayer.NewTable("ProgramCategory").Descr("Program típusok");
              tblProgramCategory += New.Field("cId", "char(3)").PK.Descr("Program típus azonosító");
              tblProgramCategory += New.Field("cName", "varchar(50)").NotNull.Disp.Descr("Program típus név");
              tblProgramCategory += New.Field("cDescription", "varchar(500)").Null.Descr("Program típus leírása");
              tblProgramCategory +=
            New.Field("cTypeOfEntity", "char(1)").NotNull.Descr("Milyen entitáshoz tarotzik? P: program, O: szervezet");
              // ---<End of fields>

              // --- New Entity: Program
              DataEntityModel tblProgram = daLayer.NewTable("Program").Descr("Programok");
              tblProgram += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblProgram += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Program neve");
              tblProgram += New.Field("cDescription", "varchar(5000)").NotNull.Descr("Rövid leírás");
              tblProgram += New.Field("cStartDate", "char(50)").Null.Descr("Indulás dátuma");
              tblProgram += New.Field("cFinishDate", "char(50)").Null.Descr("Lezárás dátuma");
              tblProgram += New.Field("cProgramStatus", "char(10)").NotNull.Descr("Státusz");
              tblProgram += New.Field("cNonregisteredPartners", "text").Null.Descr("Nem regisztrált résztvevõ szervezetek.");
              tblProgram += New.Field("cProgramCategoryRef", "char(3)").NotNull.Disp.Descr("Program típusa");
              tblProgram.Relate("CategoryOfProgram", tblProgramCategory, true, "cProgramCategoryRef");
              tblProgram +=
            New.Field("uOrganisationRef", "uniqueidentifier").Null.Descr("Szervezet, melyhez a program tartozik");
              tblProgram.Relate("ProgramOfOrganisation", "OrganisationByProgram", tblOrganisation, true, "uOrganisationRef");
              tblProgram += New.Field("uResponsibleRef", "uniqueidentifier").Null.Descr("Program felelõse");
              tblProgram.Relate("ResponsibleOfProgram", tblExpert, false, "uResponsibleRef");
              tblProgram += New.Field("uCoordinator1Ref", "uniqueidentifier").Null.Descr("Program koordinátora");
              tblProgram.Relate("Coordinator1OfProgram", tblExpert, false, "uCoordinator1Ref");
              tblProgram += New.Field("uCoordinator2Ref", "uniqueidentifier").Null.Descr("Program koordinátora");
              tblProgram.Relate("Coordinator2OfProgram", tblExpert, false, "uCoordinator2Ref");
              //      tblProgram += New.Field("cRegionRef", "char(10)").Null.Disp.Descr("A megye kódja");
              //      tblProgram.Relate("RegionOfProgram", tblRegion, true, "cRegionRef");
              tblProgram += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblProgram += New.Field("dLastModifiedDate", "datetime").Null.Descr("Az utolsó módosítás idõpontja");
              // ---<End of fields>

              // --- New Entity: ProgramRegion
              DataEntityModel tblProgramRegion = daLayer.NewTable("ProgramRegion").Descr("Programok megyéi");
              tblProgramRegion += New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program");
              tblProgramRegion += New.Field("cRegionRef", "char(10)").PK.Descr("A megye kódja");
              tblProgramRegion.Relate("RegionOfProgram", tblProgram, true, "uProgramRef");
              tblProgramRegion.Relate("RegionRef", tblRegion, true, "cRegionRef");
              // ---<End of fields>

              // --- New Entity: ProgramPartner
              DataEntityModel tblProgramPartner = daLayer.NewTable("ProgramPartner").Descr("Programok partner szervezetei");
              tblProgramPartner += New.Field("uOrganisationRef", "uniqueidentifier").PK.Descr("Partner szervezet");
              tblProgramPartner.Relate("PartnerOrganisation", tblOrganisation, true, "uOrganisationRef");
              tblProgramPartner += New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program");
              tblProgramPartner.Relate("PartnerProgram", tblProgram, true, "uProgramRef");
              // ---<End of fields>

              // --- New Entity: ProgramParticipant
              DataEntityModel tblProgramParticipant = daLayer.NewTable("ProgramParticipant").Descr("Programok résztvevõi");
              tblProgramParticipant += New.Field("uExpertRef", "uniqueidentifier").PK.Descr("Résztvevõ szakember");
              tblProgramParticipant.Relate("ExpertParticipant", tblExpert, true, "uExpertRef");
              tblProgramParticipant += New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program");
              tblProgramParticipant.Relate("ProgramParticipant", tblProgram, true, "uProgramRef");
              // ---<End of fields>

              // --- New Entity: ProgramAttachment
              DataEntityModel tblProgramAttachment = daLayer.NewTable("ProgramAttachment").Descr("Programhoz csatolt fájlok");
              tblProgramAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblProgramAttachment +=
            New.Field("uProgramRef", "uniqueidentifier").Disp.Descr("Program, melyhez a fájl tartozik");
              tblProgramAttachment.Relate("AttachmentOfProgram", tblProgram, true, "uProgramRef");
              tblProgramAttachment += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblProgramAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt fájl neve, cím");
              tblProgramAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblProgramAttachment += New.Field("cAuthor", "varchar(1000)").Null.Descr("Szerzõk");
              tblProgramAttachment += New.Field("cPublisher", "varchar(500)").Null.Descr("Kiadó");
              tblProgramAttachment += New.Field("cPublishedYear", "char(4)").Null.Descr("Megjelenés éve");
              tblProgramAttachment += New.Field("cKeywords", "varchar(100)").Null.Descr("Kulcsszavak");
              tblProgramAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblProgramAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblProgramAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              #endregion

              #region Kérdõívek kapcsolata az üzleti adatbázissal

              // --- New Entity: TemplateCategory
              DataEntityModel tblTemplateCategory =
            daLayer.NewTable("TemplateCategory").Descr("Kérdõív sablonok és program kategóriák kapcsolata");
              tblTemplateCategory += New.Field("uTemplateRef", "uniqueidentifier").PK.Descr("Sablon referencia");
              tblTemplateCategory.Relate("TemplateCategoryOfTemplate", tblTemplate, true, "uTemplateRef");
              tblTemplateCategory += New.Field("cProgramCategoryRef", "char(3)").PK.Descr("Program típusa");
              tblTemplateCategory.Relate("TemplateCategoryOfProgramCategory", tblProgramCategory, true, "cProgramCategoryRef");
              // ---<End of fields>

              // --- New Entity: OrganisationQuestionForm
              DataEntityModel tblOrganisationQuestionForm =
            daLayer.NewTable("OrganisationQuestionForm").Descr("Szervezethez kapcsolódó kitöltött kérdõív fejlécek");
              tblOrganisationQuestionForm += New.Field("cProgramCategoryRef", "char(3)").PK.Descr("Program típusa");
              tblOrganisationQuestionForm.Relate("CategoryOfOrganisationQuestionForm", tblProgramCategory, true,
                                         "cProgramCategoryRef");
              tblOrganisationQuestionForm +=
            New.Field("uOrganisationRef", "uniqueidentifier").PK.Descr("Szervezet, melyhez a kérdõív tartozik");
              tblOrganisationQuestionForm.Relate("QuestionFormOfOrganisation", tblOrganisation, true, "uOrganisationRef");
              tblOrganisationQuestionForm +=
            New.Field("uQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, mely a szervezethez tartozik");
              tblOrganisationQuestionForm.Relate("OrganisationOfQuestionForm", tblQuestionForm, true, "uQuestionFormRef");
              // ---<End of fields>

              // --- New Entity: ProgramQuestionForm
              DataEntityModel tblProgramQuestionForm =
            daLayer.NewTable("ProgramQuestionForm").Descr("Programhoz kapcsolódó kitöltött kérdõív fejlécek");
              tblProgramQuestionForm += New.Field("cProgramCategoryRef", "char(3)").PK.Descr("Program típusa");
              tblProgramQuestionForm.Relate("CategoryOfProgramQuestionForm", tblProgramCategory, true, "cProgramCategoryRef");
              tblProgramQuestionForm +=
            New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program , melyhez a kérdõív tartozik");
              tblProgramQuestionForm.Relate("QuestionFormOfProgram", tblProgram, true, "uProgramRef");
              tblProgramQuestionForm +=
            New.Field("uQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, mely a programhoz tartozik");
              tblProgramQuestionForm.Relate("ProgramOfQuestionForm", tblQuestionForm, true, "uQuestionFormRef");
              tblProgramQuestionForm += New.Field("dLastModifiedDate", "datetime").Null.Descr("Az utolsó módosítás idõpontja");
              tblProgramQuestionForm += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              // ---<End of fields>

              // --- New Entity: OrganisationPendingQuestionForm
              DataEntityModel tblOrganisationPendingQuestionForm =
            daLayer.NewTable("OrganisationPendingQuestionForm").Descr(
              "Szervezethez kapcsolódó módosítás alatti kérdõív fejlécek");
              //tblOrganisationPendingQuestionForm += New.Field("cProgramCategoryRef", "char(3)").PK.Descr("Program típusa");
              //tblOrganisationPendingQuestionForm.Relate("CategoryOfOrganisationPendingQuestionForm", tblProgramCategory, true, "cProgramCategoryRef");
              tblOrganisationPendingQuestionForm +=
            New.Field("uOrganisationRef", "uniqueidentifier").PK.Descr("Szervezet, melyhez a kérdõív tartozik");
              tblOrganisationPendingQuestionForm.Relate("PendingQuestionFormOfOrganisation", tblOrganisation, true,
                                                "uOrganisationRef");
              tblOrganisationPendingQuestionForm +=
            New.Field("uPendingQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, mely a szervezethez tartozik");
              tblOrganisationPendingQuestionForm.Relate("OrganisationOfPendingQuestionForm", tblPendingQuestionForm, true,
                                                "uPendingQuestionFormRef");

              // ---<End of fields>

              // --- New Entity: ProgramPendingQuestionForm
              DataEntityModel tblProgramPendingQuestionForm =
            daLayer.NewTable("ProgramPendingQuestionForm").Descr("Programhoz kapcsolódó módosítás alatti kérdõív fejlécek");
              tblProgramPendingQuestionForm +=
            New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program, melyhez a kérdõív tartozik");
              tblProgramPendingQuestionForm.Relate("PendingQuestionFormOfProgram", tblProgram, true, "uProgramRef");
              tblProgramPendingQuestionForm +=
            New.Field("uPendingQuestionFormRef", "uniqueidentifier").PK.Descr("Kérdõív, mely a programhoz tartozik");
              tblProgramPendingQuestionForm.Relate("ProgramOfPendingQuestionForm", tblPendingQuestionForm, true,
                                           "uPendingQuestionFormRef");
              // ---<End of fields>

              #endregion

              #region tezaurusz

              // --- New Entity: Thesaurus
              DataEntityModel tblThesaurus = daLayer.NewTable("Thesaurus").Descr("Tezaurusz vezérszavak");
              tblThesaurus += New.Field("cKeyword", "varchar(100)").PK.Descr("Vezérszó");
              tblThesaurus += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblThesaurus += New.Field("cDescription", "varchar(1000)").Null.Descr("Megjegyzés");
              // ---<End of fields>

              // --- New Entity: ThesaurusRelation
              DataEntityModel tblThesaurusRelation = daLayer.NewTable("ThesaurusRelation").Descr("Tezaurusz kapcsolatok");
              tblThesaurusRelation += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblThesaurusRelation += New.Field("cKeywordRef", "varchar(100)").NotNull.Descr("Vezérszó");
              tblThesaurusRelation.Relate("KeywordOfRelation", tblThesaurus, true, "cKeywordRef");
              tblThesaurusRelation +=
            New.Field("cRelationType", "char(3)").NotNull.Descr(
              "Kapcsolat típusa. SIN: szinoníma, SEE: lásd még kapcsolatok, ");
              tblThesaurusRelation += New.Field("cRelatedWord", "varchar(100)").NotNull.Descr("A kapcsolódó szó");
              // ---<End of fields>

              // --- New Entity: ProgramKeyword
              DataEntityModel tblProgramKeyword = daLayer.NewTable("ProgramKeyword").Descr("Programhoz rendelt kulcsszavak");
              tblProgramKeyword += New.Field("cKeywordRef", "varchar(100)").PK.Descr("Vezérszó");
              tblProgramKeyword.Relate("KeywordOfProgram", tblThesaurus, true, "cKeywordRef");
              tblProgramKeyword += New.Field("uProgramRef", "uniqueidentifier").PK.Descr("Program, melyhez a kulcsszó tartozik");
              tblProgramKeyword.Relate("ProgramOfKeyword", tblProgram, true, "uProgramRef");
              // ---<End of fields>

              #endregion

              #region fórumok táblái

              // --- New Entity: ForumGroup
              DataEntityModel tblForumGroup = daLayer.NewTable("ForumGroup").Descr("Fórum témák");
              tblForumGroup += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblForumGroup += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Fórum téma neve");
              tblForumGroup += New.Field("bVisibleForVisitor", "bit").NotNull.Descr("Megjelenjen-e a látogatók számára?");
              tblForumGroup +=
            New.Field("bVisibleForRegistered", "bit").NotNull.Descr("Megjelenjen-e a regisztrált felhasználók számára?");
              tblForumGroup += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              // --- New Entity: ForumThread
              DataEntityModel tblForumThread = daLayer.NewTable("ForumThread").Descr("Fórum szálak");
              tblForumThread += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblForumThread += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Fórum szál neve");
              tblForumThread += New.Field("cDescription", "varchar(1000)").NotNull.Disp.Descr("Fórum szál rövid leírása");
              tblForumThread += New.Field("cCreatedBy", "varchar(250)").NotNull.Descr("Létrehozó neve");
              tblForumThread += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma");
              tblForumThread += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblForumThread += New.Field("uForumGroupRef", "uniqueidentifier").NotNull.Descr("Fórum téma");
              tblForumThread.Relate("GroupOfForumThread", tblForumGroup, true, "uForumGroupRef");
              // ---<End of fields>

              // --- New Entity: ForumItem
              DataEntityModel tblForumItem = daLayer.NewTable("ForumItem").Descr("Fórum hozzászólások");
              tblForumItem += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblForumItem += New.Field("cItemText", "varchar(6000)").NotNull.Descr("A hozzászólás szövege");
              tblForumItem += New.Field("cCreatedBy", "varchar(250)").NotNull.Descr("Létrehozó neve");
              tblForumItem += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma");
              tblForumItem += New.Field("bIsModerated", "bit").NotNull.Descr("Moderált-e?");
              tblForumItem += New.Field("uForumThreadRef", "uniqueidentifier").NotNull.Descr("Fórum szál");
              tblForumItem.Relate("ThreadOfForumItem", tblForumThread, true, "uForumThreadRef");
              // ---<End of fields>

              #endregion

              #region üzleti napló

              // --- Function entity
              DataEntityModel tblFunction =
            daLayer.NewTable("Function").Descr("A rendszer funkciói. A napló események kategorizálásához szükséges.");
              tblFunction += New.Field("cID", "varchar(128)").NotNull.PK.Descr("Azonosító");
              tblFunction += New.Field("cName", "varchar(100)").NotNull.Descr("Funkció neve");
              tblFunction += New.Field("cDescription", "varchar(1000)").Null.Descr("Leírás");
              // ---<End of fields>

              // --- Event entity
              DataEntityModel tblEvent = daLayer.NewTable("Event").Descr("Naplózott események");
              tblEvent += New.Field("nID", "int").NotNull.PK.Ident(1, 1).Descr("Azonosító");
              tblEvent += New.Field("dTimeStamp", "datetime").NotNull.Descr("Esemény idõpontja");
              tblEvent += New.Field("cSeverity", "varchar(32)").NotNull.Descr("Metódushívás sikeressége (SUCCES, FAIL)");
              tblEvent += New.Field("cSource", "varchar(128)").NotNull.Descr("");
              tblEvent.Relate("FunctionOfLogEntry", tblFunction, "cMethod");
              tblEvent += New.Field("cThreadInfo", "varchar(128)").NotNull.Descr("");
              tblEvent += New.Field("cWindowsIdentity", "varchar(64)").NotNull.Descr("");
              tblEvent += New.Field("cPrincipalName", "varchar(64)").NotNull.Descr("A metódust meghívó felhasználó neve");
              tblEvent += New.Field("cMessage", "varchar(512)").NotNull.Descr("A naplóbejegyzés szövege");
              // ---<End of fields>

              // --- EventProperty entity
              DataEntityModel tblEventProperty = daLayer.NewTable("EventProperty").Descr("Naplózott események részletei");
              tblEventProperty.Associate("EventProperty", tblEvent, "nEventID");
              tblEventProperty += New.Field("cName", "varchar(50)").PK.NotNull.Descr("Név");
              tblEventProperty += New.Field("cValue", "varchar(4000)").Null.Descr("Érték");
              // ---<End of fields>

              #endregion

              #region Általános keresés

              // --- New Entity: SearchCategory
              DataEntityModel tblSearchCategory = daLayer.NewTable("SearchCategory").Descr("Keresés típusa");
              tblSearchCategory += New.Field("cID", "char(10)").PK.Descr("Keresés típus kód");
              tblSearchCategory += New.Field("cName", "varchar(250)").CK.NotNull.Disp.Descr("Keresés típus megnevezése");

              // --- New Entity: GlobalSearch
              DataEntityModel tblGlobalSearch = daLayer.NewTable("GlobalSearch").Descr("Általános keresés");
              tblGlobalSearch += New.Field("uIDRef", "uniqueidentifier").PK.Descr("Azonosító");
              tblGlobalSearch += New.Field("cSearchCategoryRef", "char(10)").PK.Descr("Referencia a keresés típusra");
              tblGlobalSearch.Relate("TypeOfSearchCategory", tblSearchCategory, true, "cSearchCategoryRef");
              tblGlobalSearch += New.Field("cSearchText", "text").Null.Descr("Ebben a szövegben fogunk keresni");

              #endregion

              #region Továbbképzési lehetõségek ajánlásai (Continuative)

              DataEntityModel tblContinuative = daLayer.NewTable("Continuative").Descr("Továbbképzések");

              tblContinuative += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblContinuative += New.Field("cPersonName", "varchar(200)").Null.Descr("Felelõs");
              tblContinuative += New.Field("cContinuativeName", "varchar(200)").Null.Descr("Továbbképzési lehetõség neve");
              tblContinuative += New.Field("cTargetGrop", "varchar(200)").Null.Descr("Célcsoport");
              tblContinuative += New.Field("cWhere", "varchar(200)").Null.Descr("Képzés helyszíne");
              tblContinuative += New.Field("cDateTo", "varchar(200)").Null.Descr("Képzés idõtartama");
              tblContinuative += New.Field("cCondition", "varchar(1000)").Null.Descr("Részvételi feltételei");
              tblContinuative += New.Field("dDeadLine", "DateTime").Null.Descr("Jelentkezési határidõ");
              tblContinuative += New.Field("cContact", "varchar(500)").Null.Descr("Kapcsolat");
              tblContinuative += New.Field("cOuterLink", "varchar(500)").Null.Descr("Külsõ link (official)");
              tblContinuative += New.Field("uProgramRef", "uniqueidentifier").Null.Descr("Referencia a képzésre.");
              tblContinuative += New.Field("cComment", "varchar(2000)").Null.Descr("Megjegyzés");
              tblContinuative +=
            New.Field("bIsActive", "bit").NotNull.Def("1").Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblContinuative.Relate("ContinuativeOfProgram", tblProgram, "uProgramRef");

              #endregion

              #region Szótár + lásd még kapcsolatai

              #region Dictionary

              DataEntityModel tblDictionary = daLayer.NewTable("Dictionary").Descr("Szótár");

              tblDictionary += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblDictionary += New.Field("cWord", "varchar(100)").NotNull.Descr("Szó");
              tblDictionary += New.Field("cEnglish", "varchar(100)").NotNull.Descr("Angol megfelejõ");
              tblDictionary += New.Field("cMeaning", "varchar(500)").NotNull.Descr("Jelentés");
              tblDictionary += New.Field("bProfessional", "bit").NotNull.Def("0").Descr("Szakmai");
              tblDictionary += New.Field("bIsActive", "bit").NotNull.Def("1").Descr("Felkínálja-e a rendszer adatrögzítésnél?");

              #endregion

              #region DictionaryAssoc

              DataEntityModel tblDictionaryAssoc = daLayer.NewTable("DictionaryAssoc").Descr("Szótár összerendelések (lásd még)");

              tblDictionaryAssoc += New.Field("uWordID", "uniqueidentifier").NotNull.PK.Descr("Alapszó");
              tblDictionaryAssoc.Relate("WordOfDictionary", tblDictionary, "uWordID");
              tblDictionaryAssoc += New.Field("uRefWordId", "uniqueidentifier").NotNull.PK.Descr("LásdMégSzó");
              tblDictionaryAssoc.Relate("RefWordOfDictionary", tblDictionary, "uRefWordId");

              #endregion

              #endregion

              #region Tudásbázis dokumentumai (EDocument)

              #region EDocumentType

              DataEntityModel tblEDocumentType = daLayer.NewTable("EDocumentType").Descr("Dokumentum típus");

              tblEDocumentType += New.Field("cID", "char(10)").NotNull.PK.Descr("Azonosító");
              tblEDocumentType += New.Field("cName", "varchar(250)").NotNull.Descr("Név");
              tblEDocumentType += New.Field("cDescription", "varchar(500)").NotNull.Descr("Leírás");

              #endregion

              #region EDocumentCategory

              DataEntityModel tblEDocumentCategory = daLayer.NewTable("EDocumentCategory").Descr("Dokumentum kategória");

              tblEDocumentCategory += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblEDocumentCategory += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Név");
              tblEDocumentCategory += New.Field("cDescription", "varchar(500)").Null.Descr("Leírás");
              tblEDocumentCategory += New.Field("nRank", "int").NotNull.Descr("Sorrendbeli hely");
              tblEDocumentCategory += New.Field("cDocumentTypeRef", "char(10)").NotNull.Descr("Mihez tartozik ez a kategória");
              tblEDocumentCategory.Relate("TypeOfEDocumentCategory", tblEDocumentType, "cDocumentTypeRef");
              tblEDocumentCategory +=
            New.Field("bIsActive", "bit").NotNull.Def("1").Disp.Descr("Felkínálja-e a rendszer adatrögzítésnél?");

              #endregion

              #region EDocumentSubType

              DataEntityModel tblEDocumentSubType = daLayer.NewTable("EDocumentSubType").Descr("Dokumentum alkategória");

              tblEDocumentSubType += New.Field("cID", "char(10)").NotNull.PK.Descr("Azonosító");
              tblEDocumentSubType += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Név");
              tblEDocumentSubType += New.Field("cDescription", "varchar(500)").NotNull.Descr("Leírás");

              #endregion

              #region EDocumentLanguage

              DataEntityModel tblEDocumentLanguage = daLayer.NewTable("EDocumentLanguage").Descr("Elektronikus dokumentumhoz csatolt nyelvek");

              tblEDocumentLanguage += New.Field("cID", "char(3)").NotNull.PK.Descr("Nyelv kódja");
              tblEDocumentLanguage += New.Field("cName", "varchar(50)").NotNull.Descr("Nyelv megnevezése");

              #endregion

              #region EDocument

              DataEntityModel tblEDocument = daLayer.NewTable("EDocument").Descr("Elektronikus dokumentumok");

              tblEDocument += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblEDocument += New.Field("cTitle", "varchar(8000)").Null.Descr("Cím");
              tblEDocument += New.Field("cAbstract", "varchar(8000)").Null.Descr("Absztarkt");
              tblEDocument += New.Field("cLink", "varchar(500)").Null.Descr("Link");
              tblEDocument += New.Field("cAuthor", "varchar(200)").Null.Descr("Szerzõ");
              tblEDocument += New.Field("uCategoryRef", "uniqueidentifier").Null.Descr("Kategória");
              tblEDocument.Relate("CategoryOfEDocument", tblEDocumentCategory, "uCategoryRef");
              tblEDocument += New.Field("cTypeRef", "char(10)").NotNull.Descr("Típus");
              tblEDocument.Relate("TypeOfEDocument", tblEDocumentType, "cTypeRef");
              tblEDocument +=
            New.Field("cSubTypeRef", "char(10)").Null.Descr("Alkategória(csak a dokumentumoknál : könyv vagy folyóirat)");
              tblEDocument.Relate("SubTypeOfEDocument", tblEDocumentSubType, "cSubTypeRef");
              tblEDocument += New.Field("cLanguageRef", "char(3)").Null.Descr("Nyelv");
              tblEDocument.Relate("LanguageOfEDocument", tblEDocumentLanguage, "cLanguageRef");
              tblEDocument +=
            New.Field("bVisibleForVisitor", "bit").NotNull.Def("0").Descr("Megjelenjen-e a látogatók számára?");
              tblEDocument +=
            New.Field("bVisibleForRegistered", "bit").NotNull.Def("0").Descr(
              "Megjelenjen-e a regisztrált felhasználók számára?");
              tblEDocument +=
            New.Field("bIsVirtual", "bit").NotNull.Def("0").Descr(
              "Virtuáls? Azaz valójában nem létezik, csak az ajánló miatt rögzítjük.").Def("(0)");
              tblEDocument += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma.");
              tblEDocument += New.Field("dModifiedDate", "datetime").NotNull.Descr("Utolsó módosítás dátuma.");
              tblEDocument += New.Field("bIsActive", "bit").NotNull.Def("1").Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblEDocument += New.Field("cSummary", "varchar(8000)").Null.Descr("Összefoglaló");

              #endregion
              DataEntityModel tblEdocumentPicture = daLayer.NewTable("EDocumentPicture").Descr("Edokumentumhoz csatolt további képek");
              tblEdocumentPicture += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblEdocumentPicture += New.Field("cTitle", "varchar(250)").NotNull.Descr("Képaláírás");
              tblEdocumentPicture += New.Field("cPictureUrl", "varchar(250)").NotNull.Descr("Kép elérési útvonala");
              tblEdocumentPicture += New.Field("uEDocumentRef", "uniqueidentifier").NotNull.Descr("EDocumentum, melyhez a kép tartozik");
              tblEdocumentPicture.Relate("PictureOfEdocument", tblEDocument, true, "uEDocumentRef");
              #region EDocumentAttachments

              DataEntityModel tblEDocumentAttachments =
            daLayer.NewTable("EDocumentAttachments").Descr("Programhoz csatolt fileok");

              tblEDocumentAttachments += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblEDocumentAttachments +=
            New.Field("uEDocumentRef", "uniqueidentifier").NotNull.Descr("Dokumentum azonosító, amihez a file tartozik");
              tblEDocumentAttachments.Relate("AttachmentOfEDocument", tblEDocument, "uEDocumentRef");
              tblEDocumentAttachments += New.Field("cPath", "varchar(500)").NotNull.Descr("Csatolt file elérési útvonala");
              tblEDocumentAttachments += New.Field("cName", "varchar(250)").NotNull.Descr("Csatolt file neve, cím");
              tblEDocumentAttachments += New.Field("dCreatedDate", "datetime").NotNull.Descr("Feltöltés dátuma");
              tblEDocumentAttachments += New.Field("nFileSize", "int").NotNull.Descr("File méret");

              #endregion

              #region EDocumentCommendation

              DataEntityModel tblEDocumentCommendation =
            daLayer.NewTable("EDocumentCommendation").Descr("Programhoz csatolt fileok");

              tblEDocumentCommendation += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblEDocumentCommendation +=
            New.Field("uEDocumentRef", "uniqueidentifier").NotNull.Descr("Dokumentum azonosító, amihez a file tartozik");
              tblEDocumentCommendation.Relate("CommendationOfEDocument", tblEDocument, "uEDocumentRef");
              tblEDocumentCommendation += New.Field("cTitle", "varchar(200)").NotNull.Descr("Ajánló címe");
              tblEDocumentCommendation += New.Field("cMessage", "text").NotNull.Descr("Ajánló szövege");
              tblEDocumentCommendation += New.Field("cAuthor", "varchar(200)").NotNull.Descr("Ajánló szerzõje");
              tblEDocumentCommendation += New.Field("cComment", "varchar(500)").Null.Descr("Megjegyzés");
              tblEDocumentCommendation += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma.");
              tblEDocumentCommendation += New.Field("dModifiedDate", "datetime").NotNull.Descr("Utolsó módosítás dátuma.");

              #endregion

              #region EDocumentPublisher

              DataEntityModel tblEDocumentPublisher =
            daLayer.NewTable("EDocumentPublisher").Descr("Kiadvány kiadója csatolt fileok");

              tblEDocumentPublisher += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblEDocumentPublisher +=
            New.Field("uEDocumentRef", "uniqueidentifier").NotNull.Descr("Kiadvány azonosító, amihez a file tartozik");
              tblEDocumentPublisher.Relate("PublisherOfEDocument", tblEDocument, "uEDocumentRef");
              tblEDocumentPublisher += New.Field("cName", "varchar(250)").NotNull.Descr("Név");
              tblEDocumentPublisher += New.Field("nYear", "int").Null.Descr("Kiadás éve");
              tblEDocumentPublisher += New.Field("cContact", "varchar(500)").Null.Descr("Elérhetõség");
              tblEDocumentPublisher += New.Field("cLink", "varchar(500)").Null.Descr("Link");
              tblEDocumentPublisher += New.Field("dCreatedDate", "datetime").NotNull.Descr("Feltöltés dátuma");

              #endregion

              #endregion

              #region OrganisationUser

              DataEntityModel tblOrganisationUser = daLayer.NewTable("OrganisationUser").Descr("Szervezethez kapcsolódó felhasználó");

              tblOrganisationUser += New.Field("uOrganisationRef", "uniqueidentifier").NotNull.PK.Descr("Szervezet");
              tblOrganisationUser.Relate("OrganisationOfOrganisationUser", tblOrganisation, "uOrganisationRef");
              tblOrganisationUser += New.Field("cLoginNameRef", "varchar(50)").NotNull.PK.Descr("Felhasználó");
            tblOrganisationUser.Relate("UserOfOrganisationUser", tblUser, "cLoginNameRef");
              tblOrganisationUser += New.Field("cRight", "char(1)").Descr("Jogosultsági szint");

              #endregion

              #region OrganisationPendingUser

              DataEntityModel tblOrganisationPendingUser = daLayer.NewTable("OrganisationPendingUser").Descr("Szervezethez kapcsolodó elbírálandó felhasználó");

              tblOrganisationPendingUser += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Egyedi azonosító");
              tblOrganisationPendingUser += New.Field("uOrganisationRef", "uniqueidentifier").NotNull.Descr("Szervezet");
              tblOrganisationPendingUser.Relate("OrganisationOfOrganisationPendingUser", tblOrganisation, "uOrganisationRef");
              tblOrganisationPendingUser += New.Field("cLoginNameRef", "varchar(50)").NotNull.Descr("Felhasználó");
              tblOrganisationPendingUser.Relate("UserOfOrganisationPendingUser", tblUser, "cLoginNameRef");
              tblOrganisationPendingUser += New.Field("cRight", "char(1)").NotNull.Descr("Jogosultsági szint");

              tblOrganisationPendingUser += New.Field("cStatus", "char(3)").NotNull.Disp.Descr("A jóváhagyás státusza");
              tblOrganisationPendingUser += New.Field("dSentDate", "datetime").NotNull.Disp.Descr("A küldés idõpontja");
              tblOrganisationPendingUser +=
            New.Field("cDecidedBy", "varchar(50)").Null.Descr("A jóváhagyást végzõ felhasználó login neve");
              tblOrganisationPendingUser += New.Field("dDecidedDate", "datetime").Null.Descr("A jóváhagyás idõpontja");
              tblOrganisationPendingUser += New.Field("cRejectComment", "varchar(1000)").Null.Descr("Elutasítás indoklása");

              #endregion

              #region Állásajánlat hirdetés
              DataEntityModel tblJobOffer = daLayer.NewTable("JobOffer").Descr("Állásajánlat hirdetés");
              tblJobOffer += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblJobOffer += New.Field("nRefId", "int").NotNull.Ident().Descr("Referencia");

              tblJobOffer += New.Field("cDescription", "varchar(500)").NotNull.Disp.Descr("Munkakör leírása");
              tblJobOffer += New.Field("cMessage", "varchar(2000)").Null.Disp.Descr("Megjegyzés");
              tblJobOffer += New.Field("cRequirements", "varchar(2000)").Null.Disp.Descr("KÖvetelmények");
              tblJobOffer += New.Field("cCity", "varchar(100)").NotNull.Disp.Descr("Szervezet címének települése");

              tblJobOffer += New.Field("cRegionRef", "char(10)").NotNull.Disp.Descr("A megye kódja");
              tblJobOffer.Relate("RegionOfJobOffer", tblRegion, true, "cRegionRef");
              tblJobOffer += New.Field("cStatus", "char(3)").NotNull.Disp.Descr("A hirdetés státusza");
              tblJobOffer += New.Field("cQualificationMinRef", "char(10)").Null.Disp.Descr("A minimum végzettség kódja");
              tblJobOffer.Relate("QualificationOfJobOffer", tblQualification, true, "cQualificationMinRef");
              tblJobOffer += New.Field("cIdealEmployee", "varchar(500)").Null.Disp.Descr("Munkakör leírása");
              tblJobOffer += New.Field("bActivityPrevention", "bit").Null.Def("0").Disp.Descr("Végez-e prevenciós tevékenységet?");
              tblJobOffer += New.Field("bActivityResearch", "bit").Null.Def("0").Disp.Descr("Végez-e kutatási tevékenységet?");
              tblJobOffer +=
            New.Field("bActivityRehabilitation", "bit").Null.Def("0").Disp.Descr("Végez-e kezelés, ellátási tevékenységet?");
              tblJobOffer += New.Field("bActivityOther", "bit").Null.Def("0").Disp.Descr("Végez-e egyéb tevékenységet?");
              tblJobOffer += New.Field("nEmployeeCount", "int").Null.Descr("Keresett munkaerõk száma");
              tblJobOffer += New.Field("nFreeEmployeeCount", "int").Null.Descr("Betöültetlen állások száma");
              tblJobOffer += New.Field("cHomePage", "varchar(250)").Null.Descr("Szervezet internet honlapja");
              tblJobOffer += New.Field("cContactName", "varchar(250)").NotNull.Descr("Kontakt személy neve");
              tblJobOffer += New.Field("cContactPhone", "varchar(20)").NotNull.Descr("Kontakt személy telefonszáma");
              tblJobOffer += New.Field("cContactEmail", "varchar(250)").NotNull.Descr("Kontakt személy e-mail címe");

              tblJobOffer += New.Field("cSender", "varchar(50)").NotNull.Descr("User, melyhez a hirdetés tartozik");
              tblJobOffer.Relate("SenderOfJobOffer", tblUser, "cSender");
              tblJobOffer += New.Field("bNotificationSend", "bit").Null.Descr("Lejárati értesítés elment");
              tblJobOffer += New.Field("dNotificationDate", "datetime").Null.Descr("Lejárati dátum elõtti értesítés");
              tblJobOffer += New.Field("dExpiredate", "datetime").Null.Descr("Lejárati dátum");
              tblJobOffer += New.Field("dLastModified", "datetime").Null.Descr("Utolsó módosítás idõpontja");
              tblJobOffer += New.Field("dCreated", "datetime").Null.Descr("Létrehozás idõpontja");

              #endregion
              #region Álláskeresés hirdetés
              DataEntityModel tblJobFind = daLayer.NewTable("JobFind").Descr("Állásajánlat hirdetés");
              tblJobFind += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblJobFind += New.Field("nRefId", "int").NotNull.Ident().Descr("Referencia");
              tblJobFind += New.Field("cDescription", "varchar(500)").NotNull.Disp.Descr("Keresett munkakör leírása"); //OK
              tblJobFind += New.Field("cCity", "varchar(100)").Null.Disp.Descr("Hol felel meg címének települése"); //OK
              tblJobFind += New.Field("cRegionRef", "char(10)").Null.Disp.Descr("A megye kódja"); //OK
              tblJobFind.Relate("RegionOfJobFind", tblRegion, true, "cRegionRef");
              tblJobFind += New.Field("cStatus", "char(3)").NotNull.Disp.Descr("A hirdetés státusza");
              tblJobFind += New.Field("bActivityPrevention", "bit").Null.Def("0").Disp.Descr("Végez-e prevenciós tevékenységet?"); //OK
              tblJobFind += New.Field("bActivityResearch", "bit").Null.Def("0").Disp.Descr("Végez-e kutatási tevékenységet?"); //OK
              tblJobFind +=
            New.Field("bActivityRehabilitation", "bit").Null.Def("0").Disp.Descr("Végez-e kezelés, ellátási tevékenységet?"); //OK
              tblJobFind += New.Field("bActivityOther", "bit").Null.Def("0").Disp.Descr("Végez-e egyéb tevékenységet?"); //OK
              tblJobFind += New.Field("cSender", "varchar(50)").NotNull.Descr("User, melyhez a hirdetés tartozik");
              tblJobFind.Relate("SenderOfJobFind", tblUser, "cSender");
              tblJobFind += New.Field("bNotificationSend", "bit").Null.Descr("Lejárati értesítés elment");
              tblJobFind += New.Field("dNotificationDate", "datetime").Null.Descr("Lejárati dátum elõtti értesítés");
              tblJobFind += New.Field("dExpiredate", "datetime").Null.Descr("Lejárati dátum");
              tblJobFind += New.Field("dLastModified", "datetime").Null.Descr("Utolsó módosítás idõpontja");
              tblJobFind += New.Field("dCreated", "datetime").Null.Descr("Létrehozás idõpontja");

              #endregion
              #region Álláshirdetésre jelentkezés
              DataEntityModel tblJobAnswer = daLayer.NewTable("JobAnswer").Descr("Álláshirdetésre jelentkezés");
              tblJobAnswer += New.Field("uJobRef", "uniqueidentifier").NotNull.PK.Descr("Hirdetés azonosító");
              tblJobAnswer += New.Field("cType", "char(3)").NotNull.PK.Disp.Descr("A jelentkezés típsa");
              //tblJobAnswer.Relate("JobOfJobAnswers", tblDictionary, "uJobRef");
              tblJobAnswer += New.Field("cSubscriberNameRef", "varchar(50)").NotNull.PK.Descr("User, aki jelentkezett");
              tblJobAnswer.Relate("SubscriberOfJobAnswer", tblUser, "cSubscriberNameRef");
              tblJobAnswer += New.Field("cSenderNameRef", "varchar(50)").NotNull.PK.Descr("User, aki feladta");
              tblJobAnswer.Relate("SenderOfJobAnswer", tblUser, "cSenderNameRef");
              tblJobAnswer += New.Field("cMotivation", "varchar(2000)").Null.Disp.Descr("Motivációs levél");

              tblJobAnswer += New.Field("bSenderNotificationSend", "bit").Null.Descr("Jelentkezés történt értesítés elment");
              tblJobAnswer += New.Field("bSubscriberNotificationSend", "bit").Null.Descr("Lejárati értesítés az elõfizetõnek elment");
              tblJobAnswer += New.Field("dCreated", "datetime").Null.Descr("Létrehozás idõpontja");
              tblJobAnswer += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblJobAnswer += New.Field("dExpiredate", "datetime").Null.Descr("Lejárati dátum");
              #endregion
              #region Önéletrajz
              // --- New Entity: ProgramAttachment
              DataEntityModel tblUserAttachment = daLayer.NewTable("UserAttachment").Descr("Felhasználóhoz csatolt fájlok");
              tblUserAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblUserAttachment += New.Field("cLoginNameRef", "varchar(50)").NotNull.Descr("User, melyhez a file tartozik");
              tblUserAttachment.Relate("AttachementOfUser", tblUser, "cLoginNameRef");

              tblUserAttachment += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblUserAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt fájl neve, cím");
              tblUserAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblUserAttachment += New.Field("dCreatedDate", "datetime").Disp.Descr("Feltöltés dátuma");
              tblUserAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblUserAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>

              #endregion
              #region Csatolt file akereséshez
              // --- New Entity: JobFindAttachment
              DataEntityModel tblJobFindAttachment =
            daLayer.NewTable("JobFindAttachment").Descr("Szakemberhez csatolt önéletrajzok");
              tblJobFindAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblJobFindAttachment +=
            New.Field("uJobFindRef", "uniqueidentifier").Disp.Descr("Hirdetés, melyhez a file tartozik");
              tblJobFindAttachment.Relate("AttachmentOfJobFind", tblJobFind, true, "uJobFindRef");
              tblJobFindAttachment +=
            New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt filr elérési útvonala");
              tblJobFindAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt file neve, cím");
              tblJobFindAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblJobFindAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblJobFindAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblJobFindAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>
              #endregion
              #region Csatolt file az ajánlathoz
              // --- New Entity: JobOfferAttachment
              DataEntityModel tblJobOfferAttachment =
            daLayer.NewTable("JobOfferAttachment").Descr("Szakemberhez csatolt önéletrajzok");
              tblJobOfferAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblJobOfferAttachment +=
            New.Field("uJobOfferRef", "uniqueidentifier").Disp.Descr("Hirdetés, melyhez a file tartozik");
              tblJobOfferAttachment.Relate("AttachmentOfJobOffer", tblJobOffer, true, "uJobOfferRef");
              tblJobOfferAttachment +=
            New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt file elérési útvonala");
              tblJobOfferAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt file neve, cím");
              tblJobOfferAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblJobOfferAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblJobOfferAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblJobOfferAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              // ---<End of fields>
              #endregion

              #region egyebek

              // --- New Entity: Competition
              DataEntityModel tblCompetition = daLayer.NewTable("Competition").Descr("Pályázatok");
              tblCompetition += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblCompetition += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Pályázat neve");
              tblCompetition += New.Field("cUrl", "varchar(250)").NotNull.Disp.Descr("URL, ahol a pályázat található");
              tblCompetition += New.Field("cDescription", "text").Null.Descr("Pályázat rövid leírása");
              tblCompetition += New.Field("bIsVisible", "bit").NotNull.Descr("Megjelenjen-e a felhasználó számára?");
              tblCompetition += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma.");
              // ---<End of fields>

              // --- New Entity: NewsCategory
              DataEntityModel tblNewsCategory = daLayer.NewTable("NewsCategory").Descr("Hírek kategóriái");

              tblNewsCategory += New.Field("uID", "uniqueidentifier").NotNull.PK.Descr("Azonosító");
              tblNewsCategory += New.Field("cName", "varchar(250)").NotNull.Descr("Név");
              tblNewsCategory += New.Field("cDescription", "varchar(500)").Null.Descr("Leírás");
              tblNewsCategory += New.Field("nShowMaxCount", "int").NotNull.Descr("A nyitó oldalon max ennyi jelenhet meg");
              tblNewsCategory += New.Field("nRank", "int").NotNull.Descr("Sorrendbeli hely");
              tblNewsCategory +=
            New.Field("bIsActive", "bit").NotNull.Def("1").Descr("Felkínálja-e a rendszer adatrögzítésnél?");

              // --- New Entity: News
              DataEntityModel tblNews = daLayer.NewTable("News").Descr("Hírek");
              tblNews += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblNews += New.Field("cTitle", "varchar(250)").NotNull.Disp.Descr("Hír címe");
              tblNews += New.Field("cAbstract", "varchar(4000)").NotNull.Disp.Descr("Hír rövid összefoglalója");
              tblNews += New.Field("cPictureUrl", "varchar(250)").Null.Descr("Kép elérési útvonala");
              tblNews += New.Field("cNewsBody", "text").NotNull.Descr("Hír szövege");
              tblNews += New.Field("uCategoryRef", "uniqueidentifier").Null.Descr("Kategória");
              tblNews.Relate("CategoryOfNews", tblNewsCategory, "uCategoryRef");
              tblNews += New.Field("bVisibleForVisitor", "bit").NotNull.Def("0").Descr("Megjelenjen-e a látogatók számára?");
              tblNews +=
            New.Field("bVisibleForRegistered", "bit").NotNull.Def("0").Descr(
              "Megjelenjen-e a regisztrált felhasználók számára?");
              tblNews += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Létrehozás dátuma.");
              tblNews += New.Field("bIsActive", "bit").NotNull.Descr("Felkínálja-e a rendszer adatrögzítésnél?");
              tblNews += New.Field("bIsActual", "bit").NotNull.Def("1").Descr("Aktuális e az adott hírek?");

              // --- New Entity: NewsAttachment
              DataEntityModel tblNewsAttachment = daLayer.NewTable("NewsAttachment").Descr("Hírhez csatolt fájlok");
              tblNewsAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblNewsAttachment += New.Field("uNewsRef", "uniqueidentifier").Disp.Descr("Hír, melyhez a fájl tartozik");
              tblNewsAttachment.Relate("AttachmentOfNews", tblNews, true, "uNewsRef");
              tblNewsAttachment += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblNewsAttachment += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Csatolt fájl neve, cím");
              tblNewsAttachment += New.Field("cDescription", "varchar(1000)").NotNull.Descr("Rövid leírás");
              tblNewsAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblNewsAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblNewsAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?");
              // ---<End of fields>

              // --- New Entity: NewsPictures
              DataEntityModel tblNewsPicture = daLayer.NewTable("NewsPicture").Descr("Hírhez csatolt további képek");
              tblNewsPicture += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblNewsPicture += New.Field("cTitle", "varchar(250)").NotNull.Descr("Képaláírás");
              tblNewsPicture += New.Field("cPictureUrl", "varchar(250)").NotNull.Descr("Kép elérési útvonala");
              tblNewsPicture += New.Field("uNewsRef", "uniqueidentifier").NotNull.Descr("Hír, melyhez a kép tartozik");
              tblNewsPicture.Relate("PictureOfNews", tblNews, true, "uNewsRef");

              // --- New Entity: Email
              DataEntityModel tblEmail = daLayer.NewTable("Email").Descr("Rendszer által generált levelek, és hírlevelek");
              tblEmail += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblEmail += New.Field("cSubject", "varchar(250)").NotNull.Disp.Descr("Levél tárgya");
              tblEmail += New.Field("cTo", "text").Null.Descr("Címzettek");
              tblEmail += New.Field("cCc", "text").Null.Descr("Másolatot kapnak");
              tblEmail += New.Field("cMailBody", "text").NotNull.Descr("E-mail szövege");
              tblEmail += New.Field("dSent", "datetime").Null.Descr("Küldés dátuma");
              tblEmail +=
            New.Field("cCategory", "varchar(10)").NotNull.Disp.Descr(
              "Levél kategória (hírlevél, regisztráció elfogadása, kérdõív visszautasítása, stb.)");
              tblEmail += New.Field("bActivityPrevention", "bit").Null.Def("0").Disp.Descr("Végez-e prevenciós tevékenységet?");
              tblEmail += New.Field("bActivityResearch", "bit").Null.Def("0").Disp.Descr("Végez-e kutatási tevékenységet?");
              tblEmail +=
            New.Field("bActivityRehabilitation", "bit").Null.Def("0").Disp.Descr("Végez-e kezelés, ellátási tevékenységet?");
              tblEmail += New.Field("bActivityOther", "bit").Null.Def("0").Disp.Descr("Végez-e egyéb tevékenységet?");
              tblEmail += New.Field("bActivityNDI", "bit").Null.Def("0").Disp.Descr("Nemzeti Drogmegelõzési Intézet?");
              tblEmail += New.Field("bActivityAll", "bit").NotNull.Disp.Descr("Mindenki megkapja?");
              tblEmail += New.Field("uOrganisationRef", "uniqueidentifier").Null.Descr("Szervezet azonosító");
              tblEmail.Relate("EmailOfOrganisation", tblOrganisation, true, "uOrganisationRef");

              // --- New Entity: EmailAttachment
              DataEntityModel tblEmailAttachment = daLayer.NewTable("EmailAttachment").Descr("Hírlevélhez csatolt fájlok");
              tblEmailAttachment += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblEmailAttachment += New.Field("uEmailRef", "uniqueidentifier").Disp.Descr("Hírlevél, melyhez a fájl tartozik");
              tblEmailAttachment.Relate("AttachmentOfEmail", tblEmail, true, "uEmailRef");
              tblEmailAttachment += New.Field("cPath", "varchar(500)").NotNull.Disp.Descr("Csatolt fájl elérési útvonala");
              tblEmailAttachment += New.Field("cName", "varchar(250)").Disp.Descr("Csatolt fájl neve, cím");
              tblEmailAttachment += New.Field("cDescription", "varchar(1000)").Descr("Rövid leírás");
              tblEmailAttachment += New.Field("dCreatedDate", "datetime").NotNull.Disp.Descr("Feltöltés dátuma");
              tblEmailAttachment += New.Field("nFileSize", "int").NotNull.Disp.Descr("Fájl méret");
              tblEmailAttachment += New.Field("bIsActive", "bit").NotNull.Descr("Aktív?").Def("1");
              // ---<End of fields>

              #endregion

              #region : MainPage - Nyitó oldal, Settings, EmailTemplate :

              // --- New Entity: MainPage
              DataEntityModel tblMainPage = daLayer.NewTable("MainPage").Descr("NDI SZIP nyitó oldal");
              tblMainPage += New.Field("uID", "uniqueidentifier").PK.Descr("Azonosító");
              tblMainPage += New.Field("cTitle", "varchar(250)").NotNull.Disp.Descr("Oldal címe");
              tblMainPage += New.Field("cBody", "text").NotNull.Disp.Descr("Nyitó oldal tartalma - HTML");
              tblMainPage += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma.");
              tblMainPage += New.Field("bIsActual", "bit").NotNull.Descr("Aktuális nyitóoldal?");

              // --- New Entity: Settings
              DataEntityModel tblSettings = daLayer.NewTable("Settings").Descr("Beállítások");
              tblSettings += New.Field("cKey", "varchar(50)").PK.Descr("Azonositó");
              tblSettings += New.Field("cName", "varchar(250)").NotNull.Disp.Descr("Paraméter megnevezése");
              tblSettings += New.Field("cValue", "text").NotNull.Disp.Descr("Paraméter értéke");
              tblSettings += New.Field("dCreatedDate", "datetime").NotNull.Descr("Létrehozás dátuma.");

              // --- New Entity: EmailTemplate
              DataEntityModel tblEmailTemplate = daLayer.NewTable("EmailTemplate").Descr("Email template");
              tblEmailTemplate += New.Field("cId", "varchar(50)").PK.Descr("Azonositó");
              tblEmailTemplate += New.Field("cName", "varchar(250)").Disp.Descr("Email template neve");
              tblEmailTemplate += New.Field("cSubject", "varchar(250)").NotNull.Disp.Descr("Email subject");
              tblEmailTemplate += New.Field("cBody", "text").NotNull.Disp.Descr("Email body");

              #endregion

              #region DesignerDrog
              // --- New Entity: NewsCategory
              DataEntityModel tblDesignerDrogCategory = daLayer.NewTable( "DesignerDrogCategory" ).Descr( "Designer drogok kategóriái" );

              tblDesignerDrogCategory += New.Field( "uID", "uniqueidentifier" ).NotNull.PK.Descr( "Azonosító" );
              tblDesignerDrogCategory += New.Field( "cName", "varchar(250)" ).NotNull.Descr( "Név" );
              tblDesignerDrogCategory += New.Field( "cDescription", "varchar(500)" ).Null.Descr( "Leírás" );
              tblDesignerDrogCategory += New.Field( "nShowMaxCount", "int" ).Null.Descr( "A nyitó oldalon max ennyi jelenhet meg" );
              tblDesignerDrogCategory += New.Field( "nRank", "int" ).Null.Descr( "Sorrendbeli hely" );
              tblDesignerDrogCategory +=
            New.Field( "bIsActive", "bit" ).NotNull.Def( "1" ).Descr( "Felkínálja-e a rendszer adatrögzítésnél?" );

              // --- New Entity: News
              DataEntityModel tblDesignerDrogItems = daLayer.NewTable( "DesignerDrog" ).Descr( "Designer drog elemek" );
              tblDesignerDrogItems += New.Field( "uID", "uniqueidentifier" ).PK.Descr( "Azonosító" );
              tblDesignerDrogItems += New.Field( "cTitle", "varchar(250)" ).NotNull.Disp.Descr( "Címe" );
              tblDesignerDrogItems += New.Field( "cAuthor", "varchar(500)" ).Null.Disp.Descr( "Szerzõ" );
              tblDesignerDrogItems += New.Field( "cSource", "varchar(500)" ).Null.Disp.Descr( "Forrás" );
              tblDesignerDrogItems += New.Field( "cAbstract", "varchar(4000)" ).NotNull.Disp.Descr( "Rövid összefoglaló" );
              tblDesignerDrogItems += New.Field( "cPictureUrl", "varchar(250)" ).Null.Descr( "Kép elérési útvonala" );
              tblDesignerDrogItems += New.Field( "cBody", "text" ).NotNull.Descr( "Szövege" );
              tblDesignerDrogItems += New.Field( "uCategoryRef", "uniqueidentifier" ).NotNull.Descr( "Kategória" );
              tblDesignerDrogItems.Relate( "CategoryOfDesignerDrogItem", tblDesignerDrogCategory, "uCategoryRef" );
              tblDesignerDrogItems += New.Field( "dCreatedDate", "datetime" ).NotNull.Disp.Descr( "Létrehozás dátuma." );
              tblDesignerDrogItems += New.Field( "bIsActive", "bit" ).NotNull.Descr( "Felkínálja-e a rendszer adatrögzítésnél?" );
              tblDesignerDrogItems += New.Field( "bIsActual", "bit" ).NotNull.Def( "1" ).Descr( "Aktuális e az adott designer drog elem?" );

              // --- New Entity: NewsAttachment
              DataEntityModel tblDesignerDrogAttachment = daLayer.NewTable( "DesignerDrogAttachment" ).Descr( "Designer drog elemhez csatolt fájlok" );
              tblDesignerDrogAttachment += New.Field( "uID", "uniqueidentifier" ).PK.Descr( "Azonosító" );
              tblDesignerDrogAttachment += New.Field( "uItemRef", "uniqueidentifier" ).Disp.Descr( "Hír, melyhez a fájl tartozik" );
              tblDesignerDrogAttachment.Relate( "AttachmentOfDesignerDrogItem", tblDesignerDrogItems, true, "uItemRef" );
              tblDesignerDrogAttachment += New.Field( "cPath", "varchar(500)" ).NotNull.Disp.Descr( "Csatolt fájl elérési útvonala" );
              tblDesignerDrogAttachment += New.Field( "cName", "varchar(250)" ).NotNull.Disp.Descr( "Csatolt fájl neve, cím" );
              tblDesignerDrogAttachment += New.Field( "cDescription", "varchar(1000)" ).NotNull.Descr( "Rövid leírás" );
              tblDesignerDrogAttachment += New.Field( "dCreatedDate", "datetime" ).NotNull.Disp.Descr( "Feltöltés dátuma" );
              tblDesignerDrogAttachment += New.Field( "nFileSize", "int" ).NotNull.Disp.Descr( "Fájl méret" );
              tblDesignerDrogAttachment += New.Field( "bIsActive", "bit" ).NotNull.Descr( "Aktív?" );
              // ---<End of fields>

              // --- New Entity: NewsPictures
              DataEntityModel tblDesignerDrogsPicture = daLayer.NewTable( "DesignerDrogPicture" ).Descr( "Designer drog elemhez csatolt további képek" );
              tblDesignerDrogsPicture += New.Field( "uID", "uniqueidentifier" ).PK.Descr( "Azonosító" );
              tblDesignerDrogsPicture += New.Field( "cTitle", "varchar(250)" ).NotNull.Descr( "Képaláírás" );
              tblDesignerDrogsPicture += New.Field( "cPictureUrl", "varchar(250)" ).NotNull.Descr( "Kép elérési útvonala" );
              tblDesignerDrogsPicture += New.Field( "uItemRef", "uniqueidentifier" ).NotNull.Descr( "Designer drog elem, melyhez a kép tartozik" );
              tblDesignerDrogsPicture.Relate( "PictureOfDesignerDrogItems", tblDesignerDrogItems, true, "uItemRef" );

              DataEntityModel tblDesignerDrogLinks = daLayer.NewTable( "DesignerDrogLink" ).Descr( "Designer drog elemhez tartozó linkek" );
              tblDesignerDrogLinks += New.Field( "uID", "uniqueidentifier" ).PK.Descr( "Azonosító" );
              tblDesignerDrogLinks += New.Field( "uItemRef", "uniqueidentifier" ).NotNull.Descr( "Designer drog elem, melyhez a link tartozik" );
              tblDesignerDrogLinks += New.Field( "cUrl", "varchar(500)" ).NotNull.Descr( "Url" );
              tblDesignerDrogLinks += New.Field( "cTitle", "varchar(250)" ).NotNull.Descr( "Felirat" );
              tblDesignerDrogLinks += New.Field( "cDescription", "varchar(500)" ).NotNull.Descr( "Leírás" );
              tblDesignerDrogLinks.Relate( "LinkOfDesignerDrogItem", tblDesignerDrogItems, true, "uItemRef" );

              #endregion

              #region Enforce Relation

              // --- Look in all tables

              foreach (DataEntityModel entity in daLayer.Entities)
              {
            // --- Look in all relations
            foreach (AssocModel assoc in entity.ParentAssocs)
            {
              assoc.EnforceRelation = true;
            }
              }

              #endregion

              #region Dynamic stored procedures that return data

              //daLayer.AddDynamicSP("ndihdNewsSelectDispsetTop");
              //daLayer.AddDynamicSP("ndihdEDocumentSelectDispsetTop");
            daLayer.AddDynamicSP("ndihdDesignerDrogCategorySelectFiltered");
            daLayer.AddDynamicSP("ndihdDesignerDrogSelectByCategory");
            daLayer.AddDynamicSP("ndihdDesignerDrogSelectDispsetFiltered");
            daLayer.AddDynamicSP( "ndihdDesignerDrogSelectFiltered" );
            daLayer.AddDynamicSP( "ndihdDesignerDrogSelectDispsetTop" );
            daLayer.AddDynamicSP( "ndihdDesignerDrogSelectFreeText" );
              //daLayer.AddDynamicSP("ndihdMainPageSetAsActual");
              //daLayer.AddDynamicSP("ndihdMainPageSelectActual");
              //daLayer.AddDynamicSP("ndihdCompetitionSelectActive");
              //daLayer.AddDynamicSP("ndihdCompetitionSelectFiltered");
              //daLayer.AddDynamicSP("ndihdContinuativeSelectFiltered");
              //daLayer.AddDynamicSP("ndihdDetailOfTemplateSelectByIsActive");
              //daLayer.AddDynamicSP("ndihdDictionarySelectFiltered");
              //daLayer.AddDynamicSP("ndihdDictionarySelectFirstLetter");
              //daLayer.AddDynamicSP("ndihdEDocumentCategoryChangeRank");
              //daLayer.AddDynamicSP("ndihdEDocumentCategorySelectFiltered");
              //daLayer.AddDynamicSP("ndihdEDocumentCommendationSelectFiltered");
              //daLayer.AddDynamicSP("ndihdEDocumentSelectAttachment");
              //daLayer.AddDynamicSP("ndihdEDocumentSelectFiltered");
              //daLayer.AddDynamicSP("ndihdEmailSelectFiltered");
              //daLayer.AddDynamicSP("ndihdEventSelectFiltered");
              //daLayer.AddDynamicSP("ndihdExpertAttachmentSelectAttachmentsOfExpert");
              //daLayer.AddDynamicSP("ndihdExpertSelectFiltered");
              //daLayer.AddDynamicSP("ndihdExpertSelectParticipantsOfProgram");
              //daLayer.AddDynamicSP("ndihdExpertUpdateRef");
              //daLayer.AddDynamicSP("ndihdForumGroupSelectFiltered");
              //daLayer.AddDynamicSP("ndihdForumItemSelectFiltered");
              //daLayer.AddDynamicSP("ndihdForumItemSelectForWeb");
              //daLayer.AddDynamicSP("ndihdForumItemSelectFreeText");
              //daLayer.AddDynamicSP("ndihdForumThreadSelectFiltered");
              //daLayer.AddDynamicSP("ndihdGetStatistics");
              //daLayer.AddDynamicSP("ndihdGlobalSearchDeleteAll");
              //daLayer.AddDynamicSP("ndihdKefCategoryOfKefWebDataSelectByIsActive");
              //daLayer.AddDynamicSP("ndihdKefContactTypeOfMembers");
              //daLayer.AddDynamicSP("ndihdKefEventSelectFiltered");
              //daLayer.AddDynamicSP("ndihdKefFileTypeSelectFiltered");
              //daLayer.AddDynamicSP("ndihdKefFileTypeSelectFiltered");
              //daLayer.AddDynamicSP("ndihdKefMembersByOrgID");
              //daLayer.AddDynamicSP("ndihdKefOrgOfOrgSelectFiltered");
              //daLayer.AddDynamicSP("ndihdKefWebDataSelectByRank");
              //daLayer.AddDynamicSP("ndihdKefWebDataSelectManual");
              //daLayer.AddDynamicSP("ndihdKefWebDataSelectRankMax");
              //daLayer.AddDynamicSP("ndihdKefWebDataUpdateManual");
              //daLayer.AddDynamicSP("ndihdKeywordCheck");
              //daLayer.AddDynamicSP("ndihdLoginNameCheck");
              //daLayer.AddDynamicSP("ndihdNewsCategoryChangeRank");
              //daLayer.AddDynamicSP("ndihdNewsCategorySelectFiltered");
              //daLayer.AddDynamicSP("ndihdNewsSelectByCategory");
              //daLayer.AddDynamicSP("ndihdNewsSelectDispsetFiltered");
              //daLayer.AddDynamicSP("ndihdNewsSelectFiltered");
              //daLayer.AddDynamicSP("ndihdNewsSelectFreeText");
              //daLayer.AddDynamicSP("ndihdNewsSelectNullCategory");
              //daLayer.AddDynamicSP("ndihdOrganisationAttachmentByFileType");
              //daLayer.AddDynamicSP("ndihdOrganisationAttachmentSelectFiltered");
              //daLayer.AddDynamicSP("ndihdOrganisationPendingUserSelectFiltered");
              //daLayer.AddDynamicSP("ndihdOrganisationQuestionFormUpdate");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectDispsetFiltered");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectFiltered");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectKefListFilteredByDistrictCode");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectKefListFilteredByRegCode");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectKefMembers");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectMinAll");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectPartnersOfProgram");
              //daLayer.AddDynamicSP("ndihdOrganisationUserSelectRights");
              //daLayer.AddDynamicSP("ndihdOrgOwnMemberSelectCountByType");
              //daLayer.AddDynamicSP("ndihdPageOfTemplateSelectByIsactive");
              //daLayer.AddDynamicSP("ndihdPendingQuestionFormOfOrganisationSelectFiltered");
              //daLayer.AddDynamicSP("ndihdPendingQuestionFormOfProgramSelectFiltered");
              //daLayer.AddDynamicSP("ndihdProgramAttachmentSelectAttachmentsOfProgram");
              //daLayer.AddDynamicSP("ndihdProgramOfThesaurusSelectBy");
              //daLayer.AddDynamicSP("ndihdProgramSelectByExpert");
              //daLayer.AddDynamicSP("ndihdProgramSelectByExpert");
              //daLayer.AddDynamicSP("ndihdProgramSelectByKeyword");
              //daLayer.AddDynamicSP("ndihdProgramSelectByName");
              //daLayer.AddDynamicSP("ndihdProgramSelectByPartnerOrganisation");
              //daLayer.AddDynamicSP("ndihdProgramSelectByQuestionForm");
              //daLayer.AddDynamicSP("ndihdProgramSelectFiltered");
              //daLayer.AddDynamicSP("ndihdProgramSelectFreeText");
              //daLayer.AddDynamicSP("ndihdProgramSelectRelated");
              //daLayer.AddDynamicSP("ndihdProgramSelectRelated");
              //daLayer.AddDynamicSP("ndihdQuestionFormOfOrganisationSelectFiltered");
              //daLayer.AddDynamicSP("ndihdQuestionFormOfProgramSelectFiltered");
              //daLayer.AddDynamicSP("ndihdRegisterOrganisationSelectFiltered");
              //daLayer.AddDynamicSP("ndihdRegisterUserSelectFiltered");
              //daLayer.AddDynamicSP("ndihdTemplateDetailQuestionsAnswers");
              //daLayer.AddDynamicSP("ndihdTemplateSelectFiltered");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfOrganisationPendingQuestionForm");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfOrganisationPendingQuestionFormByTemplateID");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfOrganisationQuestionForm");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfProgramPendingQuestionForm");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfProgramPendingQuestionFormByTemplateID");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfProgramQuestionForm");
              //daLayer.AddDynamicSP("ndihdTemplateSelectOfProgramQuestionFormOwn");
              //daLayer.AddDynamicSP("ndihdTemplateSelectPendingPrograms");
              //daLayer.AddDynamicSP("ndihdThesaurusSelectFiltered");
              //daLayer.AddDynamicSP("ndihdThesaurusSelectForFilter");
              //daLayer.AddDynamicSP("ndihdUserSelectDispsetOfEmailRecipient");
              //daLayer.AddDynamicSP("ndihdUserSelectFiltered");
              //daLayer.AddDynamicSP("ndihdUserSelectForAuthorization");
              //daLayer.AddDynamicSP("ndihdUserUpdateRef");
              //daLayer.AddDynamicSP("ndihdWorkingAreaSelectAllKef");
              //daLayer.AddDynamicSP("ndihdWorkingAreaSelectAllOrderByRank");
              //daLayer.AddDynamicSP("ndihdEDocumentCategorySelectDispsetByType");
              //daLayer.AddDynamicSP("ndihdExpertSelectMinAll");
              //daLayer.AddDynamicSP("ndihdProgramSelectFilteredForRtf");
              //daLayer.AddDynamicSP("ndihdProgramSelectFilteredForCsv");
              //daLayer.AddDynamicSP("ndihdProgramSelectByQuestionFormForCsv");
              //daLayer.AddDynamicSP("ndihdProgramSelectByQuestionFormForRtf");
              //daLayer.AddDynamicSP("ndihdProgramSelectFreetextForRtf");
              //daLayer.AddDynamicSP("ndihdProgramSelectFreetextForCsv");
              //daLayer.AddDynamicSP("ndihdProgramSelectByKeywordForRtf");
              //daLayer.AddDynamicSP("ndihdProgramSelectByKeywordForCsv");

              //daLayer.AddDynamicSP("ndihdJobAnswerSetActive");
              //daLayer.AddDynamicSP("ndihdJobOfferSelectFiltered");
              //daLayer.AddDynamicSP("ndihdJobFindSelectFiltered");
              //daLayer.AddDynamicSP("ndihdJobAnswerSelectFiltered");
              //daLayer.AddDynamicSP("ndihdJobOfferSetStatus");
              //daLayer.AddDynamicSP("ndihdJobFindSetStatus");
              //daLayer.AddDynamicSP("ndihdJobFindSelectBySubscriber");
              //daLayer.AddDynamicSP("ndihdJobOfferSelectBySubscriber");
              //daLayer.AddDynamicSP("ndihdOrganisationSelectInvalidWithMail");
              #endregion

              ServiceLayerModel servLayer = new ServiceLayerModel(archModel, "BusinessServices", daLayer);
              archModel.DefineNativeOperations(servLayer);

              return archModel;
        }