Name Last Update
..
ReadMe.md Loading commit data...

ReadMe.md

Vrh.Web.Common.Lib

Általános célú ASP.NET MVC fejlesztéssel kapcsolatos és fordításra kerülő összetevők gyűjteménye.

Fejlesztve és tesztelve 4.5 .NET framework alatt. Teljes funkcionalitás és hatékonyság kihasználásához szükséges legalacsonyabb framework verzió: 4.5

#TODO: Véglegesítendő a komponens dokumentációja!!!

Főbb összetevők

  • CookieWebClient: MVC-s WebClient osztály kiterjesztése, mely a Cookie-kat is kezeli.
  • WebCommon: Egy statikus osztály hasznos segédeszközökkel.
  • DataTables támogatás: DataTables-et támogató osztályok, eszközök.
  • Redis támogatás: Redis műveleteket támogató eszközök. Egyelőre csak a RedisConnection osztály.

BaseController osztály

MVC-s alkalmázokhoz használható kontroller alaposztály, hasznos és nélkülözhetetlen szolgáltatásokkal. Főbb szolgáltatások:

  • Dispose megvalósítása
  • DataTable-hez kapcsolódó hasznos szolgáltatások
  • ThrEx: Egy nyelvi fordítóval kiegészített ApplicationException-t dobó metódus.
  • Mlmgt: MultiLanguageManager.GetTranslation meghívása a ForcedLanguageCode nyelvi kóddal.

Használati minta:

public class XXXXController : BaseController

Ahol XXXX az általunk készítendő controller neve.

Állandók

Alábbi értékek eléréséhez egy minta az általunk készített kontrollerben: MODELSTATE vagy BaseController.MODELSTATE.

Állandó|Típus|Érték|Leírás :----|:----|:---- MODELSTATE|string|ModelState|A TempData szótár ModelState kulcsának megnevezése.

Tulajdonságok

Név|Hatáskör|Leírás :----|:---- BaseFolder|protected|Az alkalmazás alap mappája, ez alatt van az App_Data mappa. A HttpContext.Server.MapPath("~") hívás értéke. BaseDateFormat|public|A megjelenítéskor és szűréskor használatos dátum formátum. Alapértelmezett értéke: Thread.CurrentThread.CurrentCulture.DateTimeFormat.ShortDatePattern ForcedLanguageCode|protected|A ThrEx és az Mlmgt protected metódusok ezzel az értékkel hívják a MultiLanguageManager.GetTranslation-t, azért hogy az ne kérdezze le állandóan a RelevantLanguageCode-t. A BaseController példányosítása során az alapértelmezett értéke: MultiLanguageManager.RelevantLanguageCode. Ha ettől eltérő nyelvet szeretnénk használni, akkor a példányosítás után át kell állítani. RequestedParameters|protected|Azoknak a paramétereknek a gyűjteménye, melyeket megjelöltünk a példányosításkor. Ha nem jelölünk meg ilyen paramétert vagy üres az átadott típus, akkor NULL marad. Értékét a ParameterSeparating metódus álltja be. OtherParameters|protected|Azoknak a paramétereknek a gyűjteménye, melyeket nem jelöltünk meg a példányosításkor. Ha nincs feldolgozandó gyűjtemény vagy üres, akkor NULL marad. Értékét a ParameterSeparating metódus álltja be.

ParameterSeparating metódus

Az MVC-s akciók Request.QueryString és Request.Form tulajdonségénak szétválasztása a kért (elvárt) és egyéb paraméterekre. A megadott tulajdonságokban szereplő paramétereket két részre osztja. Egy RequestedParameters és egy OtherParameters szótárra. Hogy mi kerüljön a RequestedParameters szótárba azt egy statikus osztályban kell beállítani, melynek segítségével aztán hivatkozhatunk a szótár elemeire. Az összes túlterhelés:

void ParameterSeparating(Type requestedParametersType, bool isAddUserName = true, bool ignoreCase = true)
void ParameterSeparating(SeparatingSource source, Type requestedParametersType, bool isAddUserName = true, bool ignoreCase = true)
void ParameterSeparating(NameValueCollection collection, Type requestedParametersType, bool isAddUserName = true, bool ignoreCase = true)
void ParameterSeparating(string[][] paramlist, Type requestedParametersType, bool isAddUserName = true, bool ignoreCase = true)
Paraméter Leírás
requestedParametersType Az elvárt paramétereket tartalmazó osztály.
isAddUserName Hozzáadja-e automatikusan az OtherParameters szótárhoz az aktuális felhasználó nevét (User.Identity.Name) a SystemVariableNames.UserName kulccsal. Alapértelmezett értéke: true.
ignoreCase Betű méret figyelmen kívül hagyása az összehasonlítás során. Alapértelmezett értéke: true.
source Egy SeparatingSource enum érték, mely a szeparáció forrását és sorrendjét határozza meg.
collection Egy NameValueCollection típus, amelynek az elemeit kell szétválogatni.
paramlist Egy string[][] típus, amelynek az elemeit kell szétválogatni.

A kért (elvárt) paramétereket tartalmazó osztály

Az alábbi minta a Vrh.Web.FileManager Index akciójának lehetséges paraméterei:

