ReadMe.md
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
Standard osztályok
IManage
Generikus interfész, melyben azt a típust kell megadni, amely menedzselését végzi.
/// <summary>
/// Meghatározza és előírja egy karbantartást és hozzáférést
/// biztosító osztály elvárt tulajdonságait és módszereit.
/// </summary>
public interface IManage<T>
{
/// <summary>
/// A kezelt típust össze egyedét szolgáltató tulajdonság.
/// </summary>
List<T> All { get; }
/// <summary>
/// A kezelt típus egy elemét adja vissza az egyedi azonosító segítségével.
/// </summary>
/// <param name="id">Az elem egyedi azonosítója.</param>
/// <returns></returns>
T Get(int id);
/// <summary>
/// A kezelt típus egy elemét adja vissza a megadott név segítségével.
/// </summary>
/// <param name="name">Az elem egyedi neve.</param>
/// <returns></returns>
T Get(string name);
/// <summary>
/// Létrehozza a kezelt típus egy elemét.
/// </summary>
/// <param name="item">A kezelt típus egy eleme, amit hozzá kell adni.</param>
void Create(T item);
/// <summary>
/// A kezelt típus egy elemét törli az egyedi azonosító alapján.
/// </summary>
/// <param name="id">A törlendő elem egyedi azonosítója.</param>
void Delete(int id);
/// <summary>
/// A kezelt típus egy elemét törli az egyedi neve alapján.
/// </summary>
/// <param name="name">A törlendő elem egyedi neve.</param>
void Delete(string name);
/// <summary>
/// A kezelt típus egy elemének módosítása.
/// Ha nem létezik az hiba.
/// </summary>
/// <param name="item">A kezelt típus egy eleme.</param>
void Update(T item);
}
CheckListJSON
/// <summary>
/// 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.
/// </summary>
public class CheckListJSON
{
/// <summary>
/// Az ellenőrzendő illetve ellenőrzött azonosító.
/// </summary>
public string Value { get; set; }
/// <summary>
/// Az ellenőrzéskor megtalált név vagy leíró.
/// </summary>
public string Text { get; set; }
/// <summary>
/// Az ellenőrzés eredményét jelző logikai érték, mely a felhasználáskor
/// az üzleti logikától függ.
/// </summary>
public bool Checked { get; set; }
}
ReturnInfoJSON
/// <summary>
/// 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!" }
/// </summary>
public class ReturnInfoJSON
{
/// <summary>
/// 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
/// </summary>
public int ReturnValue { get; set; } = 0;
/// <summary>
/// Az akció üzenete. Hiba esetén a hibaüzenet szövege.
/// Alapértelmezett értéke: "Az indított akció sikeresen lezajlott!"
/// </summary>
public string ReturnMessage { get; set; } = "Az indított akció sikeresen lezajlott!";
}
SelectListJSON
/// <summary>
/// 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.
/// </summary>
/// <remarks>
/// 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."
/// </remarks>
public class SelectListJSON
{
/// <summary>
/// Jelzi, hogy ez az elem a listában letiltott.
/// </summary>
public bool Disabled { get; set; }
/// <summary>
/// A csoport jelölése. Alapértelmezett értéke: null
/// </summary>
public SelectListGroup Group { get; set; }
/// <summary>
/// Jelzi, hogy ez az elem a listában kiválasztott.
/// </summary>
public bool Selected { get; set; }
/// <summary>
/// A listelem szövege, ami megjelenik.
/// </summary>
public string Text { get; set; }
/// <summary>
/// A listelem értéke.
/// </summary>
public string Value { get; set; }
}
#region SelectListGroup public class
/// <summary>
/// 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.
/// </summary>
/// <remarks>
/// A System.Mvc.SelectListItem-mel való kompatibilitás miatt van itt.
/// A 'summary' szövege is onnan másolt.
/// </remarks>
public class SelectListGroup
{
/// <summary>
/// Beállítja, hogy az adott csoport engedélyezett-e.
/// </summary>
public bool Disabled { get; set; }
/// <summary>
/// A csoport neve.
/// </summary>
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