# Vrh.Common A modul a Vonalkód Rendszerház fejlesztési környezetében szabványosított és hasznosan alkalmazható eszközeinek gyűjtőhelye. > Igényelt minimális framework verzió: **4.5** > Teljes funkcionalitás és hatékonyság kihasználásához szükséges legalacsonyabb framework verzió: **4.5** # Főbb összetevők ### Interfészek * **[IManage](##IManage)** ### Standard osztályok * **[CheckListJSON](##CheckListJSON)** * **[ReturnInfoJSON](##ReturnInfoJSON)** * **[SelectListJSON](##SelectListJSON)** ## IManage Generikus interfész, melyben azt a típust kell megadni, amely menedzselését végzi. ```javascript /// /// Meghatározza és előírja egy karbantartást és hozzáférést /// biztosító osztály elvárt tulajdonságait és módszereit. /// public interface IManage { /// /// A kezelt típust össze egyedét szolgáltató tulajdonság. /// List All { get; } /// /// A kezelt típus egy elemét adja vissza az egyedi azonosító segítségével. /// /// Az elem egyedi azonosítója. /// T Get(int id); /// /// A kezelt típus egy elemét adja vissza a megadott név segítségével. /// /// Az elem egyedi neve. /// T Get(string name); /// /// Létrehozza a kezelt típus egy elemét. /// /// A kezelt típus egy eleme, amit hozzá kell adni. void Create(T item); /// /// A kezelt típus egy elemét törli az egyedi azonosító alapján. /// /// A törlendő elem egyedi azonosítója. void Delete(int id); /// /// A kezelt típus egy elemét törli az egyedi neve alapján. /// /// A törlendő elem egyedi neve. void Delete(string name); /// /// A kezelt típus egy elemének módosítása. /// Ha nem létezik az hiba. /// /// A kezelt típus egy eleme. void Update(T item); } ``` ## CheckListJSON ```javascript /// /// Egy meghívott akció válaszüzenetének egy lehetséges meghatározott szerkezete. /// Valamely lista ellenőrzéshez használható, amelyben a Checked oszlopban jelölhető az ellenőrzés eredménye. /// public class CheckListJSON { /// /// Az ellenőrzendő illetve ellenőrzött azonosító. /// public string Value { get; set; } /// /// Az ellenőrzéskor megtalált név vagy leíró. /// public string Text { get; set; } /// /// Az ellenőrzés eredményét jelző logikai érték, mely a felhasználáskor /// az üzleti logikától függ. /// public bool Checked { get; set; } } ``` ## ReturnInfoJSON ```javascript /// /// Egy meghívott akció válaszüzenetének egy lehetséges meghatározott szerkezete. /// A válasz érték (ReturnValue) és üzenet (ReturnMessage) formájú. /// Sikeres végrehajtás esetén mindig 0 legyen a ReturnValue. /// Sikertelen esetben ettől eltérő, de ha nincs egyéb ok, akkor hiba esetén legyen -1. /// Alapértelmezett érték: 0, "Az indított akció sikeresen lezajlott!" } /// public class ReturnInfoJSON { /// /// Egy reprezentatív értéke, mely a sikerességtől függ. /// Ha nincs hiba az akció végrehajtásában, akkor 0 legyen az értéke. /// Alapértelmezett értéke: 0 /// public int ReturnValue { get; set; } = 0; /// /// Az akció üzenete. Hiba esetén a hibaüzenet szövege. /// Alapértelmezett értéke: "Az indított akció sikeresen lezajlott!" /// public string ReturnMessage { get; set; } = "Az indított akció sikeresen lezajlott!"; } ``` ## SelectListJSON ```javascript /// /// Egy meghívott akció válaszüzenetének egy lehetséges meghatározott szerkezete. /// Egy listához használható, mely értékeit és azonosítóit fel lehet használni. /// /// /// Egyenértékű a System.Web.Mvc.SelectListItem osztállyal, de nem onnan származik. /// Az ott szereplő leírás: /// "Represents the selected item in an instance of the System.Web.Mvc.SelectList class." /// public class SelectListJSON { /// /// Jelzi, hogy ez az elem a listában letiltott. /// public bool Disabled { get; set; } /// /// A csoport jelölése. Alapértelmezett értéke: null /// public SelectListGroup Group { get; set; } /// /// Jelzi, hogy ez az elem a listában kiválasztott. /// public bool Selected { get; set; } /// /// A listelem szövege, ami megjelenik. /// public string Text { get; set; } /// /// A listelem értéke. /// public string Value { get; set; } } #region SelectListGroup public class /// /// Represents the optgroup HTML element and its attributes. In a select list, /// multiple groups with the same name are supported. /// They are compared with reference equality. /// /// /// A System.Mvc.SelectListItem-mel való kompatibilitás miatt van itt. /// A 'summary' szövege is onnan másolt. /// public class SelectListGroup { /// /// Beállítja, hogy az adott csoport engedélyezett-e. /// public bool Disabled { get; set; } /// /// A csoport neve. /// public string Name { get; set; } } #endregion SelectListGroup public class ``` ## Version History: #### 2.13.2 (2020.03.27) Patches: - NuGet csomag módosítása úgy, hogy a modul ReadMe.md "Build Action" tulajdonsága "None" legyen a telepítés után. Install.ps1 hozzáadása. #### 2.13.1 (2020.03.26) Patches: - Felesleges függések törlése. - XML comment dokumentáció pontosítása. #### 2.13.0 (2020.03.19) Compatible changes: - Vrh.Web.Common.Lib egyes elemeinek átemelése ide #### 2.12.1 (2020.02.13) Patches: - SelectListJSON egyenlőség vizsgálat javítása #### 2.12.0 (2020.02.13) Compatible changes: - SelectListJSON struktúrába beépítésre került egy speciális egyenlőség vizsgálat, amely a Value, a Text és a Group mezők értékének egyenlősége esetén ad igaz értéket; a Disabled és a Selected mezők értéke az egyenlőség vizsgálatban nem játszik szerepet - CheckListJSON és ReturnInfoJSON strukturákhoz analóg módon, mely ugyanezekkel a feltételekkel dolgozik. #### 2.11.1-3 (2019.12.19) Compatible changes: - CommandLine class hibák javítása. #### 2.11.0 (2019.12.17) Compatible changes: - Topshelf formátumú parancssori paraméterek kezelése: -NAME:value #### 2.10.1 (2019.12.17) Patches: - CommandLine osztályban egy javítás #### 2.10.1 (2019.12.05) Patches: - SerializeObject metódusban a string-ek külön kezelése. #### 2.10.0 (2019.10.08) Compatible changes: - ToEnum string extension hozzáadása, amelyik egy stringből megadott tipusú enumra konvertál, vagy a típus (Enum) defaultját adja #### 2.9.0 (2019.09.12) Compatible changes: - EntryAsseblyFixer static class hozzáadása, ami beállítja amegfelelő EntryAssembly-t, ha az alakalmazás tér dinamikus hostolású, ahol null, vagy dynamic az EntryAssembly - EntryAsseblyFixer egység tesztjei ## 2.8.1 (2019.09.07): ### Patch: - Name property típusa javítva. ## v2.8.0 (2019.09.06): ### Compatibility API changes: - ReturnDictJSON adatstruktúra hozzáadva. ## 2.7.0 (2019.08.15) Compatible changes: ### Compatibility API changes: - Az EntityFramework extension bővítése az AlreadyOrdered függvénynel, amely megmondja egy IQueryable-ről, hogy rendezett-e már (tehát a további rendezéséhez az OrderBy, vagy a ThenBy-t kell-e használni) ## 2.6.0 (2019.08.01) Compatible changes: ### Compatibility API changes: - Extensions bővítése az EntityFramework extension-nel, EntityFrameworkQueryHelper bővítő osztály, SmartOrder bővítő metódus (IQueryable típusra) ## 2.5.0 (2019.07.10) Compatible changes: ### Compatibility API changes: - ExtensionMethods bővítése az Enum extensionssel, Enumdata attribútum osztály ## 2.3.0 (2019.05.14) Compatible changes: - IManage interfész áthelyezése Vrh.Web.Common.Lib 1.18.1-es változatából. - Standard osztályok (CheckListJSON, ReturnInfoJSON, SelectListJSON) áthelyezése Vrh.Web.Common.Lib 1.18.1-es változatából. ## 2.2.0 (2018.12.17) ### Compatible changes: - VrhConvert.SerializeObject Private metódus publikussá tétele. ## 2.1.0 (2018.12.17) ### Compatible changes: - Új függvények beillesztése a conversion részbe. ## 2.0.1 (2018.12.12) ### Patches: - ConnandLine osztály metóduasdinak kommentezése és egy apró javítás: a GetCommandLineArgument lekezeli, ha az argumentname paramétere üres string. ## 2.0.0 (2018.11.28) ### Braking change: - 3.5-ös .Net framwork verzi támogatásának megszüntetése új target verzió: 4.5 ### Compatibility API changes: - CommandLine static segéd osztály hozzáadása ## 1.13.0 (2017.04.04) ### Compatibility API changes: - String Extension method: FromHexOrThis ## 1.12.0 (2017.03.29) ### Compatibility API changes: - FixStack class hozzáadása ### Patches: - UnitTest method elnevezések javítása (konvenció kidolgozása) ## 1.11.0 (2017.03.28) ### Compatibility API changes: - Assembly Extension methodok: Version, AssemblyAttribute ## 1.10.0 (2017.03.16) ### Compatibility API changes: - StringBuilder Extension methodok: AppendWithSeparator, Reverse ### Patches: - Extension methodok helyének hozzáadása. - Test projekt hozzáadása ## V1.9.2 (2017.02.21) ### Patches: - Projekt könyvrtárszerkezet rendbetétele. - AutoBuild Vrh Nuget csomaggá alakítás (összes Nuget-tel kapcsolatos elvárás átvezetése) - MinFramweork meghatározás