/// <summary>
/// Az akciók által átvehető url paraméterek nevei.
/// </summary>
public static class QParams
{
    /// <summary>
    /// XmlParser kapcsolati sztring (connection string).
    /// </summary>
    public const string Xml = "xml";

    /// <summary>
    /// A FileManager definíció azonosítója, amely alapján a keresés és megjelenítés megtörténik.
    /// </summary>
    public const string Id = "id";

    /// <summary>
    /// A hívó által kért nyelv kódja, ha üres, akkor a releváns nyelvi kód lesz.
    /// </summary>
    public const string LCID = "lcid";

    /// <summary>
    /// A definícióban megadott gyökér mappa alatti mappa útvonal.
    /// </summary>
    public const string Folder = "folder";

    /// <summary>
    /// A definícióban megadott gyökér mappa alatti mappa útvonal.
    /// </summary>
    public const string File = "filename";
}

Felhasználási minták

A base.ParameterSeparating metódus létrehozza és feltölti a base.RequestedParameters szótárat, melynek pont annyi eleme van, ahány mezője a QParams statikus osztálynak, és a szótárban a kulcsok megegyeznek az osztály tulajdonságainak értékével. A szótárban az értékek az ugyanolyan nevű URL paraméterekben érkezett értéket kapják.

public ActionResult Index()
{
    base.ParameterSeparating(typeof(QParams));

    if (String.IsNullOrWhiteSpace(base.RequestedParameters[QParams.LCID]))
    {   // A ForcedLanguageCode a BaseController konstruktorában megkapja a MultiLanguageManager.RelevantLanguageCode-ot
        base.RequestedParameters[QParams.LCID] = base.ForcedLanguageCode;
    }
    else
    {
        base.ForcedLanguageCode = base.RequestedParameters[QParams.LCID];
    }
    if (String.IsNullOrWhiteSpace(base.RequestedParameters[QParams.Folder]))
    {
        base.RequestedParameters[QParams.Folder] = WebCommon.SIGN_BACKSLASH;
    }
    return View(ACTION_INDEX, model);
}

Amennyiben nem az alapértelmezett Request.QueryString NameValueCollection-t kell feldolgozni, akkor létezik olyan túlterhelése a metódusnak, amelyben megadható a feldolgozandó NameValueCollection. Példaként egy POST metódust van itt, melyben a Request.Form kollekciót kell feldolgozni:

[HttpPost]
public ActionResult SetValami()
{
    base.ParameterSeparating(Request.Form,typeof(QParams));
}

Létezik egy olyan túlterhelés is, melyben mind a Request.QueryString és a Request.Form feldolgozása is megtörténik. Ebben az esetben az első paraméter az, amelyik meghatározza a szeparáció forrását és sorrendjét.

/// <summary>
/// ParameterSeparating metódus gyűjtemény nélküli túlterhelésében
/// a szeparáció forrását és sorrendjét határozza meg.
/// </summary>
protected enum SeparatingSource
{
    /// <summary>
    /// A szeparációban csak a Request.QueryString vesz részt. 
    /// Ez az alapértelmezés.
    /// </summary>
    OnlyQueryString,

    /// <summary>
    /// A szeparációban csak a Request.Form vesz részt. 
    /// </summary>
    OnlyForm,

    /// <summary>
    /// A szeparációban elsőként Request.QueryString, majd
    /// a Request.Form feldolgozása történik meg. 
    /// </summary>
    FirstQueryString,

    /// <summary>
    /// A szeparációban elsőként Request.Form, majd
    /// a Request.QueryString feldolgozása történik meg. 
    FirstForm,
}

A hívási minta:

[HttpPost]
public ActionResult SetValami()
{
    base.ParameterSeparating(SeparatingSource.FirstForm,typeof(QParams));
}

A fenti mintában elsőként a Request.Form szeparálása történik meg, majd a Request.QueryString feldolgozása. A későbben elvégzett szeparáció során a

már a szótárakban létező elemek felülíródhatnak, ha ugyanolyan nevű paramétert talál.


WebCommon osztály

Egy statikus osztály hasznos segédeszközökkel.

Állandók

Alábbi értékek eléréséhez egy minta: Vrh.Web.Common.Lib.WebCommon.HTML_NEWLINE.

Állandó Értéke Leírás
HTML_NEWLINE <br /> A html-ben használatos új sor karaktersorozat.
SIGN_RELATIVE ~ A relatív hivatkozás jele az útvonalakban.
SIGN_SLASH / A "/" jel állandója.
SIGN_BACKSLASH \ A "\" jel állandója.

EditModeLetters osztály alatti állandók

Szerkesztési mód betűjelek lehetséges értékei. Alábbi értékek eléréséhez egy minta: Vrh.Web.Common.Lib.WebCommon.EditModes.SELECT.

Állandó Értéke Leírás
SELECT s A csak lekédezést lehetővé tévő szerkesztési mód betű jele.
ADD a Létrehozás és módosítást engedő szerkesztési mód betű jele.
DELETE d A fentiek mellett a törlést is engedő szerkesztési mód betű jele.
MANAGE m Általános kezelést engedő szerkesztési mód betű jele.

És létezik egy metódus is, amely visszaadja az értékeket egy stringben vesszővel elválasztva. All() = "s,a,d,m"

Tulajdonságok

Név Leírás
Layout Az alkalmazás számára érvényes általános layout. Alapértelmezés: "~/Views/Shared/_Layout.cshtml"
DefaultViewMode ViewMode alapértelmezett értéke. Futás közen módosítható. Alapértelmezés: ViewModes.Desktop

Metódusok

Base10ToBase

Egy decimális számot átalakít a megadott számrendszer szerinti számra, amelyet string formában ad vissza. A számrendszer 2 és 36 között lehet, beleértve a határokat is. Visszatérő értéke a megadott számrendszerbeli szám egy stringben.

static string Base10ToBase(long decNumber, int radix = 36)
Paraméter Leírás
decNumber A konvertálandó decimális szám.
radix A számrendszer alapja. Alapértelmezés: 36.

ErrorListBuilder

Egy kivételből összeszedi a keletkezett InnerException-öket, és abból egy listát képez. A DbEntityValidationException-t, és a Data dictionary-t is kifejti.

static List<string> ErrorListBuilder(Exception ex, string innerExceptionLabel = null)
Paraméter Leírás
ex Exception, melyet ki kell fejteni.
innerExceptionLabel InnerException üzenet kiírásakor ezzel vezeti be az üzenetet. Alapértelmezés: "Inner exception: ".

RealPath

Ha a megadott fájl név relatív útvonal, akkor elé illeszti az első paraméterben megadott mappát, ami a relatív hivatkozás feloldása. Ha fájlnév relatív, akkor az összefűzött útvonal, ha nem relatív, akkor maga a fájl név a visszatérő érték. Csak útvonal sztring műveletek, nem ellenőriz létezést vagy érvényességet.

string RealPath(string appPath, string fileName)
Paraméter Leírás
appPath A relatív értéket feloldó fizikai mappa.
fileName A relatív (vagy teljes) fájlnév.

SqlLikeToRegex

SQL like mintát fordít át egy reguláris kifejezés mintájává.

string SqlLikeToRegex(string like)
Paraméter Leírás
like A relatív értéket feloldó fizikai mappa.

ViewModeParser

A ViewMode beállítása egy megadott string alapján.

static ViewModes ViewModeParser(string viewMode, bool isThrowException = false)
Paraméter Leírás
viewMode A view mode sztring értéke. Ha null vagy üres, akkor az ApplicationCookie.DefaultViewMode lesz beállítva.
isThrowException Ha igaz, akkor rossz érték esetén hibát dob, egyébként a DefaultViewMode-dal tér vissza.

DataTables támogatás

DataTables statikus osztály

Egyelőre egy statikus osztályt tartalmaz, ami konstansokat tartalmaz a DataTables rendezésének segítéséhez.

/// <summary>
/// A DataTables működését támogató statikus osztály,
/// mely hasznos tagokat és metódusokat tartalmaz a 
/// szerver oldali működés támogatására.
/// </summary>
public static class DataTables
{
    /// <summary>
    /// A DataTables támogatásában hasznos állandók gyűjtőhelye.
    /// </summary>
    public static class Constants
    {
        /// <summary>
        /// Növekvő rendezés jelzése a DataTables-ben.
        /// </summary>
        public const string ORDER_ASC = "asc";

        /// <summary>
        /// Csökkenő rendezés jelzése a DataTables-ben.
        /// </summary>
        public const string ORDER_DESC = "desc";
    }
}

DataTablesIn osztály

/// <summary>
/// Egy osztály, amely a dataTables plugin által küldött
/// paramétereket tartalmazza. (Json class sent from dataTables)
/// </summary>
public class DataTablesIn
{
    /// <summary>
    /// Rajz számláló. 
    /// Annak biztosítására, hogy az ajax aszinkronitása ellenére is
    /// a kirajzolás megfelelő sorrendben történjen.
    /// </summary>
    public int Draw { get; set; }

    /// <summary>
    /// A kirajzolt első rekord indexe.
    /// </summary>
    public int Start { get; set; }

    /// <summary>
    /// A rekordok száma, amit a tábla megjelenít.
    /// </summary>
    public int Length { get; set; }

    /// <summary>
    /// Az oszlopok listája.
    /// </summary>
    public List<DTColumn> Columns { get; set; }

    /// <summary>
    /// A teljes táblázatra érvényes kereső objektum.
    /// </summary>
    public DTSearch Search { get; set; }

    /// <summary>
    /// A rendezettség listája. (Több oszlopot is tartalmazhat a rendezés.)
    /// </summary>
    public List<DTOrder> Order { get; set; }

    #region DTColumn class
    /// <summary>
    /// Egy oszlopot leíró osztály.
    /// </summary>
    public class DTColumn
    {
        /// <summary>
        /// Az oszlop tartalma.
        /// </summary>
        public string Data { get; set; }

        /// <summary>
        /// Az oszlop neve (azonosítója).
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// Az oszlop kereshető-e.
        /// </summary>
        public bool Searchable { get; set; }

        /// <summary>
        /// Az oszlop rendezése engedélyezve van-e.
        /// </summary>
        public bool Orderable { get; set; }

        /// <summary>
        /// Az oszlopra vonatkozó kereső objektum.
        /// </summary>
        public DTSearch Search { get; set; }
    }
    #endregion DTColumn class

    #region DTSearch class
    /// <summary>
    /// Egy keresést leíró osztály.
    /// </summary>
    public class DTSearch
    {
        /// <summary>
        /// Egy string kereső érték.
        /// </summary>
        public string Value { get; set; }

        /// <summary>
        /// Igaz, ha a kereső érték egy reguláris kifejezés.
        /// </summary>
        public bool Regex { get; set; }
    }
    #endregion DTSearch class

    #region DTOrder class
    /// <summary>
    /// Egy rendezést leíró osztály.
    /// </summary>
    public class DTOrder
    {
        /// <summary>
        /// Melyik indexű oszlop tartozik a rendezésbe. 
        /// </summary>
        public int Column { get; set; }

        /// <summary>
        /// A rendezettség iránya. 
        /// </summary>
        public string Dir { get; set; }
    }
    #endregion DTOrder class
}

Redis támogatás

RedisConnection osztály

Ha egy Redis adatszolgáltatót kell elérni, akkor a kiszolgálót és a használni kívánt pool-t is meg kell adni. Ezt egy redis kapcsolati sztringben kell megadni. Az osztály egy példánya létrehozható úgy is, ha egy ilyen kapcsolati sztringet adunk meg a konstruktorban. A konstruktor elvégzi a kapcsolati sztring feldolgozását és ellenőrzését, majd az értékeket elhelyezi a megfelelő tulajdonságokba:

string connectionString = "server:192.168.77.50;pool=ALM;port=6739;";
RedisConnection redisConnection = new RedisConnection(connectionString);
Tulajdonság Típus Leírás
Server string Redis server neve vagy IP címe.
Pool string Redis instance neve.
Port int Redis portszáma. Alapértelmezés 0.

A konstruktor pontos definíciója:

/// <summary>
/// A megadott kapcsolati string feldolgozásával áll elő egy redis kapcsolati példány.
/// </summary>
/// <param name="redisConnectionString">A Redis kapcsolati sztringje.</param>
/// <param name="isRequired">
/// Ha igaz, és <paramref name="redisConnectionString"/> null vagy üres, 
/// akkor hibát dob. Egyébként a példány létrejön üres értékekkel.
/// </param>
/// <exception cref="ArgumentNullException">
/// Ha null vagy üres a <paramref name="redisConnectionString"/> és 
/// <paramref name="isRequired"/> igaz.
/// </exception>
/// <exception cref="ApplicationException">Ha a sztring egyéb ok miatt nem helyes.</exception> 
public RedisConnection(string redisConnectionString, bool isRequired = true)

Version History:

2.19.3 (2023.06.05) Patches:

  • DataTables.Filter metódus módosítása. Enum összehasonlításkor volt típus konfliktus.

2.19.2 (2023.03.17) Patches:

  • BaseController.ForcedLanguageCode mostantól csak a MultiLanguageManager.ActiveLanguageCodes lista egy elemét fogadja el beállításként, egyébként nem változik az értéke.

2.19.1 (2023.03.03) Patches:

  • DataTables.Filter metódus módosítása. Mostantól a nullozható értéktípusok esetében is működik a szűrés.

2.19.0 CompatibleChange (nuget)

  • Áttérés a VRH.Common 3.0 változatára

2.18.1-2 Patches:

  • Az új Mlmgt metódusok megszüntetése. "params object[]" paraméter esetén, nem jók ezek a túlterhelések. A korábbi működéssel nem volt kompatibilis. A BaseController.ForcedLanguageCode beállításával el lehet érni a kívánt fordítást.

2.18.1 Patches:

  • Az új Mlmgt metódusok megszüntetése. "params object[]" paraméter esetén, nem jók ezek a túlterhelések. A korábbi működéssel nem volt kompatibilis. A BaseController.ForcedLanguageCode beállításával el lehet érni a kívánt fordítást.

2.18.0 (2022.10.26) Compatible changes:

  • DataTables.FilterTable és DataTables.FilterColumn navigációs tulajdonságok esestében is elvégzik a keresést.
  • DataTablesIn.DTColumn osztály kibővült egy SearchField nevű tulajdonsággal.
  • DataTables.Constants osztályra való hivatkozás mostantól fordítási hibát fog eredményezni. Már legalább 2 éve "Obsolete".
  • Frissítés a VRH.Common 2.25.0 változatára.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.21.2 változatára.
  • Frissítés a Vrh.XmlProcessing 1.30.3 változatára.

2.17.0 Compatible change (2022.10.24 nuget):

  • BaseController-ből a nemrég betett Log4ProCheckUser metódusok és összes vonzatuk törlése (és áthelyezésük a WebTools modulba) #### 2.16.0 Compatible change (2022.10.21 nuget):
  • új AddModelError metódusok hozzáadása #### 2.15.0 Compatible change (2022.10.20 nuget):
  • új Mlmgt metódusok hozzáadásaModel #### 2.14.0 Compatible change (2022.10.20 nuget):
  • ModelErrorMessageListBuilder hozzáadása #### 2.13.1-2 Patches: #### 2.13.0 Compatible change (2022.10.20 nuget):
  • BaseController funkcionális bővítése Log4ProCheckUser metódussal, a RunningControllerName és RunningActionName mezőkkel

2.12.2 (2022.10.10) Patches:

  • PagedList nuget csomag eltávolítása a projektből.
  • VRH.Web.Providers csomag eltávolítása a projektből.
  • Microsoft.AspNet.Providers csomag eltávolítása a projektből.
  • Microsoft.AspNet.Providers.Core csomag eltávolítása a projektből.

2.12.1 (2022.10.07) Patches:

  • Vrh.Membership nuget csomag eltávolítása a projektből.
  • Target framework mostantól 4.5.1. !!Ha "Target framework" megváltozik, akkor azért azt legalább jelezni kéne a history-ban!!

2.12.0 Compatible change (2022.10.05 nuget):

  • 2.11.0 módosítások visszavonása; 2.11 nuget csomag törlésre került a nuget szerverről

2.11.0 Compatible change (2022.10.04 nuget):

  • BaseController/Log4ProCheckUser metódusok beillesztése

2.10.2 (2022.09.14) Patches:

  • DataTables.FilterColumn() metódus mostantól nem dob hibát, ha Boolean mezők szűrését kell elvégeznie. Nem volt megvalósítva.
  • Frissítés a Microsoft.AspNet.Mvc 5.2.9 változatára.
  • Frissítés a Microsoft.Web.Infrastructure 2.0.0 változatára.
  • Frissítés a VRH.Common 2.23.1 változatára.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.20.2 változatára.
  • Frissítés a Vrh.XmlProcessing 1.30.2 változatára.

2.10.1 (2022.08.19) Patches:

  • DataTables.Filter() és DataTables.FilterTable() metódus NULL érték lekezelése.
  • DataTables.Response() nem jól adta vissza a recordsTotal értéket.

2.10.0 (2021.09.12) Compatible change:

  • HtmlHelper megoldások átkerültek a VRH.Log4Pro.WebTools projektbe.

2.9.0 (2021.08.29) Compatible change:

  • Frissítés a Vrh.XmlProcessing 1.29.0 változatára, a ResponseTargets enum áthelyezése miatt.
  • Frissítés a Newtonsoft.Json 13.0.1 változatára.

2.8.0 (2021.07.22) Compatible change:

  • WebCommon.LayoutNoMenu konstans bevezetése, amely egy minimalizált, praktikusan egy menü nélküli layout elérési útját tartalmazza

2.7.1 (2021.03.11) Patch Extension:

  • VrhHtmlHelper-ben a common actions kezelő egység a html.action link-et nem jól állította össze

2.7.0 (2021.02.17) Compatible Extension:

  • RefreshButtons osztály hozzáadása a VrhHtmlHelper eszközök közé

2.6.3 (2021.02.15) Patches:

  • A BaseController.ParameterSeparating javítása, hogy a paraméter osztály mezőit akkor is megtalálja, ha azok származtatott osztályokon keresztül épülnek fel.

2.6.2 (2021.02.10) Compatible changes:

  • VrhHtmlHelper.ActionPanel és VrhHtmlHelper.HelpPanel osztályok és egyéb kiegészítő helperek hozzáadása

2.6.1 (2021.01.26) Patches:

  • Verzió beállítása merge után.

2.6.0 (2021.01.24) Compatible changes:

  • Belekerült a BaseController-be a SetMLMCookie metódus, mely beállítja a controller session-re érvényes nyelvi cookie-t.
  • ActionButtonPanel osztály és HtmlHelper hozzáadása

2.5.8 (2021.01.20) Patches:

  • Frissítés a VRH.Common 2.20.1 változatára.
  • Frissítés a Vrh.XmlProcessing 1.24.0 változatára.

2.5.7 (2020.11.24) Patches:

  • Frissítés a Vrh.XmlProcessing 1.19.1 változatára.

2.5.7 (2020.11.12) Patches:

  • Frissítés a VRH.Common 2.19.0 változatára.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.17.6 változatára.
  • Frissítés a Vrh.XmlProcessing 1.18.5 változatára.

2.5.6 (2020.03.28) 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.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.10.1 változatára.

2.5.5 (2020.03.26) Patches:

  • Frissítés a VRH.Common 2.13.1 változatára.
  • XML dokumentáció pontosítása.
  • Frissítés az MSTest.TestAdapter 2.1.0 változatára. (Ez csak a Test projektet érinti!)
  • Frissítés az MSTest.TestFramework 2.1.0 változatára. (Ez csak a Test projektet érinti!)

2.5.3-4 (2020.03.19) Patches:

  • WebCommon néhány metódusa és állandója átkerült a VRH.Common-ba. WebCommon osztály hívásai nem változtak, a VRH.Common-ba hívnak bele.
  • CookieWebClient osztály is átkerült a VRH.Common-ba.

2.5.2 (2020.03.06) Patches:

  • A DataTables.Response metódus 1. túlterhelése: Ha IQueryable az átadott lekérdezés, akkor elvégzi előbb rajta a szűrést és rendezést, és utána adja vissza a választ.
  • A DataTables.Response metódus 2. túlterhelése: Ha IOrderedQueryable az átadott lekérdezés, akkor csak a választ adja vissza.
  • A DataTables.Order metódusban az összefűzött (több oszlopra vonatkozó) rendezésben lévő hiba javítása.

2.5.1 (2020.03.03) Patches:

  • A DataTables.FilterTable metódus második paramétere DataTablesIn típusra változott. Csak a táblázatban kereshetőnek jelölt oszlopokot veszi figyelembe a tábla szintű szűrésnél.

2.5.0 (2020.02.22) Compatible changes:

  • Új DataTables.FilterTable metódus, mely megvalósít egy tábla szintű szűrést (a teljes oszlopkészleten tartalmazás vizsgálattal).
  • Új DataTables.FilterColumn metódus, mely megvalósít egy oszlop szintű szűrést.
  • Új DatTables.Filter metódus, mely végrehajtja a FilterTable metódust, és az összes oszlopra a FilterColumn metódust.
  • Dátum szűréskor, ha használjuk a vezérlő karaktereket, és mögöttük érvényes integer szám van, azt évszámnak (ÉÉÉÉ) tekinti e verziótól. "Before" esetén ÉÉÉÉ.01.01 00:00:00, "After" esetén ÉÉÉÉ.12.31 23:59:59 értéket képez az összehasonlításhoz. A "Between"-ben értelemszerűen a bal oldalon az előbbi, a jobb oldalon az utóbbi érték képződik.
  • A korábbi szűrésre vonatkozó megoldások megmaradtak a BaseController-ben, de hamarosan Obsolete jelölést kapnak.
  • Új DataTables.Order metódus, mely végrehajtja az igényelt rendezéseket.
  • Új DataTables.Response metódus, mely végrehajtja a szűrést, a rendezést, és előállítja a jquery.datatables számára szükséges választ.
  • WebCommon kibővült egy bool IsNumericType(Type) metódussal. Igazzal tér vissza, ha a típus numerikus.
  • Az objektum osztálynak is lett egy új bővítése. Pl. int a= 1; a.IsNumericType() igazzal jelzi, ha numerikus.
  • Frissítés a VRH.Common 2.12.1 változatára.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.10.0 változatára.
  • Frissítés a Vrh.XmlProcessing 1.17.0 változatára.

2.4.1 (2020.01.27) Patches - release:

  • A HtmlHelperExtensions osztály névtere helytelen volt, javítás után a névtér helyesen: "Vrh.Web.Common.Lib".
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.9.2 változatára.
  • Frissítés a Vrh.XmlProcessing 1.15.2 változatára.

2.4.0 (2019.09.28) Compatible changes - release:

  • A BaseController automatikusan előállít egy ViewBag.ValidationSummaryMessage tulajdonságot üres sztring értékkel. A BaseController az OnActionExecuted eseményben a ModelState objektumból feltölti ebbe a változóba az üres sztring ("") kulcsú üzeneteket. A cshtml-ben egy egyszerű "vrhct.bootbox.alert('@ViewBag.ValidationSummaryMessage');" javascript sorral megoldhatjuk az üzenet kiírását. A "ValidationExtension" osztály megmaradt, továbbra is használható, de ez az új megoldás sokkal kisebb erőforrással elvégzi ugyanazt, mint az egész "ValidationExtension" osztály és a "ValidationSummary.cshtml" partial együttvéve.
  • A BaseController "DataTableSelector" tulajdonsága "Obsolete" jelölést kapott, meg fog szűnni a jövőben.
  • HtmlHelper kiterjesztésre került a VrhTextBox és VrhTextBoxFor metódusokkal, melyek ugyanazt tudják, mint a TextBox és TextBoxFor csak kapnak automatikusan egy "form-control" osztály jelölést.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.8.3 változatára.
  • Frissítés a Vrh.XmlProcessing 1.5.6 változatára.

2.3.1 (2019.09.12) Patches - release:

  • A BaseController-ben lett egy protected állandó MODELSTATE néven és "ModelState" értékkel a TempData szótár használatához.
  • A BaseController-nek lett egy csak olvasható protected tulajdonsága a BaseFolder, mely a HttpContext.Server.MapPath("~") hívás értékét tartalmazza. XmlParser-hez mindig kell, és így könnyebben elérhető.
  • Dokumentáció bővítése.
  • Frissítés a Vrh.XmlProcessing 1.5.2 változatára.

2.3.0 (2019.08.26) Compatible changes - debug:

  • BaseController.ParameterSeparating(string[][], type, bool, bool) metódus hozzzáadása.
  • BaseController.ParameterSeparating(SeparatingSource, type, bool, bool) metódus hozzáadása.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.8.1 változatára.
  • Frissítés a Vrh.XmlProcessing 1.5.0 változatára.

2.1.1 (2019.06.19) Patches - debug:

  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.5.2 változatára.
  • Frissítés a Vrh.XmlProcessing 1.3.0 változatára.

2.1.0 (2019.06.14) Compatible changes - debug:

  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.5.0 változatára.
  • VRH.ConnectionStringStore függőség megszűnt.

2.0.0 (2019.05.14) Incompatible changes - debug:

  • E verziótól az XmlParser, és minden XML feldolgozással kapcsolatos dolog már nem elérhető. Új hely: Vrh.XmlProcessing.
  • A standard JSON struktúrák és az IManage interfész át lett helyezve a Vrh.Common-ba.
  • Az ITransalation interfész és a TranslationBase osztály át lett helyezve a VRH.Log4Pro.MultiLanguageManager-be.
  • Minden "depricated" és "obsolete" jelölésű eszköz véglegesen megszűnt.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.4.0 változatára.
  • Vrh.XmlProcessing 1.0.0 hozzáadása.
  • Dokumentáció a változásoknak megfelelően frissítve.
  • ReadMe.md-ből a "csharp" jelölések cseréje "javascript"-re.

1.18.1 (2019.04.04) Patches - debug:

  • Frissítés a Microsoft.AspNet.Mvc 5.2.7 változatára.

1.18.0 (2019.03.01) Compatible changes - debug:

  • A CommonModel osztályba bekerült egy GetBoolList nevű metódus, mely bool mezők feletti szűréshez állít elő "","Igen","Nem" tartalmú SelectList-et nyelvhelyesen.
  • IManage interface létrehozása, mely meghatározza egy karbantartást biztosító osztály elvárt tulajdonságait és módszereit.
  • ITranslation interface létrehozása, mely meghatározza egy fordítási szolgáltatásokat biztosító osztály elvárt tulajdonságait és módszereit.
  • TranslationBase absztrakt osztály létrehozása egyéb osztályok alapozásához.
  • Frissítés a Microsoft.AspNet.Mvc 5.2.7 változatára.
  • Frissítés a Newtonsoft.Json 12.0.1 változatára.
  • Frissítés a VRH.Log4Pro.MultiLanguageManager 3.1.0 változatára.

1.17.0 (2018.12.17) Compatible changes - debug:

  • XmlConnection konstruktora levágja az elején és végén található white space és '/' karaktereket, a kapcsolati sztringben megadott 'element' össztevőről.
  • Kikerült a debug verzióból pár diagnosztikai célú üzenet kiírás.
  • VariableDictionary-ben elérhető a szeparátorok listája 'Separators' néven.
  • VariableDictionary.FindVariables visszatér egy listával, mely egy szövegben megtalált változók neveit tartalmazza.
  • XmlParser felépít egy XmlVarsInfo és egy ConectionStringsInfo szótárat. A szótár elemei VariableInfo típusúak, mely elmondja egy változóról, melyik fájlban található, milyen XPath kereső kifejezéssel érhető el, és honnan származik.

1.16.1 (2018.11.15) Patches - debug:

  • WebCommon.ErrorListBuilder már nem teszi be a '(0)'-kat a hibaüzenetbe.

1.16.0 (2018.10.26) Compatible changes - debug:

  • RedisConnection osztály beépítése. A WebMonitor és RedisManager számára hasznos, hogy egységes és következetes legyen.
  • CommonModel osztály beépítése rendszeresen használt tulajdonságokkal és metódusokkal.

1.15.1 (2018.10.20) Patches - debug:

  • A Microsoft.AspNet.Mvc 5.2.6 függőség beállítása. Frissítés már megvolt korábban.

1.15.0 (2018.10.11) Compatible changes - debug:

  • WebCommon.Base10ToBase() függvény beépítése, ami egy 10-es számrendszerbeli számot alakít át 2-36 számrendszer beli számmá.
  • XmlLinqBase.GetXElement metódusán kellett módosítani.

1.14.0 (2018.09.27) Compatible API changes - debug:

  • CookieApplicationSettings-ben EntryPointName lett a ReferenceName.

1.13.0 (2018.09.25) Compatible API changes - debug:

  • Lehet több XmlParser elem egy xml paraméterfájlban illetve egy konfigurációs elem alatt.
  • XmlParser elem tartalmazhat egy hivatkozást egy külső fájlra az Include attribútummal.

1.12.0 (2018.08.24) Compatible API changes - debug:

  • Frissítés a VRH.Log4Pro.MultilanguageManager 3.0.0-ás változatára.
  • DataTables támogatás: DataTables és DataTablesIn osztályok bevezetése.
  • CRUD támogatás: MasterData statikus osztály bevezetése.

1.11.0 (2018.08.13) Compatible API changes - debug:

  • CookieApplicationSettings osztály kiegészült a "WelcomeUrl" tulajdonsággal, hogy a Layout be tudja állítani a logo, és login/logout link értékét.

1.10.1 (2018.08.10) Patches - debug:

  • Az XmlParser hibakezelésén kellet javítani. Hibát dob, ha a konfigurációban megadott elem nem létezik.

1.10.0 (2018.08.10) Compatible API changes - debug:

  • CookieApplicationSettings osztály kiegészült a "ConfigurationName" és a "ReferenceName" tulajdonságokkal, hogy ez is megőrződjön az alkalmazás cookie-ban.

1.9.2 (2018.08.08) Patches - debug:

  • Az UrlElement.GetUrl() StringBuilder-t használ, és a paraméterek nevében vagy értékében előforduló "?&=" jeleket a szabványos URL encode értékre cseréli.
  • A ParameterSeparating metódus kapott egy túlterhelést (overload), amelyben megadható a feldolgozandó NameValueCollection.

1.9.1 (2018.08.01) Patches - debug:

  • A WebCommon.RealPath metódust kellet pontosítani.

1.9.0 (2018.07.27) Compatible API changes - debug:

  • VariableDictionary osztály bevezetése. A VariableCollection a 2.0-ás változattól már nem lesz használható.
  • ParameterQuery osztály megszűnt. A szolgáltatások a BaseController osztály ParameterSeparating metódusába vándoroltak.
  • 'USERNAME' rendszerváltozó automatikusan hozzáadódik az OtherParametersszótárhoz.

1.8.3 (2018.07.26) Patches - debug:

  • URL paraméterek azonnal hozzáadódnak az XmlVars gyűjteményhez, és ezeknek az értékét nem módosíthatja, ha van ilyen változó az xml paraméterfájlokban.

1.8.2 (2018.07.25) Patches - debug:

  • XmlParser és BaseController osztályokban történtek javítások.
  • A VariableCollection csak olyan változókat tartalmazhat, amelyek neve megfelel a "[a-zA-Z_]\w*" reguláris kifejezésnek.
  • XmlLinqBase az IDisposable osztályból származtatva

1.8.1 (2018.07.24) Patches - debug:

  • XmlConnection konstruktorában történt javítás. Alapértelmezett fájl és konfigurációnév megadással kapcsolatban.

1.8.0 (2018.07.16) Compatible API changes - debug:

  • ParameterQuery osztály bevezetése. A .NET-es akciók Request.QueryString-jének szétválasztása a kért és egyéb paraméterekre.
  • XmlConnection osztály bevezetése. XmlParser connection string feldolgozásához.
  • XmlParser új konstruktorokkal bővült, melyek alkalmasak az XmlConnection, ParameterQuery osztályok és az XmlParser connection string fogadására a példányosításkor.

1.7.1 (2018.06.30) Patches - debug:

  • A CookieApplicationSettings osztályban a Set metódusban a ProductName és CopyRight UrlEncode után kerül mentésre, és visszaolvasáskor UrlDecode történik. (A cookie nem tud letárolni UNICODE-ot.)

1.7.0 (2018.05.30) Compatible API changes - debug:

  • Elkészült egy újabb XmlParser konstruktor, mely nem konfigurációs nevet vár, hanem egy létező xml fájl nevét. Ez a konstruktor feldolgozza a gyökér XmlParser változóit, de nem foglalkozik annak Configuration elemével.

1.6.0 (2018.05.11) Compatible API changes:

  • ValidationExtension static osztály hozzáadása (a régi DataTables.dll-ből átemelve)

1.5.0 (2018.04.13) Compatible API changes:

  • CookieApplicationSettings osztály létrehozása.
  • A WebCommon static osztály létrehozása, a VRH web alkalmazásokban alapvetően vagy sokszor használt tulajdonságok és metódusok eléréséhez.
  • ViewModes enum létrehozása (Desktop, Mobile, Touch) értékekkel.

1.4.3 (2018.03.21) Patches:

  • VariableCollection.Substitution nem dob hibát, ha null értékű sztringet kap a behelyettesítéshez. Null-t add vissza ilyenkor.

1.4.2 (2018.03.19) Patches:

  • XmlParser újra abstract.

1.4.1 (2018.03.07) Compatible API changes:

  • XmlParser az érték nélküli változókat is létrehozza üres string értékkel.
  • Rendszerváltozó nevű XmlVar esetén hiba keletkezik.
  • Dokumentácó bővítése, javítása.

1.4.0 (2018.03.03) Compatible API changes:

  • XmlLinqBase, XmlCondition, XmlVariable és XmlParser osztály létrehozása, az XML feldolgozás egységesítéséhez.
  • Dokumentácó bővítése, javítása.

1.3.2 (2018.01.19) Patches:

  • UrlElement osztályban javítás és módosítás (konstruktor).

1.3.1 (2017.12.19) Patches:

  • Dokumentáció bővítése, pontosítása.
  • Új név került be a rendszerváltozók közé, a "USERNAME".

1.3.0 (2017.12.08) Compatibility API changes::

  • VariableCollection osztály létrehozása, az XML feldolgozáskor alkalmazott változók behelyettesítésére, és egységben tartására.
  • SystemVariableNames statikus osztály létrehozása a rendszerváltozók egységes kezelése céljából.
  • Dokumentációk bővítése és pontosítása.

1.2.3 (2017.11.30) Patches:

  • Dokumentáció bővítése, pontosítása.
  • BaseController.ErrorMessageBuilder már magától levágja az utolsó soremelést.

1.2.2 (2017.11.07) Patches:

  • A Vrh.Common.Serialization.Structures Lib kimozgatása az iScheduler alól ebbe az önálló solutionbe, és átnevezése Vrh.Web.Common.Lib-re
  • Nuget csomaggá alakítás