This commit is contained in:
skidoodle 2024-03-13 00:33:46 +01:00
commit e124a47765
19374 changed files with 9806149 additions and 0 deletions

Binary file not shown.

View file

@ -0,0 +1,7 @@
{
"config": {
"connectionStrings": [
"Data Source=kretalocal;User ID=kreta;Password=Porcica1.;Initial Catalog=KRETA_MOBIL_DevKornel;Connection Timeout=3000;"
]
}
}

View file

@ -0,0 +1,212 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Kreta.Ellenorzo.Dto</name>
</assembly>
<members>
<member name="T:Kreta.Ellenorzo.Dto.VN.Converter.UidConverter`1">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.10.
This converts the Uid dto model prop to a string value.
</summary>
</member>
<member name="T:Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.06.
This registers the converter functions called ModelToDto, but it's not mandatory to do.
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Felhasznalo.Alkalmazott.Tanar.OsztalyFonok.OsztalyfonokListRequestDto.Uids">
<summary>
Osztályfőnök uid lista filter pontosvesszővel elválasztva
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.HaziFeladat.HaziFeladatListRequestDto.DatumIg">
<summary>
Végdátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.HaziFeladat.HaziFeladatListRequestDto.DatumTol">
<summary>
Kezdő dátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="T:Kreta.Ellenorzo.Dto.VN.Documentation.DocumentationExampleDto">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.06.
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.BejelentettSzamonkeres.BejelentettSzamonkeresListRequestDto.DatumIg">
<summary>
Végdátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.BejelentettSzamonkeres.BejelentettSzamonkeresListRequestDto.DatumTol">
<summary>
Kezdő dátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.BejelentettSzamonkeres.BejelentettSzamonkeresListRequestDto.Uids">
<summary>
Uid lista filter pontosvesszővel elválasztva
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Adatszotar.AdatszotarResponseDto`1.Uid">
<summary>
Adatszótár elem uid vagy enum int value
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Adatszotar.AdatszotarResponseDto`1.Nev">
<summary>
Adatszótár neve vagy enum value; Egyedileg admin által rögzített adatszótár elem esetén AdatszotarElem
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Adatszotar.AdatszotarResponseDto`1.Leiras">
<summary>
Felhasználó számára megjeleníthető szöveges érték
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.OsztalyAtlag.SajatOsztalyAtlagListRequestDto.OktatasiNevelesiFeladatUid">
<summary>
Oktatási nevelési feladat filter
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.OsztalyAtlag.SajatOsztalyAtlagListRequestDto.TantargyUid">
<summary>
Tantárgy Uid filter. Paraméter üresen hagyása esetén nincs szűrés alkalmazva.
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.TanuloOsztalyCsoporthozViszonyitottTantargyiAtlagRequestDto.OsztalyCsoportUid">
<summary>
Az osztály egyedi azonosítója, csak aktív lehet
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto.DatumIg">
<summary>
Végdátum (ShortDateTime, UTC ISO 8601) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto.DatumTol">
<summary>
Kezdő dátum (ShortDateTime, UTC ISO 8601) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto.Uid">
<summary>
Uid filter (Id,ErtekelesJelleg)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto.TantargyUids">
<summary>
TantargyUid filter pontosvesszővel elválasztva
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Faliujsag.FaliujsagListRequestDto.DatumIg">
<summary>
Végdátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Faliujsag.FaliujsagListRequestDto.DatumTol">
<summary>
Kezdő dátum (UTC ISO 8601, BE ShortDateTime-ra normalizálja) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Fogadoora.FogadooraIdopontJelentkezesCreateRequestDto.FogadooraIdopontUid">
<summary>
A jelentkezni kívánt fogadóóra-időpont azonosítója
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Fogadoora.FogadooraListRequestDto.DatumIg">
<summary>
Végdátum (ShortDateTime, UTC ISO 8601) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Fogadoora.FogadooraListRequestDto.DatumTol">
<summary>
Kezdő dátum (DateTime, UTC ISO 8601) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="T:Kreta.Ellenorzo.Dto.VN.Interfaces.IDtoListDocumentation">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.05.
Az interface-t implementáló model a dokumentációban egy generikus példaválasz fog adni
</summary>
</member>
<member name="T:Kreta.Ellenorzo.Dto.VN.Interfaces.IDtoDocumentation">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.05.
Az interface-t implementáló model a dokumentációban egy példaválasz fog adni
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Intezmeny.Hetirend.HetirendListRequestDto.OrarendElemVegNapDatuma">
<summary>
Záró időpont (UTC ISO 8601) (A filter zárt intervallumot határoz meg)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Intezmeny.Hetirend.HetirendListRequestDto.OrarendElemKezdoNapDatuma">
<summary>
Kezdő időpont (UTC ISO 8601) (A filter zárt intervallumot határoz meg)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Orarend.OrarendElemGetRequestDto.OrarendElemUid">
<summary>
Órarendi elem uid-ja (Id, OraTipusa, OraDatuma UTC ISO 8601)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Orarend.OrarendElemListRequestDto.DatumIg">
<summary>
Záró időpont (UTC ISO 8601), az ebben az időpontban folyamatban lévő órát is vissaadjuk.
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Orarend.OrarendElemListRequestDto.DatumTol">
<summary>
Kezdő időpont (UTC ISO 8601), az ebben az időpontban folyamatban lévő órát is vissaadjuk.
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Feljegyzes.FeljegyzesListRequestDto.DatumIg">
<summary>
Végdátum (ShortDateTime, UTC ISO 8601) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Feljegyzes.FeljegyzesListRequestDto.DatumTol">
<summary>
Kezdő dátum (ShortDateTime, UTC ISO 8601) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Feljegyzes.FeljegyzesListRequestDto.Uid">
<summary>
Uid filter
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Mulasztas.MulasztasListRequestDto.DatumIg">
<summary>
Végdátum (ShortDateTime, UTC ISO 8601) is még a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Mulasztas.MulasztasListRequestDto.DatumTol">
<summary>
Kezdő dátum (ShortDateTime, UTC ISO 8601) is már a lekérdezés része (zárt intervallumon működik a szűrés)
</summary>
</member>
<member name="P:Kreta.Ellenorzo.Dto.VN.Mulasztas.MulasztasListRequestDto.Uid">
<summary>
Mulasztás Uid
</summary>
</member>
<member name="T:Kreta.Ellenorzo.Dto.VN.Utility.Extensions">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.06.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.Dto.VN.Utility.Extensions.ToIso8601Utc(System.DateTime)">
UTC: 2016-10-30T20:00:00Z
Local: 2016-10-30T23:00:00+01:00
Unspecified: 2016-10-30T22:00:00
</member>
<member name="M:Kreta.Ellenorzo.Dto.VN.Utility.Extensions.ToIso8601UtcString(System.DateTime)">
UTC: 2016-10-30T20:00:00Z
Local: 2016-10-30T23:00:00+01:00
Unspecified: 2016-10-30T22:00:00
</member>
</members>
</doc>

View file

@ -0,0 +1,278 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Kreta.Ellenorzo.Web</name>
</assembly>
<members>
<member name="T:Kreta.Ellenorzo.WebApi.WebApiConfig">
<summary>
Web Api configuration class
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.WebApiConfig.Register(System.Web.Http.HttpConfiguration)">
<summary>
Web Api configuration entry
</summary>
<param name="config">HttpConfiguration for configuring web Api</param>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Logic.EnumLogic">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.06.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.BejelentesController.CovidBejelentes">
<summary>
Covid fertőzöttség bejelentése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.GetErtekeles(System.String)">
<summary>
Tanuló egy értékelése
</summary>
<param name="uid">Uid filter</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.ListErtekeles(Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto)">
<summary>
Tanuló értékelései
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.ListBizonyitvany(Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto)">
<summary>
Tanuló bizonyítvány értékelései
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.ListNemBizonyitvanyok(Kreta.Ellenorzo.Dto.VN.Ertekeles.ErtekelesListRequestDto)">
<summary>
Tanuló évközi + egyéb (modulzáró vizsga, pótvizsga...) értékelései
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.ListAktualisTanuloTantargyiAtlag(Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.TantargyiAtlag.SajatTantargyiAtlagListRequestDto)">
<summary>
Tanuló összes tanult tantárgyának átlaga
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.ErtekelesController.ListOsztalyAtlag(Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.OsztalyAtlag.SajatOsztalyAtlagListRequestDto)">
<summary>
Tanuló összes tanult tantárgyának átlaga és osztályátlaga
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.DummyEnumDocumentationController.GetDummyEnum">
<summary>
Nem hívható, technikai endpoint. Rendszerben megtalálható enum értékek lekérdezése.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.DummyEnumDocumentationController.ListDummy">
<summary>
Nem hívható, technikai endpoint. Még el nem készült BE fejlesztések tesztelésére.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.TargyiEszkozController.PostGondviseloEszkozIgenyles(Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo.RegisztracioRequestDto)">
<summary>
Gondviselő eszköz igényléshez szükséges adatainak elküldése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.TargyiEszkozController.IsRegisztralt">
<summary>
Gondviselő regisztrált-e már
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.TargyiEszkozController.IsEszkozKiosztva">
<summary>
A gondviselőhöz tartozó tanulónak van-e már kiosztott eszköze
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FogadooraController.ListFogadoorak(Kreta.Ellenorzo.Dto.VN.Fogadoora.FogadooraListRequestDto)">
<summary>
Fogadóórák időpontjainak lekérdezése gondviselők számára
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FogadooraController.GetFogadoora(System.String)">
<summary>
Fogadóóra lekérdezése gondviselők számára
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FogadooraController.DeleteFogadooraIdopontJelentkezes(System.String)">
<summary>
Jelentkezett fogadóóra időpont lemondás
</summary>
<param name="uid">Fogadóóra időpont uid-ja</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FogadooraController.CreateFogadooraIdopontJelentkezes(System.String)">
<summary>
Gondviselő fogadóóra-időpont jelentkezés
</summary>
<param name="uid">Fogadóóra időpont uid-ja</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.IntezmenyController.GetIntezmeny">
<summary>
Saját intézmény adatai
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.LepController.GetEloadasok">
<summary>
Lázár Ervin Program előadások lekérdezése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.LepController.GondviseloEngedelyezes(Kreta.Ellenorzo.Dto.VN.Lep.GondviseloEngedelyezesRequestDto)">
<summary>
Lázár Ervin Program előadás engedélyezése, elutasítása vagy függőbe tétele.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.OsztalyCsoportController.ListTanuloOsztalyCsoport">
<summary>
Osztályok és csoportok, amikbe a tanuló valaha be volt sorolva az aktuális tanévben.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.TanevRendjeController.ListTanevRendje">
<summary>
Tanulóra vonatkozó tanév rendje elemek
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.HetirendController.ListHetirend(Kreta.Ellenorzo.Dto.VN.Intezmeny.Hetirend.HetirendListRequestDto)">
<summary>
Órarendhez tartozó hetirendi elemek
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FaliujsagController.ListFaliujsag(Kreta.Ellenorzo.Dto.VN.Faliujsag.FaliujsagListRequestDto)">
<summary>
Tanuló számára megjelenő admin és tanár által rögzített faliújság elemek
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.MulasztasController.GetMulasztas(System.String)">
<summary>
Tanuló mulasztás entitás lekérdezése
</summary>
<param name="uid">Mulasztás Uid filter</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.MulasztasController.ListMulasztas(Kreta.Ellenorzo.Dto.VN.Mulasztas.MulasztasListRequestDto)">
<summary>
Tanuló mulasztásai
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.OrarendController.ListOrarend(Kreta.Ellenorzo.Dto.VN.Orarend.OrarendElemListRequestDto)">
<summary>
Visszaadja a tanuló órarendi elemeit egy megadott időszakra (tanév rendje eseményeket is)
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.OrarendController.GetOrarendElem(Kreta.Ellenorzo.Dto.VN.Orarend.OrarendElemGetRequestDto)">
<summary>
Órarend elem entitás lekérdezése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.HaziFeladatController.GetHaziFeladat(System.String)">
<summary>
Házi feladat entitás lekérdezése
</summary>
<param name="uid">Házi feladat Uid filter</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.HaziFeladatController.ListHaziFeladat(Kreta.Ellenorzo.Dto.VN.HaziFeladat.HaziFeladatListRequestDto)">
<summary>
Házi feladatok lekérdezése határidő alapján
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FeljegyzesController.GetFeljegyzes(System.String)">
<summary>
Tanuló tanítási órán tanár által generált feljegyzése
</summary>
<param name="uid">Feljegyzés Uid filter</param>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FeljegyzesController.ListFeljegyzes(Kreta.Ellenorzo.Dto.VN.Feljegyzes.FeljegyzesListRequestDto)">
<summary>
Tanuló tanítási órán tanár által generált feljegyzései
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.GetTanuloAdatlap">
<summary>
Tanulóval, gondviselőivel és intézményével kapcsolatos információk és elérhetőségek
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.GetOsztalyfonokok(Kreta.Ellenorzo.Dto.VN.Felhasznalo.Alkalmazott.Tanar.OsztalyFonok.OsztalyfonokListRequestDto)">
<summary>
Osztályfőnökök lekérése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.PostBankszamla(Kreta.Ellenorzo.Dto.VN.Felhasznalo.BankszamlaRequestDto)">
<summary>
Bankszámlaszám rögzítése a tanulóhoz.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.DeleteBankszamla">
<summary>
Tanuló bankszámlaszámának törlése.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.PostElerhetoseg(Kreta.Ellenorzo.Dto.VN.Felhasznalo.ElerhetosegRequestDto)">
<summary>
Elérhetőség rögzítése tanulóhoz vagy gondviselőhöz.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.IsTorvenyesKepviselo">
<summary>
A gondviselő "Törvényes képviselő" tulajdonságának lekérdezése.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.GetGondviseloAdatlap">
<summary>
Gondviselő 4T adatainak lekérdezése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.PutGondviseloAdatlap(Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo.GondviseloBaseAdatlapRequestDto)">
<summary>
Gondviselő 4T adatainak módosítása
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.PostGondviseloEszkozIgenyles(Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo.RegisztracioRequestDto)">
<summary>
Gondviselő eszköz igényléshez szükséges adatainak elküldése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.FelhasznaloController.GetNapiErtesitesOsszefoglalo">
<summary>
Napi értesítés összefoglaló lekérdezése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.BejelentettSzamonkeresController.ListBejelentettSzamonkeres(Kreta.Ellenorzo.Dto.VN.BejelentettSzamonkeres.BejelentettSzamonkeresListRequestDto)">
<summary>
Bejelentett számonkérések lekérdezése
</summary>
</member>
<member name="M:Kreta.Ellenorzo.WebApi.VN.Controllers.BejelentettSzamonkeresController.GetBejelentettSzamonkeres(System.String)">
<summary>
Bejelentett számonkérés lekérdezése uid alapján
</summary>
<param name="uid">Bejelentett számonkérés Uid filter</param>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Documentation.DummyEnumExampleProvider">
<summary>
Author: Kovács Kornél (DevKornél), Madách Ferenc Created On: 2019.06.
</summary>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Documentation.DummyListExampleProvider`2">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.05.
</summary>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Documentation.DummyExampleProvider`2">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.05.
</summary>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Documentation.Helper.ExampleHelper">
<summary>
Author: Kovács Kornél (DevKornél) Created On: 2019.05.
Dokumentáció generálásához szükséges segédfüggvények
</summary>
</member>
<member name="T:Kreta.Ellenorzo.WebApi.VN.Documentation.ValidaciosHibaExample`2">
<summary>
Author: DevKornél Created On: 2019.05.
</summary>
</member>
<member name="M:Kreta.Ellenorzo.Web.VN.Controllers.CsatolmanyController.GetCsatolmany(System.String)">
<summary>
Csatolmány lekérdezése
</summary>
<param name="uid">A csatolmány egyedi azonosítója (Id)</param>
</member>
</members>
</doc>

View file

@ -0,0 +1,142 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Globalization;
using System.Linq;
using System.Net.Http;
using System.Reflection;
using System.Web.Http;
using System.Web.Http.Description;
using Kreta.Core.Configuratiaton;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.Dto.VN.Attributes;
using Kreta.Ellenorzo.WebApi;
using Swashbuckle.Application;
using Swashbuckle.Examples;
using Swashbuckle.Swagger;
using WebActivatorEx;
[assembly: PreApplicationStartMethod(typeof(SwaggerConfig), nameof(SwaggerConfig.Register))]
namespace Kreta.Ellenorzo.WebApi
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors")]
public class SwaggerConfig
{
private const string HeaderString = "header";
public class SwaggerChangeTypeFilter : ISchemaFilter
{
public void Apply(Schema schema, SchemaRegistry schemaRegistry, Type type)
{
if (schema?.properties == null || type == null)
{
return;
}
var selectedProperties = type.GetProperties().Where(t => t.GetCustomAttribute<SwaggerChangeTypeAttribute>() != null);
foreach (var property in selectedProperties)
{
var x = schema.properties[property.Name];
if (property.GetCustomAttribute<SwaggerChangeTypeAttribute>().NewType == typeof(string))
{
x.@ref = null;
x.type = "string";
}
else
{
throw new BlException(BlExceptionType.ElvartErtekNemTalalhato);
}
}
}
}
public static void Register()
{
if (bool.Parse(ConfigurationManager.AppSettings["IsSwaggerUiEnabled"]))
{
GlobalConfiguration.Configuration
.EnableSwagger(c =>
{
c.MultipleApiVersions(
(apiDesc, targetApiVersion) => ResolveVersionSupportByRouteConstraint(apiDesc, targetApiVersion),
(vc) =>
{
_ = vc.Version(VN.Constants.RoutePrefix, $"Kreta.Ellenorzo.WebApi {VN.Constants.RoutePrefix}");
}
);
c.IncludeXmlComments($"{AppDomain.CurrentDomain.BaseDirectory}\\App_Data\\Kreta.Ellenorzo.Web.XML");
c.IncludeXmlComments($"{AppDomain.CurrentDomain.BaseDirectory}\\App_Data\\Kreta.Ellenorzo.Dto.xml");
c.OperationFilter<ExamplesOperationFilter>();
c.OperationFilter<DescriptionOperationFilter>();
c.UseFullTypeNameInSchemaIds();
_ = c.ApiKey("Token")
.Description("Filling bearer token here")
.Name("Authorization")
.In(HeaderString);
c.OperationFilter<AddAuthorizationHeaderParameter>();
c.SchemaFilter<SwaggerChangeTypeFilter>();
c.RootUrl(ResolveBasePath);
})
.EnableSwaggerUi(c =>
{
c.DocExpansion(DocExpansion.List);
c.EnableApiKeySupport("Authorization", HeaderString);
});
}
}
private static string ResolveBasePath(HttpRequestMessage message)
{
var virtualPathRoot = message.GetRequestContext().VirtualPathRoot;
var schemeAndHost = "https://" + message.RequestUri.Host;
return new Uri(new Uri(schemeAndHost, UriKind.Absolute), virtualPathRoot).AbsoluteUri;
}
private static bool ResolveVersionSupportByRouteConstraint(ApiDescription apiDesc, string targetApiVersion)
{
string[] path = apiDesc.RelativePath.Split(new[] { '/' });
string pathVersion = path[0];
return CultureInfo.InvariantCulture.CompareInfo.IndexOf(pathVersion, targetApiVersion, CompareOptions.IgnoreCase) >= 0;
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses")]
private sealed class AddAuthorizationHeaderParameter : IOperationFilter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0")]
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
operation.parameters = operation.parameters ?? new List<Parameter>();
operation.parameters.Add(new Parameter
{
name = "Authorization",
@in = HeaderString,
description = "access token",
required = false,
type = "string"
});
if (ApiKeyConfiguration.Instance.Enabled)
{
operation.parameters.Add(new Parameter
{
name = "ApiKey",
@in = HeaderString,
description = "api key",
required = false,
type = "string",
@default = ApiKeyConfiguration.Instance.ApiKey
});
}
}
}
}
}

View file

@ -0,0 +1,46 @@
using System.Web.Http;
using Kreta.Core.JsonConverter;
using Kreta.Core.ModelBinder;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Web.Logging.Interceptors;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace Kreta.Ellenorzo.WebApi
{
/// <summary>
/// Web Api configuration class
/// </summary>
public static class WebApiConfig
{
/// <summary>
/// Web Api configuration entry
/// </summary>
/// <param name="config">HttpConfiguration for configuring web Api</param>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0")]
public static void Register(HttpConfiguration config)
{
System.Net.Http.Formatting.JsonMediaTypeFormatter formatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
formatter.SerializerSettings = new JsonSerializerSettings
{
Formatting = Formatting.Indented,
TypeNameHandling = TypeNameHandling.None
};
formatter.SerializerSettings.Converters.Add(new StringTrimConverter());
formatter.SerializerSettings.Converters.Add(new StringEnumConverter());
#pragma warning disable S3900 // Arguments of public methods should be validated against null
config.Filters.Add(new DefaultExceptionFilterAttribute());
#pragma warning restore S3900 // Arguments of public methods should be validated against null
config.Filters.Add(new ApiKeyAuthorizationAttribute());
config.Filters.Add(new IdpAuthorizeAttribute());
config.MapHttpAttributeRoutes();
config.MessageHandlers.Add(new ApiLoggingHandler());
config.BindParameter(typeof(string), new StringTrimModelBinder());
}
}
}

View file

@ -0,0 +1,54 @@
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using Kreta.Core.Configuratiaton;
namespace Kreta.Ellenorzo.Web.FilterAttributes
{
internal class ApiKeyAuthorizationAttribute : AuthorizationFilterAttribute, IOverrideFilter
{
public Type FiltersToOverride => typeof(IAuthorizationFilter);
public override void OnAuthorization(HttpActionContext actionContext)
{
if (!AccessGrantedByApiKey(actionContext.Request.Headers))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden)
{
Content = new StringContent("permission_denied")
};
}
}
private static bool AccessGrantedByApiKey(HttpRequestHeaders headers)
{
if (headers is null)
{
throw new ArgumentNullException(nameof(headers));
}
if (ApiKeyConfiguration.Instance.Enabled)
{
if (headers.TryGetValues(nameof(ApiKeyConfiguration.ApiKey), out var apiKeys))
{
var targetApiKey = apiKeys.FirstOrDefault();
if (!string.IsNullOrWhiteSpace(targetApiKey) && targetApiKey == ApiKeyConfiguration.Instance.ApiKey)
{
return true;
}
}
}
else
{
return true;
}
return false;
}
}
}

View file

@ -0,0 +1,95 @@
using System;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http.Filters;
using Kreta.Core;
using Kreta.Core.Domain;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Core.Validation.Exceptions;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Kreta.Framework.Entities;
using Kreta.Web.Logging.Extensions;
using Kreta.Web.Logging.Logger;
using Newtonsoft.Json;
namespace Kreta.Ellenorzo.WebApi.FilterAttributes
{
internal sealed class DefaultExceptionFilterAttribute : ExceptionFilterAttribute
{
private readonly string _mobileUserLogKey = "MobileUser";
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:Validate arguments of public methods", MessageId = "0")]
#pragma warning disable S1541 // Methods and properties should not be too complex
public override void OnException(HttpActionExecutedContext actionExecutedContext)
#pragma warning restore S1541 // Methods and properties should not be too complex
{
if (actionExecutedContext.Exception != null)
{
EllenorzoExceptionResponseDto response;
if (actionExecutedContext.Exception.InnerException is ValidationException validationException)
{
const BlExceptionType ResponseExceptionType = BlExceptionType.ModelValidacio;
var errorList = validationException.ValidationItems.Select(x => new DetailedErrorItem(x.Id, x.Message, BlExceptionType.ModelValidacio)).ToList();
response = new EllenorzoExceptionResponseDto(ResponseExceptionType, ResponseExceptionType.ToDisplayName(), errorList);
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.BadRequest);
actionExecutedContext.Response.Content = SerializeToHttpContent(response);
}
else if ((actionExecutedContext.Exception.InnerException ?? actionExecutedContext.Exception) is EntityNotFoundException)
{
const BlExceptionType ResponseExceptionType = BlExceptionType.NemLetezoEntitas;
response = new EllenorzoExceptionResponseDto(ResponseExceptionType, ResponseExceptionType.ToDisplayName());
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.NotFound);
actionExecutedContext.Response.Content = SerializeToHttpContent(response);
}
else if ((actionExecutedContext.Exception.InnerException ?? actionExecutedContext.Exception) is BlException blException)
{
var responseExceptionType = blException.ExceptionType;
var responseStatusCode = blException.GetResponseStatusCode();
if (responseStatusCode == HttpStatusCode.Forbidden && string.IsNullOrEmpty(blException.Message))
{
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(responseStatusCode);
actionExecutedContext.Response.Content = new StringContent("permission_denied");
return;
}
response = new EllenorzoExceptionResponseDto(responseExceptionType,
blException.Message,
blException.ErrorList);
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(responseStatusCode);
actionExecutedContext.Response.Content = SerializeToHttpContent(response);
}
else if ((actionExecutedContext.Exception.InnerException ?? actionExecutedContext.Exception) is OperationCanceledException)
{
var taskCancelledException = new BlException(BlExceptionType.TaskCancelled.ToDisplayName(), BlExceptionType.TaskCancelled, actionExecutedContext.Exception);
response = new EllenorzoExceptionResponseDto(taskCancelledException.ExceptionType, taskCancelledException.ExceptionType.ToDisplayName());
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(taskCancelledException.GetResponseStatusCode());
actionExecutedContext.Response.Content = SerializeToHttpContent(response);
actionExecutedContext.Exception = taskCancelledException;
}
else
{
response = new EllenorzoExceptionResponseDto(BlExceptionType.None, BlExceptionType.None.ToDisplayName());
actionExecutedContext.Response = actionExecutedContext.Request.CreateResponse(HttpStatusCode.InternalServerError);
actionExecutedContext.Response.Content = SerializeToHttpContent(response);
}
actionExecutedContext.Exception.Data.Add(_mobileUserLogKey, JsonConvert.SerializeObject(FelhasznaloLogic.GetFelhasznalo()));
if (!actionExecutedContext.Exception.Data.Contains(RequestResponseLoggingFields.Server.ExceptionId))
{
actionExecutedContext.Exception.Data.Add(RequestResponseLoggingFields.Server.ExceptionId, response.ExceptionId);
}
HttpContext.Current.AddException(actionExecutedContext.Exception);
}
}
private static HttpContent SerializeToHttpContent(object model) => new StringContent(JsonConvert.SerializeObject(model), Encoding.UTF8, "application/json");
}
}

View file

@ -0,0 +1,90 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Security.Claims;
using System.Security.Principal;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Http.Controllers;
using System.Web.Http.Filters;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.WebApi.VN.Logic;
namespace Kreta.Ellenorzo.WebApi.FilterAttributes
{
public sealed class IdpAuthorizeAttribute : AuthorizationFilterAttribute, IOverrideFilter
{
private readonly IEnumerable<FelhasznaloSzerepkor> _permitForRoles;
public Type FiltersToOverride => typeof(IAuthorizationFilter);
public IdpAuthorizeAttribute(params FelhasznaloSzerepkor[] permitForRoles)
{
_permitForRoles = permitForRoles;
}
public override Task OnAuthorizationAsync(HttpActionContext actionContext, CancellationToken cancellationToken)
{
if (actionContext == null)
{
throw new ArgumentNullException(nameof(actionContext));
}
ClaimsPrincipal principal = actionContext.ControllerContext.RequestContext.Principal as ClaimsPrincipal;
if (!(principal?.Identity?.IsAuthenticated ?? false))
{
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
{
Content = new StringContent("invalid_grant")
};
return Task.FromResult(0);
}
// KRETA2-5522 miatt van a user neve felülírva
actionContext.ControllerContext.RequestContext.Principal = new ClaimsPrincipal(new ClaimsIdentity(GetCustomIdentity(), principal.Claims));
if (_permitForRoles == null || !_permitForRoles.Any())
{
return Task.FromResult(0);
}
if (HasRole(principal))
{
return Task.FromResult(0);
}
actionContext.Response = new HttpResponseMessage(HttpStatusCode.Forbidden)
{
Content = new StringContent("permission_denied")
};
return Task.FromResult(0);
}
private bool HasRole(IPrincipal principal)
{
if (principal is ClaimsPrincipal claimsPrincipal)
{
var roleClaims = claimsPrincipal.Claims.Where(claim => claim.Type == ClaimTypes.Role);
foreach (var roleClaim in roleClaims)
{
if (Enum.TryParse(roleClaim.Value, out FelhasznaloSzerepkor role) && _permitForRoles.Contains(role))
{
return true;
}
}
}
return false;
}
private static GenericIdentity GetCustomIdentity()
{
var user = FelhasznaloLogic.GetFelhasznalo();
return new GenericIdentity($"{user.UserIdpUniqueId}/{user.InstituteCode}/{user.UserId}/{user.TutelaryId?.ToString() ?? "NULL"}/{user.SchoolYearId}");
}
}
}

View file

@ -0,0 +1 @@
<%@ Application Codebehind="Global.asax.cs" Inherits="Kreta.Ellenorzo.WebApi.WebApiApplication" Language="C#" %>

View file

@ -0,0 +1,60 @@
using System;
using System.Configuration;
using System.Web;
using System.Xml;
namespace Kreta.Ellenorzo.WebApi
{
public class WebApiApplication : HttpApplication
{
private static KretaServer.KretaServer s_kretaServer;
protected void Application_Start()
{
ServerStarter();
}
protected void Application_End(object sender, EventArgs e)
{
if (s_kretaServer != null)
{
if (s_kretaServer.IsRunning)
{
s_kretaServer.Stop();
}
else
{
#pragma warning disable S2696 // Instance members should not write to "static" fields
s_kretaServer = null;
#pragma warning restore S2696 // Instance members should not write to "static" fields
}
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
private static void ServerStarter()
{
if (s_kretaServer == null || !s_kretaServer.IsRunning)
{
XmlNode fullnode = (XmlNode)ConfigurationManager.GetSection("ServerConfig");
XmlDocument doc = new XmlDocument();
doc.LoadXml(fullnode.SelectSingleNode("/ServerConfig/config").OuterXml);
s_kretaServer = s_kretaServer ?? new KretaServer.KretaServer(doc.DocumentElement);
try
{
s_kretaServer.Start();
}
#pragma warning disable S2221 // "Exception" should not be caught when not required by called methods
catch
#pragma warning restore S2221 // "Exception" should not be caught when not required by called methods
{
#pragma warning disable S3626 // Jump statements should not be redundant
return;
#pragma warning restore S3626 // Jump statements should not be redundant
}
}
}
}
}

View file

@ -0,0 +1,511 @@
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>
</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{032EB11A-2412-4790-AD5C-A1403459F9C6}</ProjectGuid>
<ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Kreta.Ellenorzo.Web</RootNamespace>
<AssemblyName>Kreta.Ellenorzo.Web</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<UseIISExpress>false</UseIISExpress>
<Use64BitIISExpress />
<IISExpressSSLPort />
<IISExpressAnonymousAuthentication />
<IISExpressWindowsAuthentication />
<IISExpressUseClassicPipelineMode />
<UseGlobalApplicationHostFile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>App_Data\Kreta.Ellenorzo.Web.xml</DocumentationFile>
<NoWarn>1591</NoWarn>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="CacheManager.Core, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\CacheManager.Core.1.2.0\lib\net45\CacheManager.Core.dll</HintPath>
</Reference>
<Reference Include="CacheManager.StackExchange.Redis, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\CacheManager.StackExchange.Redis.1.2.0\lib\net461\CacheManager.StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="CacheManager.SystemRuntimeCaching, Version=1.2.0.0, Culture=neutral, PublicKeyToken=5b450b4fb65c4cdb, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\CacheManager.SystemRuntimeCaching.1.2.0\lib\net45\CacheManager.SystemRuntimeCaching.dll</HintPath>
</Reference>
<Reference Include="DevDefined.OAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a3261f5b4697e67d, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\DevDefined.OAuth.0.2\lib\DevDefined.OAuth.dll</HintPath>
</Reference>
<Reference Include="Easy.Logger, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Easy.Logger.3.2.0\lib\net40\Easy.Logger.dll</HintPath>
</Reference>
<Reference Include="Easy.Logger.Interfaces, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Easy.Logger.Interfaces.1.1.0\lib\net40\Easy.Logger.Interfaces.dll</HintPath>
</Reference>
<Reference Include="Elasticsearch.Net, Version=7.0.0.0, Culture=neutral, PublicKeyToken=96c599bbe3e70f5d, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Elasticsearch.Net.7.0.0\lib\net461\Elasticsearch.Net.dll</HintPath>
</Reference>
<Reference Include="Hangfire.Core, Version=1.7.27.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Hangfire.Core.1.7.27\lib\net46\Hangfire.Core.dll</HintPath>
</Reference>
<Reference Include="Hangfire.SqlServer, Version=1.7.27.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Hangfire.SqlServer.1.7.27\lib\net45\Hangfire.SqlServer.dll</HintPath>
</Reference>
<Reference Include="IdentityModel, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\IdentityModel.1.9.2\lib\net45\IdentityModel.dll</HintPath>
</Reference>
<Reference Include="IdentityServer3.AccessTokenValidation, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\IdentityServer3.AccessTokenValidation.2.14.0\lib\net45\IdentityServer3.AccessTokenValidation.dll</HintPath>
</Reference>
<Reference Include="Kreta.Core.Configuration, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Kreta.Core.Configuration.1.3.20119.1\lib\net452\Kreta.Core.Configuration.dll</HintPath>
</Reference>
<Reference Include="Kreta.Core.IoC, Version=1.2.63491.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Kreta.Core.IoC.1.2.63491\lib\net452\Kreta.Core.IoC.dll</HintPath>
</Reference>
<Reference Include="Kreta.Core.Validation, Version=2.0.16.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Kreta.Core.Validation.2.0.16\lib\net452\Kreta.Core.Validation.dll</HintPath>
</Reference>
<Reference Include="Kreta.Web.Logging, Version=1.4.5.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Kreta.Web.Logging.1.4.5\lib\net48\Kreta.Web.Logging.dll</HintPath>
</Reference>
<Reference Include="Kreta.Web.Logging.Abstractions, Version=1.0.12.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Kreta.Web.Logging.Abstractions.1.0.12\lib\net48\Kreta.Web.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\log4net.2.0.8\lib\net45-full\log4net.dll</HintPath>
</Reference>
<Reference Include="log4net.ElasticSearch, Version=2.3.6.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\log4net.ElasticSearch.2.3.6\lib\net45\log4net.ElasticSearch.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.DotNet.PlatformAbstractions, Version=2.0.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.DotNet.PlatformAbstractions.2.0.4\lib\net45\Microsoft.DotNet.PlatformAbstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Configuration.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Abstractions, Version=2.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Configuration.Abstractions.2.0.1\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Configuration.Binder, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Configuration.Binder.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyInjection.Abstractions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.DependencyModel, Version=2.0.4.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.DependencyModel.2.0.4\lib\net451\Microsoft.Extensions.DependencyModel.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options, Version=2.0.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Options.2.0.1\lib\netstandard2.0\Microsoft.Extensions.Options.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Options.ConfigurationExtensions, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Options.ConfigurationExtensions.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Primitives, Version=2.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Extensions.Primitives.2.0.0\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Logging, Version=5.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.IdentityModel.Logging.5.4.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Protocol.Extensions, Version=1.0.2.33, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.IdentityModel.Protocol.Extensions.1.0.2.206221351\lib\net45\Microsoft.IdentityModel.Protocol.Extensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Tokens, Version=5.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.IdentityModel.Tokens.5.4.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.4.1.0\lib\net45\Microsoft.Owin.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.HttpListener, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Host.HttpListener.3.1.0\lib\net45\Microsoft.Owin.Host.HttpListener.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Host.SystemWeb, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Host.SystemWeb.4.1.0\lib\net45\Microsoft.Owin.Host.SystemWeb.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Hosting, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Hosting.3.1.0\lib\net45\Microsoft.Owin.Hosting.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Security.4.1.0\lib\net45\Microsoft.Owin.Security.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.Jwt, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Security.Jwt.3.1.0\lib\net45\Microsoft.Owin.Security.Jwt.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Owin.Security.OAuth, Version=3.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Owin.Security.OAuth.3.1.0\lib\net45\Microsoft.Owin.Security.OAuth.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Web.Infrastructure, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.Web.Infrastructure.1.0.0.0\lib\net40\Microsoft.Web.Infrastructure.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="Nexius.Common, Version=18.37.0.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Nexius.Common.1.0.0.29\lib\Nexius.Common.dll</HintPath>
</Reference>
<Reference Include="Nexius.IdentityProvider.Model, Version=18.36.0.2101, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Nexius.IdentityProvider.Model.1.0.0.109\lib\Nexius.IdentityProvider.Model.dll</HintPath>
</Reference>
<Reference Include="Owin, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f0ebd12fd5e55cc5, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Owin.1.0\lib\net40\Owin.dll</HintPath>
</Reference>
<Reference Include="Pipelines.Sockets.Unofficial, Version=1.0.0.0, Culture=neutral, PublicKeyToken=42ea0a778e13fbe2, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Pipelines.Sockets.Unofficial.2.1.16\lib\net472\Pipelines.Sockets.Unofficial.dll</HintPath>
</Reference>
<Reference Include="Serilog, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.2.8.0\lib\net46\Serilog.dll</HintPath>
</Reference>
<Reference Include="Serilog.Formatting.Compact, Version=1.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Formatting.Compact.1.0.0\lib\net45\Serilog.Formatting.Compact.dll</HintPath>
</Reference>
<Reference Include="Serilog.Formatting.Elasticsearch, Version=0.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Formatting.Elasticsearch.8.0.0\lib\net45\Serilog.Formatting.Elasticsearch.dll</HintPath>
</Reference>
<Reference Include="Serilog.Settings.Configuration, Version=3.1.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Settings.Configuration.3.1.0\lib\net461\Serilog.Settings.Configuration.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.Elasticsearch, Version=8.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Sinks.Elasticsearch.8.0.0\lib\net461\Serilog.Sinks.Elasticsearch.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.File, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Sinks.File.4.0.0\lib\net45\Serilog.Sinks.File.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.PeriodicBatching, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Sinks.PeriodicBatching.2.1.1\lib\net45\Serilog.Sinks.PeriodicBatching.dll</HintPath>
</Reference>
<Reference Include="Serilog.Sinks.RollingFile, Version=2.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Serilog.Sinks.RollingFile.3.3.0\lib\net45\Serilog.Sinks.RollingFile.dll</HintPath>
</Reference>
<Reference Include="SimpleInjector, Version=4.0.11.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\SimpleInjector.4.0.11\lib\net45\SimpleInjector.dll</HintPath>
</Reference>
<Reference Include="SimpleInjector.Integration.WebApi, Version=4.0.11.0, Culture=neutral, PublicKeyToken=984cb50dea722e99, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\SimpleInjector.Integration.WebApi.4.0.11\lib\net45\SimpleInjector.Integration.WebApi.dll</HintPath>
</Reference>
<Reference Include="StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\StackExchange.Redis.2.1.58\lib\net472\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="Swashbuckle.Core, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cd1bb07a5ac7c7bc, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Swashbuckle.Core.5.6.0\lib\net40\Swashbuckle.Core.dll</HintPath>
</Reference>
<Reference Include="Swashbuckle.Examples, Version=3.12.0.0, Culture=neutral, PublicKeyToken=aa1e9c5053bfbe95, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Swashbuckle.Examples.3.12.0\lib\net40\Swashbuckle.Examples.dll</HintPath>
</Reference>
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.Composition" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.3.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Diagnostics.DiagnosticSource.4.5.1\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Diagnostics.PerformanceCounter, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Diagnostics.PerformanceCounter.4.7.0\lib\net461\System.Diagnostics.PerformanceCounter.dll</HintPath>
</Reference>
<Reference Include="System.IdentityModel" />
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=4.0.20622.1351, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.IdentityModel.Tokens.Jwt.4.0.2.206221351\lib\net45\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Pipelines, Version=4.0.2.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.IO.Pipelines.4.7.1\lib\netstandard2.0\System.IO.Pipelines.dll</HintPath>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Memory.4.5.3\lib\netstandard2.0\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net" />
<Reference Include="System.Net.Http, Version=4.1.1.3, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Net.Http.4.3.4\lib\net46\System.Net.Http.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Net.Http.Formatting, Version=5.2.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.AspNet.WebApi.Client.5.2.6\lib\net45\System.Net.Http.Formatting.dll</HintPath>
</Reference>
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Caching" />
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.6.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.2.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net463\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Encoding, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.X509Certificates, Version=4.1.1.2, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Security.Cryptography.X509Certificates.4.3.2\lib\net461\System.Security.Cryptography.X509Certificates.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Threading.Channels, Version=4.0.2.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Threading.Channels.4.7.1\lib\net461\System.Threading.Channels.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Web.DynamicData" />
<Reference Include="System.Web.Entity" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Web.Http, Version=5.2.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.AspNet.WebApi.Core.5.2.6\lib\net45\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.Owin, Version=5.2.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.AspNet.WebApi.Owin.5.2.6\lib\net45\System.Web.Http.Owin.dll</HintPath>
</Reference>
<Reference Include="System.Web.Http.WebHost, Version=5.2.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\Microsoft.AspNet.WebApi.WebHost.5.2.6\lib\net45\System.Web.Http.WebHost.dll</HintPath>
</Reference>
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Xml.Linq" />
<Reference Include="WebActivatorEx, Version=2.0.0.0, Culture=neutral, PublicKeyToken=7b26dc2a43f6a0d4, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\WebActivatorEx.2.2.0\lib\net40\WebActivatorEx.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\KretaWeb\Resources\DirtyWords.xml">
<Link>DirtyWords.xml</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="App_Data\Kreta.Ellenorzo.Dto.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="App_Data\Kreta.Ellenorzo.Web.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="Global.asax" />
<Content Include="Web.config">
<SubType>Designer</SubType>
</Content>
</ItemGroup>
<ItemGroup>
<Compile Include="..\..\..\Tools\SharedAssemblyInfo.cs">
<Link>Properties\SharedAssemblyInfo.cs</Link>
</Compile>
<Compile Include="App_Start\SwaggerConfig.cs" />
<Compile Include="App_Start\WebApiConfig.cs" />
<Compile Include="FilterAttributes\ApiKeyAuthorizationAttribute.cs" />
<Compile Include="VN\Common\Logic\EnumLogic.cs" />
<Compile Include="VN\Common\Logic\FelhasznaloLogic.cs" />
<Compile Include="FilterAttributes\DefaultExceptionFilterAtribute.cs" />
<Compile Include="FilterAttributes\IdpAuthorizeAttribute.cs" />
<Compile Include="Global.asax.cs">
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Startup.cs" />
<Compile Include="VN\Controllers\BejelentesController.cs" />
<Compile Include="VN\Controllers\ErtekelesController.cs" />
<Compile Include="VN\Controllers\DummyEnumDocumentationController.cs" />
<Compile Include="VN\Controllers\TargyiEszkozController.cs" />
<Compile Include="VN\Controllers\FogadooraController.cs" />
<Compile Include="VN\Controllers\IntezmenyController.cs" />
<Compile Include="VN\Controllers\CsatolmanyController.cs" />
<Compile Include="VN\Controllers\LepController.cs" />
<Compile Include="VN\Controllers\OsztalyCsoportController.cs" />
<Compile Include="VN\Controllers\TanevRendjeController.cs" />
<Compile Include="VN\Controllers\HetirendController.cs" />
<Compile Include="VN\Controllers\FaliujsagController.cs" />
<Compile Include="VN\Controllers\MulasztasController.cs" />
<Compile Include="VN\Controllers\OrarendController.cs" />
<Compile Include="VN\Controllers\HaziFeladatController.cs" />
<Compile Include="VN\Controllers\FeljegyzesController.cs" />
<Compile Include="VN\Controllers\FelhasznaloController.cs" />
<Compile Include="VN\Controllers\BejelentettSzamonkeresController.cs" />
<Compile Include="VN\Documentation\DescriptionLookUp.cs" />
<Compile Include="VN\Documentation\DescriptionOneNote.cs" />
<Compile Include="VN\Documentation\DummyEnumExampleProvider.cs" />
<Compile Include="VN\Documentation\DummyListExampleProvider.cs" />
<Compile Include="VN\Documentation\DummyExampleProvider.cs" />
<Compile Include="VN\Documentation\Helper\ExampleHelper.cs" />
<Compile Include="VN\Documentation\IntezmenyMarTanevetValtottExample.cs" />
<Compile Include="VN\Documentation\AMuveletNemVegezhetoElTobbszorExample.cs" />
<Compile Include="VN\Documentation\PermissionDeniedExample.cs" />
<Compile Include="VN\Documentation\LejartTokenExample.cs" />
<Compile Include="VN\Documentation\JogosulatlanExample.cs" />
<Compile Include="VN\Documentation\ValidaciosHibaExample.cs" />
<Compile Include="VN\Documentation\IsmeretlenHibaExample.cs" />
<Compile Include="VN\Documentation\NemLetezoEntitasExample.cs" />
<Compile Include="VN\Constants.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="..\..\..\KretaWeb\Resources\StringResources.kres">
<Link>StringResources.kres</Link>
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<Content Include="App_Data\IntezmenyConnectionString.json" />
<Content Include="VN\Documentation\SwaggerPostBuildCheck.ps1" />
<None Include="packages.config" />
<None Include="Properties\PublishProfiles\FolderProfile.pubxml" />
<None Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</None>
<None Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\Framework\Kreta.Framework.csproj">
<Project>{320ef478-7155-441d-b1e9-47ec3e57fb45}</Project>
<Name>Kreta.Framework</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.BusinessLogic\Kreta.BusinessLogic.csproj">
<Project>{8876fe0d-841e-422d-a5a0-59239cd98482}</Project>
<Name>Kreta.BusinessLogic</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.Client\Kreta.Client.csproj">
<Project>{4B28E52B-B531-403C-A827-2CC178FF8A4F}</Project>
<Name>Kreta.Client</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.Core\Kreta.Core.csproj">
<Project>{57418D3E-CAF1-482C-9B18-85D147ABD495}</Project>
<Name>Kreta.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.Enums\Kreta.Enums.csproj">
<Project>{1D5E0AC2-DFAB-4D32-9AD1-B5788A7D06BD}</Project>
<Name>Kreta.Enums</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.Job.Tasks.Core\Kreta.Job.Tasks.Core.csproj">
<Project>{5DC12A8B-4730-400F-BBE3-0A9072D6B2EE}</Project>
<Name>Kreta.Job.Tasks.Core</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.Job.Tasks\Kreta.Job.Tasks.csproj">
<Project>{3359C4C9-E530-4996-98C4-7C3AB513E163}</Project>
<Name>Kreta.Job.Tasks</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\Kreta.KretaServer\Kreta.KretaServer.csproj">
<Project>{62eb8504-1c3a-4db1-ab86-f96b2341e201}</Project>
<Name>Kreta.KretaServer</Name>
</ProjectReference>
<ProjectReference Include="..\Kreta.Ellenorzo.BL\Kreta.Ellenorzo.BL.csproj">
<Project>{750e1e45-76df-4a28-b218-234c560d7c6c}</Project>
<Name>Kreta.Ellenorzo.BL</Name>
</ProjectReference>
<ProjectReference Include="..\Kreta.Ellenorzo.Domain\Kreta.Ellenorzo.Domain.csproj">
<Project>{920ddac6-e3e7-4928-a9b3-2d84daf6d5b4}</Project>
<Name>Kreta.Ellenorzo.Domain</Name>
</ProjectReference>
<ProjectReference Include="..\Kreta.Ellenorzo.Dto\Kreta.Ellenorzo.Dto.csproj">
<Project>{757db990-1ad3-4b0a-82fb-353dd961042f}</Project>
<Name>Kreta.Ellenorzo.Dto</Name>
</ProjectReference>
<ProjectReference Include="..\Kreta.Ellenorzo.Enum\Kreta.Ellenorzo.Enums.csproj">
<Project>{e8717728-75ca-4f4a-b23d-53c593ff0840}</Project>
<Name>Kreta.Ellenorzo.Enums</Name>
</ProjectReference>
</ItemGroup>
<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>
<PropertyGroup>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<SignAssembly>false</SignAssembly>
</PropertyGroup>
<PropertyGroup>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="false" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}">
<WebProjectProperties>
<UseIIS>True</UseIIS>
<AutoAssignPort>True</AutoAssignPort>
<DevelopmentServerPort>38017</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>https://biatorbagyi.ekreta.hu/ellenorzo</IISUrl>
<NTLMAuthentication>False</NTLMAuthentication>
<UseCustomServer>False</UseCustomServer>
<CustomServerUrl>
</CustomServerUrl>
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
</WebProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<PropertyGroup>
<PostBuildEvent>powershell -ExecutionPolicy Unrestricted $(ProjectDir)\Vn\Documentation\SwaggerPostBuildCheck.ps1 -target $(ProjectDir)\Vn\Documentation</PostBuildEvent>
</PropertyGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
</Target>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View file

@ -0,0 +1,5 @@
using System;
using System.Reflection;
[assembly: AssemblyDescription("2019 eKRÉTA Informatikai Zrt. Szerző: Kovács Kornél (DevKornél)")]
[assembly: CLSCompliant(false)]

View file

@ -0,0 +1,55 @@
using System.Configuration;
using System.Web;
using Hangfire;
using IdentityServer3.AccessTokenValidation;
using Kreta.BusinessLogic;
using Kreta.Core.FeatureToggle;
using Kreta.Ellenorzo.WebApi;
using Kreta.Web.Logging.Logger;
using Microsoft.Owin;
using Owin;
using SimpleInjector;
using SimpleInjector.Integration.WebApi;
using SimpleInjector.Lifestyles;
using HangfireGlobalConfiguration = Hangfire.GlobalConfiguration;
using HttpGlobalConfiguration = System.Web.Http.GlobalConfiguration;
[assembly: OwinStartup(typeof(Startup))]
namespace Kreta.Ellenorzo.WebApi
{
public static class Startup
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
public static void Configuration(IAppBuilder appBuilder)
{
HttpGlobalConfiguration.Configure(WebApiConfig.Register);
_ = log4net.Config.XmlConfigurator.Configure();
_ = HangfireGlobalConfiguration.Configuration.UseSqlServerStorage("HangfireConnectionString");
var container = new Container();
container.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle();
container.InjectMobileBusinessLogic();
container.Register<IFeatureContext>(() => FeatureContext.Instance, Lifestyle.Singleton);
container.Register(() => TraceLoggerFactory.Create(HttpContext.Current), Lifestyle.Scoped);
container.RegisterWebApiControllers(HttpGlobalConfiguration.Configuration);
container.Verify();
HttpGlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(container);
_ = appBuilder
.UseIdentityServerBearerTokenAuthentication(
new IdentityServerBearerTokenAuthenticationOptions
{
ValidationMode = ValidationMode.Local,
Authority = ConfigurationManager.AppSettings["idp:Authority"],
RequiredScopes = ConfigurationManager.AppSettings["idp:RequiredScopes"].Split(';')
})
.UseWebApi(HttpGlobalConfiguration.Configuration);
}
}
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
namespace Kreta.Ellenorzo.WebApi.VN.Logic
{
/// <summary>
/// Author: Kovács Kornél (DevKornél) Created On: 2019.06.
/// </summary>
internal static class EnumLogic
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public static IEnumerable<(int Id, string Nev, string Leiras)> GetEnumWithDisplayNameAttribute(Type enumType)
{
foreach (object item in Enum.GetValues(enumType))
{
(int Id, string Nev, string Leiras) returnObject = ((int)item, item.ToString(), null);
FieldInfo fieldInfo = item.GetType().GetField(returnObject.Nev);
if (fieldInfo != null)
{
DisplayAttribute attributes = (DisplayAttribute)fieldInfo.GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault();
if (attributes != null)
{
returnObject.Leiras = attributes.GetName();
}
}
yield return returnObject;
}
}
public static string GetDisplayNameAttribute<T>(T enumValue)
{
string nev = enumValue.ToString();
if (string.IsNullOrWhiteSpace(nev))
{
return null;
}
FieldInfo fieldInfo = typeof(T).GetField(nev);
if (fieldInfo != null)
{
DisplayAttribute attributes = (DisplayAttribute)fieldInfo.GetCustomAttributes(typeof(DisplayAttribute), false).FirstOrDefault();
if (attributes != null)
{
return attributes.GetName();
}
}
return null;
}
}
}

View file

@ -0,0 +1,99 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Net.Http;
using System.Security.Claims;
using System.Web;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Enums;
namespace Kreta.Ellenorzo.WebApi.VN.Logic
{
internal static class FelhasznaloLogic
{
public static MobileUser GetFelhasznalo()
{
return HttpContext.Current.Items.Contains("MobileUser")
? (MobileUser)HttpContext.Current.Items["MobileUser"]
: new MobileUser(GetInstituteCode(), GetStudentId(), GetUserName(), GetTutelaryId(), GetRoles(), GetSchoolYearId(), GetApiSecurity(), GetUserIdpUniqueId(), GetStudentIdpUniqueId(), GetInstituteUniqueId());
}
private static string GetInstituteCode()
{
return GetClaims("kreta:institute_code").Single();
}
private static Guid GetInstituteUniqueId()
{
return new Guid(GetClaims("kreta:institute_unique_id").Single());
}
private static ApiSecurity GetApiSecurity()
{
if (bool.Parse(ConfigurationManager.AppSettings["IsApiSecurityEnabled"]))
{
var header = ((HttpRequestMessage)HttpContext.Current.Items["MS_HttpRequestMessage"]).Headers;
return new ApiSecurity(header.Authorization.Parameter, header.First(x => x.Key == "s").Value.First());
}
else
{
return null;
}
}
private static int GetInstituteUserId()
{
var claim = GetClaims("kreta:institute_user_id").Single();
return int.Parse(claim);
}
private static int GetSchoolYearId()
{
var claim = GetClaims("kreta:school_year_id").Single();
return int.Parse(claim);
}
private static int? GetTutelaryId()
=> HasRole(FelhasznaloSzerepkor.Gondviselo) ? GetInstituteUserId() : (int?)null;
private static int GetStudentId()
=> HasRole(FelhasznaloSzerepkor.Gondviselo) ? int.Parse(GetClaims("kreta:student_id").Single()) : GetInstituteUserId();
private static Guid GetUserIdpUniqueId()
{
return new Guid(GetClaims("kreta:institute_user_idp_unique_id").Single());
}
private static Guid GetStudentIdpUniqueId()
=> HasRole(FelhasznaloSzerepkor.Gondviselo) ? new Guid(GetClaims("kreta:student_idp_unique_id").Single()) : GetUserIdpUniqueId();
private static string GetUserName()
{
return GetClaims("kreta:user_name").Single();
}
private static IEnumerable<FelhasznaloSzerepkor> GetRoles()
{
var result = new List<FelhasznaloSzerepkor>();
var roles = GetClaims(ClaimTypes.Role);
foreach (var role in roles)
{
if (Enum.TryParse(role, out FelhasznaloSzerepkor enumValue))
{
result.Add(enumValue);
}
}
return result;
}
private static IEnumerable<string> GetClaims(string type)
{
return ClaimsPrincipal.Current.Claims.Where(x => x.Type == type).Select(x => x.Value);
}
private static bool HasRole(FelhasznaloSzerepkor felhasznaloSzerepkor) => GetRoles().Count(x => x == felhasznaloSzerepkor) == 1;
}
}

View file

@ -0,0 +1,7 @@
namespace Kreta.Ellenorzo.WebApi.VN
{
internal static class Constants
{
public const string RoutePrefix = "V3";
}
}

View file

@ -0,0 +1,40 @@
using System;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Bejelentes;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class BejelentesController : ApiController
{
/// <summary>
/// Covid fertőzöttség bejelentése
/// </summary>
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[HttpPost, Route("Bejelentes/Covid")]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.CovidBejelentesResponseLeiras)]
public void CovidBejelentes()
{
((BejelentesFacade)Activator.CreateInstance(typeof(BejelentesFacade), FelhasznaloLogic.GetFelhasznalo())).CovidBejelentes();
}
}
}

View file

@ -0,0 +1,59 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.BejelentettSzamonkeres;
using Kreta.Ellenorzo.Domain.VN.BejelentettSzamonkeres;
using Kreta.Ellenorzo.Dto.VN.BejelentettSzamonkeres;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<BejelentettSzamonkeresListRequest, BejelentettSzamonkeresListRequest>))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class BejelentettSzamonkeresController : ApiController
{
/// <summary>
/// Bejelentett számonkérések lekérdezése
/// </summary>
[HttpGet, Route("Sajat/BejelentettSzamonkeresek")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.BejelentettSzamonkeresek, typeof(BejelentettSzamonkeresListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<BejelentettSzamonkeresController, BejelentettSzamonkeresListResponseDto>))]
public HashSet<BejelentettSzamonkeresListResponseDto> ListBejelentettSzamonkeres([FromUri] BejelentettSzamonkeresListRequestDto request)
{
return ModelToDto(((BejelentettSzamonkeresFacade)Activator.CreateInstance(typeof(BejelentettSzamonkeresFacade), FelhasznaloLogic.GetFelhasznalo())).ListBejelentettSzamonkeres(request));
}
/// <summary>
/// Bejelentett számonkérés lekérdezése uid alapján
/// </summary>
/// <param name="uid">Bejelentett számonkérés Uid filter</param>
[HttpGet, Route("Sajat/BejelentettSzamonkeresek/{uid}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.BejelentettSzamonkeresek, typeof(BejelentettSzamonkeresListResponseDto))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public BejelentettSzamonkeresListResponseDto GetBejelentettSzamonkeres(string uid)
{
return ((BejelentettSzamonkeresFacade)Activator.CreateInstance(typeof(BejelentettSzamonkeresFacade), FelhasznaloLogic.GetFelhasznalo())).GetBejelentettSzamonkeres(uid);
}
}
}

View file

@ -0,0 +1,52 @@
using System;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using Kreta.BusinessLogic.Interfaces;
using Kreta.Ellenorzo.BL.VN.Ora;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
namespace Kreta.Ellenorzo.Web.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Sajat")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class CsatolmanyController : ApiController
{
private readonly IFileServiceHelper _fileServiceHelper;
public CsatolmanyController(IFileServiceHelper fileServiceHelper)
{
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
}
/// <summary>
/// Csatolmány lekérdezése
/// </summary>
/// <param name="uid">A csatolmány egyedi azonosítója (Id)</param>
[HttpGet, Route("Csatolmany/{uid}")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public HttpResponseMessage GetCsatolmany(string uid)
{
return ((CsatolmanyFacade)Activator.CreateInstance(typeof(CsatolmanyFacade), FelhasznaloLogic.GetFelhasznalo(), _fileServiceHelper)).GetCsatolmany(new CsatolmanyUid(uid));
}
}
}

View file

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Dummy;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Kreta.Web.Logging.Abstractions;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[RoutePrefix(Constants.RoutePrefix)]
public class DummyEnumDocumentationController : ApiController
{
private readonly ITraceLogger _logger;
public DummyEnumDocumentationController(ITraceLogger traceLogger)
{
_logger = traceLogger;
}
/// <summary>
/// Nem hívható, technikai endpoint. Rendszerben megtalálható enum értékek lekérdezése.
/// </summary>
[HttpGet, Route("DummyEnum")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.DummyEnumResponseLeiras, typeof(Dictionary<string, string>)), SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyEnumExampleProvider))]
#pragma warning disable S4049 // Properties should be preferred
public Dictionary<string, string> GetDummyEnum() => new Dictionary<string, string>();
#pragma warning restore S4049 // Properties should be preferred
/// <summary>
/// Nem hívható, technikai endpoint. Még el nem készült BE fejlesztések tesztelésére.
/// </summary>
[HttpGet, Route("ListDummy")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListDummyResponseLeiras, typeof(List<object>))]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
public List<object> ListDummy()
{
return ((DummyFacade)Activator.CreateInstance(typeof(DummyFacade), FelhasznaloLogic.GetFelhasznalo())).ListDummy(_logger);
}
}
}

View file

@ -0,0 +1,129 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Core.FeatureToggle;
using Kreta.Ellenorzo.BL.VN.Ertekeles;
using Kreta.Ellenorzo.BL.VN.Ertekeles.Atlag.OsztalyAtlag;
using Kreta.Ellenorzo.BL.VN.Ertekeles.Atlag.TantargyiAtlag;
using Kreta.Ellenorzo.Domain.VN.Ertekeles;
using Kreta.Ellenorzo.Domain.VN.Ertekeles.Atlag.OsztalyAtlag;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Dto.VN.Ertekeles;
using Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.OsztalyAtlag;
using Kreta.Ellenorzo.Dto.VN.Ertekeles.Atlag.TantargyiAtlag;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Enums.VN;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class ErtekelesController : ApiController
{
private IFeatureContext FeatureContext { get; }
public ErtekelesController(IFeatureContext featureContext)
{
FeatureContext = featureContext ?? throw new ArgumentNullException(nameof(featureContext));
}
/// <summary>
/// Tanuló egy értékelése
/// </summary>
/// <param name="uid">Uid filter</param>
[HttpGet, Route("Sajat/Ertekelesek/{uid}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ErtekelesResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public ErtekelesListResponseDto GetErtekeles(string uid)
{
return ((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).GetErtekeles(uid);
}
/// <summary>
/// Tanuló értékelései
/// </summary>
[HttpGet, Route("Sajat/Ertekelesek")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
public HashSet<ErtekelesListResponseDto> ListErtekeles([FromUri] ErtekelesListRequestDto request)
{
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request));
}
/// <summary>
/// Tanuló bizonyítvány értékelései
/// </summary>
[HttpGet, Route("Sajat/Ertekelesek/Bizonyitvany")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
public HashSet<ErtekelesListResponseDto> ListBizonyitvany([FromUri] ErtekelesListRequestDto request)
{
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request, ErtekelesekTipusEnum.BizonyitvanyErtekelesTipus));
}
/// <summary>
/// Tanuló évközi + egyéb (modulzáró vizsga, pótvizsga...) értékelései
/// </summary>
[HttpGet, Route("Sajat/Ertekelesek/NemBizonyitvany")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Ertekelesek, typeof(ErtekelesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, ErtekelesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<ErtekelesListRequest, ErtekelesListRequest>))]
public HashSet<ErtekelesListResponseDto> ListNemBizonyitvanyok([FromUri] ErtekelesListRequestDto request)
{
return ModelToDto(((ErtekelesFacade)Activator.CreateInstance(typeof(ErtekelesFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloErtekeles(request, ErtekelesekTipusEnum.NemBizonyitvanyErtekelesTipus));
}
/// <summary>
/// Tanuló összes tanult tantárgyának átlaga
/// </summary>
[HttpGet, Route("Sajat/Ertekelesek/Atlagok/TantargyiAtlagok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TantargyiAtlagResponseLeiras + DescriptionOneNote.TantargyiAtlagok, typeof(SajatTantargyiAtlagListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, SajatTantargyiAtlagListResponseDto>))]
public List<SajatTantargyiAtlagListResponseDto> ListAktualisTanuloTantargyiAtlag([FromUri] SajatTantargyiAtlagListRequestDto request)
{
return ModelToDto(((TantargyiAtlagFacade)Activator.CreateInstance(typeof(TantargyiAtlagFacade), FelhasznaloLogic.GetFelhasznalo(), FeatureContext)).ListAktualisTanuloTantargyiAtlag(request));
}
/// <summary>
/// Tanuló összes tanult tantárgyának átlaga és osztályátlaga
/// </summary>
[HttpGet, Route("Sajat/Ertekelesek/Atlagok/OsztalyAtlagok")]
[SwaggerResponse(HttpStatusCode.OK,
DescriptionLookUp.OsztalyatlagResponseLeiras + DescriptionOneNote.OsztalyAtlagok, typeof(TanuloOsztalyCsoporthozViszonyitottTantargyiAtlagResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProviderWithDependencyInjection<ErtekelesController, SajatOsztalyAtlagListResponseDto>))]
public HashSet<SajatOsztalyAtlagListResponseDto> ListOsztalyAtlag([FromUri] SajatOsztalyAtlagListRequestDto request)
{
return ModelToDto(((OsztalyAtlagFacade)Activator.CreateInstance(typeof(OsztalyAtlagFacade), FelhasznaloLogic.GetFelhasznalo()))
.ListAktualisTanuloOsztalyAtlag(new OsztalyAtlagListRequest(request.TantargyUid)
{
OktatasiNevelesiFeladatUid = new OktatasiNevelesiFeladatUid(request.OktatasiNevelesiFeladatUid),
IsAtlagNeeded = true
}));
}
}
}

View file

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Faliujsag;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Faliujsag;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Sajat")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.FaliujsagResponseLeiras + DescriptionOneNote.Faliujsag, typeof(FaliujsagListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<FaliujsagController, FaliujsagListResponseDto>))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class FaliujsagController : ApiController
{
/// <summary>
/// Tanuló számára megjelenő admin és tanár által rögzített faliújság elemek
/// </summary>
[HttpGet, Route("FaliujsagElemek")]
public HashSet<FaliujsagListResponseDto> ListFaliujsag([FromUri] FaliujsagListRequestDto request)
{
return ModelToDto(((FaliujsagFacade)Activator.CreateInstance(typeof(FaliujsagFacade), FelhasznaloLogic.GetFelhasznalo())).ListFaliujsag(request));
}
}
}

View file

@ -0,0 +1,161 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Felhasznalo;
using Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Alkalmazott.Tanar.OsztalyFonok;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Tanulo;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class FelhasznaloController : ApiController
{
/// <summary>
/// Tanulóval, gondviselőivel és intézményével kapcsolatos információk és elérhetőségek
/// </summary>
[HttpGet, Route("Sajat/TanuloAdatlap")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.TanuloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<FelhasznaloController, TanuloGetResponseDto>))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloAdataiResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(TanuloGetResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public TanuloGetResponseDto GetTanuloAdatlap()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetTanuloAdatlap();
}
/// <summary>
/// Osztályfőnökök lekérése
/// </summary>
[HttpGet, Route("Felhasznalok/Alkalmazottak/Tanarok/Osztalyfonokok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(OsztalyfonokListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<FelhasznaloController, OsztalyfonokListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public HashSet<OsztalyfonokListResponseDto> GetOsztalyfonokok([FromUri] OsztalyfonokListRequestDto request)
{
return ModelToDto(((OsztalyfonokFacade)Activator.CreateInstance(typeof(OsztalyfonokFacade), FelhasznaloLogic.GetFelhasznalo())).ListOsztalyfonokForTanuloAndGondviselo(request));
}
/// <summary>
/// Bankszámlaszám rögzítése a tanulóhoz.
/// </summary>
[HttpPost, Route("Sajat/Bankszamla")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.BankszamlaRogzitesSikeres)]
[SwaggerRequestExample(typeof(BankszamlaRequestDto), typeof(BankszamlaRequestDto))]
public void PostBankszamla(BankszamlaRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).SaveBankszamla(request);
}
/// <summary>
/// Tanuló bankszámlaszámának törlése.
/// </summary>
[HttpDelete, Route("Sajat/Bankszamla")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.BankszamlaTorlesSikeres)]
public void DeleteBankszamla()
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).DeleteBankszamla();
}
/// <summary>
/// Elérhetőség rögzítése tanulóhoz vagy gondviselőhöz.
/// </summary>
[HttpPost, Route("Sajat/Elerhetoseg")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.ElerhetosegRogzitesSikeres)]
[SwaggerRequestExample(typeof(ElerhetosegRequestDto), typeof(ElerhetosegRequestDto))]
public void PostElerhetoseg(ElerhetosegRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).SaveElerhetoseg(request);
}
/// <summary>
/// A gondviselő "Törvényes képviselő" tulajdonságának lekérdezése.
/// </summary>
[HttpGet, Route("Gondviselo/IsTorvenyesKepviselo")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.IsTorvenyesKepviseloResponseLeiras + DescriptionOneNote.Felhasznalo)]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(bool))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public bool IsTorvenyesKepviselo()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).IsTorvenyesKepviselo();
}
/// <summary>
/// Gondviselő 4T adatainak lekérdezése
/// </summary>
[HttpGet, Route("Sajat/GondviseloAdatlap")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<FelhasznaloController, GondviseloAdatokResponseDto>))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.GondviseloAdataiResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(GondviseloAdatokResponseDto))]
public GondviseloAdatokResponseDto GetGondviseloAdatlap()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetGondviseloAdatlap();
}
/// <summary>
/// Gondviselő 4T adatainak módosítása
/// </summary>
[HttpPut, Route("Sajat/GondviseloAdatlap")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloAdatokRogziteseSikeres)]
[SwaggerRequestExample(typeof(GondviseloBaseAdatlapRequestDto), typeof(GondviseloBaseAdatlapRequestDto))]
public void PutGondviseloAdatlap(GondviseloBaseAdatlapRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).UpdateGondviseloAdatlap(request);
}
/// <summary>
/// Gondviselő eszköz igényléshez szükséges adatainak elküldése
/// </summary>
[HttpPost, Route("Sajat/GondviseloEszkozIgenyles")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloEszkozIgenylesAdatokRogziteseSikeres)]
[SwaggerRequestExample(typeof(RegisztracioRequestDto), typeof(RegisztracioRequestDto))]
public void PostGondviseloEszkozIgenyles(RegisztracioRequestDto request)
{
((TargyiEszkozFacade)Activator.CreateInstance(typeof(TargyiEszkozFacade), FelhasznaloLogic.GetFelhasznalo())).SaveGondviseloEszkozIgenyles(request);
}
/// <summary>
/// Napi értesítés összefoglaló lekérdezése
/// </summary>
[HttpGet, Route("Sajat/NapiErtesitesOsszefoglalo")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.NapiErtesitesOsszefoglaloResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(NapiErtesitesOsszefoglaloResponseDto))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public NapiErtesitesOsszefoglaloResponseDto GetNapiErtesitesOsszefoglalo()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetNapiErtesitesOsszefoglalo();
}
}
}

View file

@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Feljegyzes;
using Kreta.Ellenorzo.Domain.VN.Feljegyzes;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Feljegyzes;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Sajat/Feljegyzesek")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class FeljegyzesController : ApiController
{
/// <summary>
/// Tanuló tanítási órán tanár által generált feljegyzése
/// </summary>
/// <param name="uid">Feljegyzés Uid filter</param>
[HttpGet, Route("{uid}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.FeljegyzesResponseLeiras + DescriptionOneNote.Feljegyzesek, typeof(FeljegyzesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<FeljegyzesController, FeljegyzesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public FeljegyzesListResponseDto GetFeljegyzes(string uid)
{
return ((FeljegyzesFacade)Activator.CreateInstance(typeof(FeljegyzesFacade), FelhasznaloLogic.GetFelhasznalo())).GetFeljegyzes(uid);
}
/// <summary>
/// Tanuló tanítási órán tanár által generált feljegyzései
/// </summary>
[HttpGet, Route]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.FeljegyzesListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Feljegyzesek, typeof(FeljegyzesListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<FeljegyzesController, FeljegyzesListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<FeljegyzesListRequest, FeljegyzesListRequest>))]
public HashSet<FeljegyzesListResponseDto> ListFeljegyzes([FromUri] FeljegyzesListRequestDto request)
{
return ModelToDto(((FeljegyzesFacade)Activator.CreateInstance(typeof(FeljegyzesFacade), FelhasznaloLogic.GetFelhasznalo())).ListFeljegyzes(request));
}
}
}

View file

@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Fogadoora;
using Kreta.Ellenorzo.Domain.VN.Fogadoora;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Fogadoora;
using Kreta.Ellenorzo.Dto.VN.Fogadoora.Idopont;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Sajat/Fogadoorak")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
public class FogadooraController : ApiController
{
/// <summary>
/// Fogadóórák időpontjainak lekérdezése gondviselők számára
/// </summary>
[HttpGet, Route]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Fogadoorak, typeof(FogadooraListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<FogadooraController, FogadooraListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<FogadooraListRequest, FogadooraListRequest>))]
public HashSet<FogadooraListResponseDto> ListFogadoorak([FromUri] FogadooraListRequestDto request)
{
return ModelToDto(((FogadooraFacade)Activator.CreateInstance(typeof(FogadooraFacade), FelhasznaloLogic.GetFelhasznalo())).ListFogadoora(request));
}
/// <summary>
/// Fogadóóra lekérdezése gondviselők számára
/// </summary>
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[HttpGet, Route("{uid}")]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(AMuveletNemVegezhetoElTobbszorExample))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public FogadooraResponseDto GetFogadoora(string uid)
{
return ((FogadooraFacade)Activator.CreateInstance(typeof(FogadooraFacade), FelhasznaloLogic.GetFelhasznalo())).GetFogadoora(uid);
}
/// <summary>
/// Jelentkezett fogadóóra időpont lemondás
/// </summary>
/// <param name="uid">Fogadóóra időpont uid-ja</param>
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[HttpDelete, Route("Idopontok/Jelentkezesek/{uid}")]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.FogadooraIdopontDeleteResponseLeiras)]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(AMuveletNemVegezhetoElTobbszorExample))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public void DeleteFogadooraIdopontJelentkezes(string uid)
{
((FogadooraFacade)Activator.CreateInstance(typeof(FogadooraFacade), FelhasznaloLogic.GetFelhasznalo())).DeleteFogadooraIdopontJelentkezes(new FogadooraIdopontJelentkezesDeleteRequestDto(uid));
}
/// <summary>
/// Gondviselő fogadóóra-időpont jelentkezés
/// </summary>
/// <param name="uid">Fogadóóra időpont uid-ja</param>
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[HttpPost, Route("Idopontok/Jelentkezesek/{uid}")]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.FogadooraIdopontCreateResponseLeiras)]
public void CreateFogadooraIdopontJelentkezes(string uid)
{
((FogadooraFacade)Activator.CreateInstance(typeof(FogadooraFacade), FelhasznaloLogic.GetFelhasznalo())).CreateFogadooraIdopontJelentkezes(new FogadooraIdopontJelentkezesCreateRequestDto(uid));
}
}
}

View file

@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.HaziFeladat;
using Kreta.Ellenorzo.Domain.VN.HaziFeladat;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.HaziFeladat;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Sajat")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
#pragma warning disable S1200 // Classes should not be coupled to too many other classes (Single Responsibility Principle)
public class HaziFeladatController : ApiController
#pragma warning restore S1200 // Classes should not be coupled to too many other classes (Single Responsibility Principle)
{
/// <summary>
/// Házi feladat entitás lekérdezése
/// </summary>
/// <param name="uid">Házi feladat Uid filter</param>
[HttpGet, Route("HaziFeladatok/{uid}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.HaziFeladatok, typeof(HaziFeladatDetailResponseDto))]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<HaziFeladatController, HaziFeladatDataListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public HaziFeladatDetailResponseDto GetHaziFeladat(string uid)
{
return ((HaziFeladatFacade)Activator.CreateInstance(typeof(HaziFeladatFacade), FelhasznaloLogic.GetFelhasznalo())).GetHaziFeladat(uid);
}
/// <summary>
/// Házi feladatok lekérdezése határidő alapján
/// </summary>
[HttpGet, Route("HaziFeladatok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.HaziFeladatok, typeof(HaziFeladatListResponseDto))]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<HaziFeladatController, HaziFeladatListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<HaziFeladatListRequest, HaziFeladatListRequest>))]
public HashSet<HaziFeladatListResponseDto> ListHaziFeladat([FromUri] HaziFeladatListRequestDto request)
{
return ModelToDto(((HaziFeladatFacade)Activator.CreateInstance(typeof(HaziFeladatFacade), FelhasznaloLogic.GetFelhasznalo())).ListHaziFeladat(request));
}
}
}

View file

@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Domain.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Intezmeny.Hetirend;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class HetirendController : ApiController
{
/// <summary>
/// Órarendhez tartozó hetirendi elemek
/// </summary>
[HttpGet, Route("Sajat/Intezmenyek/Hetirendek/Orarendi")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionLookUp.HetirendSzoveg + DescriptionOneNote.Hetirend,
typeof(HetirendListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<HetirendController, HetirendListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<HetirendListRequest, HetirendListRequest>))]
public HashSet<HetirendListResponseDto> ListHetirend([FromUri] HetirendListRequestDto request)
{
return ModelToDto(((HetirendFacade)Activator.CreateInstance(typeof(HetirendFacade), FelhasznaloLogic.GetFelhasznalo())).ListHetirend(request));
}
}
}

View file

@ -0,0 +1,41 @@
using System;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Intezmeny;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Intezmeny;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class IntezmenyController : ApiController
{
/// <summary>
/// Saját intézmény adatai
/// </summary>
[HttpGet, Route("Sajat/Intezmenyek")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.IntezmenyAdatai + DescriptionOneNote.Intezmeny, typeof(IntezmenyListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<IntezmenyController, IntezmenyListResponseDto>))]
public IntezmenyListResponseDto GetIntezmeny()
{
return ((IntezmenyFacade)Activator.CreateInstance(typeof(IntezmenyFacade), FelhasznaloLogic.GetFelhasznalo())).GetIntezmeny();
}
}
}

View file

@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Core.Configuratiaton.Interface;
using Kreta.Ellenorzo.BL.VN.Lep;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Lep;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Kreta.Web.Logging.Abstractions;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix + "/Lep")]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class LepController : ApiController
{
private ILepConfiguration LepConfiguration { get; }
private ITraceLogger Logger { get; }
public LepController(ILepConfiguration lepConfiguration, ITraceLogger logger)
{
LepConfiguration = lepConfiguration ?? throw new ArgumentNullException(nameof(lepConfiguration));
Logger = logger ?? throw new ArgumentNullException(nameof(logger));
}
/// <summary>
/// Lázár Ervin Program előadások lekérdezése
/// </summary>
[HttpGet, Route("Eloadasok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras, typeof(List<EloadasResponseDto>))]
public List<EloadasResponseDto> GetEloadasok()
{
return ModelToDto(((LepFacade)Activator.CreateInstance(typeof(LepFacade), FelhasznaloLogic.GetFelhasznalo(), LepConfiguration, Logger)).GetEloadasok());
}
/// <summary>
/// Lázár Ervin Program előadás engedélyezése, elutasítása vagy függőbe tétele.
/// </summary>
[HttpPost, Route("Eloadasok/GondviseloEngedelyezes")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloEngedelyezes)]
[SwaggerRequestExample(typeof(GondviseloEngedelyezesRequestDto), typeof(GondviseloEngedelyezesRequestDto))]
public void GondviseloEngedelyezes(GondviseloEngedelyezesRequestDto request)
{
((LepFacade)Activator.CreateInstance(typeof(LepFacade), FelhasznaloLogic.GetFelhasznalo())).GondviseloEngedelyezes(request);
}
}
}

View file

@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Mulasztas;
using Kreta.Ellenorzo.Domain.VN.Mulasztas;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Mulasztas;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class MulasztasController : ApiController
{
/// <summary>
/// Tanuló mulasztás entitás lekérdezése
/// </summary>
/// <param name="uid">Mulasztás Uid filter</param>
[HttpGet, Route("Sajat/Mulasztasok/{uid}")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.MulasztasResponseLeiras + DescriptionOneNote.Mulasztasok, typeof(MulasztasListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<MulasztasController, MulasztasListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public MulasztasListResponseDto GetMulasztas(string uid)
{
return ((MulasztasFacade)Activator.CreateInstance(typeof(MulasztasFacade), FelhasznaloLogic.GetFelhasznalo())).GetMulasztas(uid);
}
/// <summary>
/// Tanuló mulasztásai
/// </summary>
[HttpGet, Route("Sajat/Mulasztasok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Mulasztasok, typeof(MulasztasListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<MulasztasController, MulasztasListResponseDto>))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<MulasztasListRequest, MulasztasListRequest>))]
public HashSet<MulasztasListResponseDto> ListMulasztas([FromUri] MulasztasListRequestDto request)
{
return ModelToDto(((MulasztasFacade)Activator.CreateInstance(typeof(MulasztasFacade), FelhasznaloLogic.GetFelhasznalo())).ListMulasztas(request));
}
}
}

View file

@ -0,0 +1,65 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Orarend;
using Kreta.Ellenorzo.Domain.VN.Orarend;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Orarend;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Kreta.Web.Logging.Abstractions;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.BadRequest, DescriptionLookUp.ValidaciosHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.BadRequest, typeof(ValidaciosHibaExample<OrarendElemListRequest, OrarendElemListRequest>))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class OrarendController : ApiController
{
private readonly ITraceLogger logger;
public OrarendController(ITraceLogger traceLogger)
{
logger = traceLogger;
}
/// <summary>
/// Visszaadja a tanuló órarendi elemeit egy megadott időszakra (tanév rendje eseményeket is)
/// </summary>
[HttpGet, Route("Sajat/OrarendElemek")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Orarend, typeof(OrarendElemListResponseDto))]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<OrarendController, OrarendElemListResponseDto>))]
public HashSet<OrarendElemListResponseDto> ListOrarend([FromUri] OrarendElemListRequestDto request)
{
return ModelToDto(((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).ListOrarend(logger, request));
}
/// <summary>
/// Órarend elem entitás lekérdezése
/// </summary>
[HttpGet, Route("Sajat/OrarendElem")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Orarend, typeof(OrarendElemListResponseDto))]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<OrarendController, OrarendElemListResponseDto>))]
public OrarendElemListResponseDto GetOrarendElem([FromUri] OrarendElemGetRequestDto request)
{
return ((OrarendFacade)Activator.CreateInstance(typeof(OrarendFacade), FelhasznaloLogic.GetFelhasznalo())).GetOrarendElem(logger, request);
}
}
}

View file

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class OsztalyCsoportController : ApiController
{
/// <summary>
/// Osztályok és csoportok, amikbe a tanuló valaha be volt sorolva az aktuális tanévben.
/// </summary>
[HttpGet, Route("Sajat/OsztalyCsoportok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.OsztalyCsoportLeiras + DescriptionOneNote.OsztalyCsoportok, typeof(TanuloOsztalyCsoportListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<OsztalyCsoportController, TanuloOsztalyCsoportListResponseDto>))]
public HashSet<TanuloOsztalyCsoportListResponseDto> ListTanuloOsztalyCsoport()
{
return ModelToDtoForTanulo(((OsztalyCsoportFacade)Activator.CreateInstance(typeof(OsztalyCsoportFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanuloOsztalyCsoport());
}
}
}

View file

@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Intezmeny.TanevRendje;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Intezmeny.TanevRendje;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class TanevRendjeController : ApiController
{
/// <summary>
/// Tanulóra vonatkozó tanév rendje elemek
/// </summary>
[HttpGet, Route("Sajat/Intezmenyek/TanevRendjeElemek")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanevRendjeLeiras + DescriptionOneNote.Tanevrendje, typeof(TanevRendjeListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<TanevRendjeController, TanevRendjeListResponseDto>))]
public HashSet<TanevRendjeListResponseDto> ListTanevRendje()
{
return ModelToDto(((TanevRendjeFacade)Activator.CreateInstance(typeof(TanevRendjeFacade), FelhasznaloLogic.GetFelhasznalo())).ListTanevRendje());
}
}
}

View file

@ -0,0 +1,70 @@
using System;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Felhasznalo;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class TargyiEszkozController : ApiController
{
/// <summary>
/// Gondviselő eszköz igényléshez szükséges adatainak elküldése
/// </summary>
[HttpPost, Route("TargyiEszkoz/Regisztracio")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloEszkozIgenylesAdatokRogziteseSikeres)]
[SwaggerRequestExample(typeof(RegisztracioRequestDto), typeof(RegisztracioRequestDto))]
public void PostGondviseloEszkozIgenyles(RegisztracioRequestDto request)
{
((TargyiEszkozFacade)Activator.CreateInstance(typeof(TargyiEszkozFacade), FelhasznaloLogic.GetFelhasznalo())).SaveGondviseloEszkozIgenyles(request);
}
/// <summary>
/// Gondviselő regisztrált-e már
/// </summary>
[HttpGet, Route("TargyiEszkoz/IsRegisztralt")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.IsRegisztraltResponseLeiras)]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(bool))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public bool? IsRegisztralt()
{
return ((TargyiEszkozFacade)Activator.CreateInstance(typeof(TargyiEszkozFacade), FelhasznaloLogic.GetFelhasznalo())).IsRegisztralt();
}
/// <summary>
/// A gondviselőhöz tartozó tanulónak van-e már kiosztott eszköze
/// </summary>
[HttpGet, Route("TargyiEszkoz/IsEszkozKiosztva")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.IsEszkozKiosztvaResponseLeiras)]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(bool))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public bool IsEszkozKiosztva()
{
return ((TargyiEszkozFacade)Activator.CreateInstance(typeof(TargyiEszkozFacade), FelhasznaloLogic.GetFelhasznalo())).IsEszkozKiosztva();
}
}
}

View file

@ -0,0 +1,16 @@
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class AMuveletNemVegezhetoElTobbszorExample : EllenorzoExceptionResponseDto, IExamplesProvider
{
public AMuveletNemVegezhetoElTobbszorExample() : base(BlExceptionType.AMuveletNemVegezhetoElTobbszor, BlExceptionType.AMuveletNemVegezhetoElTobbszor.ToDisplayName())
{
}
public object GetExamples() => new AMuveletNemVegezhetoElTobbszorExample();
}
}

View file

@ -0,0 +1,105 @@
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
internal static class DescriptionLookUp
{
public const string ListaUidVagyUidsFilterResponseLeiras = "Filter által elvárt, de nem létező resource esetén kizárólag a létező elemek szerepelnek a response-ban";
public const string TanevRendjeLeiras = "Admin által meghatározott tanulóra vonatkozó tanév rendje elemek (csak saját osztályokra vonatkozó elemek tartoznak bele).<br>";
public const string AktualisOsztalyCsoportLeiras = "Osztályok és csoportok, amibe a tanuló aktuálisan be van sorolva.";
public const string BankszamlaRogzitesSikeres = "A bankszámla rögzítése sikeresen megtörtént!";
public const string BankszamlaTorlesSikeres = "A bankszámla törlése sikeresen megtörtént!";
public const string OsztalyCsoportLeiras = "Osztályok és csoportok, amikbe a tanuló valaha be volt sorolva az aktuális tanévben.";
public const string HetirendSzoveg = "<br> A megadott intervallumba beletartozó(fedik egymást) entitásokkal tér vissza.";
public const string TanuloTorolveLett = " Abban az esetben, ha él a token, de a tanuló már törölve lett.";
public const string GonviseloTorolveLett = " Abban az esetben, ha él a token, de a gonviselo már törölve lett.";
public const string IsmeretlenHibaTortentResponseLeiras = "Ismeretlen hiba történt!";
public const string NincsNevelesOkatatasSzures = "(Nincs nevelés oktatás szűrés)";
public const string ValidaciosHibaTortentResponseLeiras = "Validációs hiba történt!";
public const string JogosulatlanTokenLejartResponseLeiras = "A token lejárt!";
public const string HozzaferesMegtagadvaResponseLeiras = "Hozzáférés megtagadva!";
public const string NemLetezoEntitasResponseLeiras = "Nem létező entitás!";
public const string TantargyiAtlagResponseLeiras = "A tanuló oktatás-nevelési feladat és tantárgyuid szűrő által leszűrt összes tanult tantárgyának az átlaga szerepel a response-ban";
public const string OsztalyatlagResponseLeiras = "A tanuló összes, vagy a Uid szűrő által leszűrt tanult tantárgyának az osztályátlaghoz viszonyított átlaga szerepel a" +
" response-ban, amennyiben engedélyezve van az osztályátlag megjelenítése az adott intézményben.";
public const string DummyEnumResponseLeiras = "A rendszerben megtalálható összes enum érték szerepel a response-ban<br>None elem csak BE számára kell, jelzi," +
" ha az enum nem tudott értéket felvenni";
public const string ListDummyResponseLeiras = "Még el nem készült BE fejlesztések találhatóak a responseban";
public const string FaliujsagResponseLeiras = "A tanuló faliújság bejegyzései, amelyek érvényesek, szerepelnek a response-ban";
public const string TanuloAdataiResponseLeiras = "A tanuló adatai szerepelnek a response-ban";
public const string GondviseloAdataiResponseLeiras = "A gondviselő adatai szerepelnek a response-ban";
public const string IsTorvenyesKepviseloResponseLeiras = "A response tartalmazza, hogy a gondviselő a tanuló törvényes képviselője-e.";
public const string FeljegyzesResponseLeiras = "A tanuló feljegyzése szerepel a response-ban" + NaplozasGyorsFeljegyzes;
public const string FeljegyzesListaUidVagyUidsFilterResponseLeiras = "Filter által elvárt, de nem létező resource esetén kizárólag "
+ "a létező elemek szerepelnek a response-ban" + NaplozasGyorsFeljegyzes;
public const string ErtekelesResponseLeiras = "A tanuló értékelése szerepel a response-ban";
public const string MulasztasResponseLeiras = "A tanuló mulasztása szerepel a response-ban";
public const string KommentCreateResponseLeiras = "Komment mentése sikeresen megtörtént";
public const string KommentDeleteResponseLeiras = "Komment törlése sikeresen megtörtént";
public const string FogadooraIdopontDeleteResponseLeiras = "Fogadóóra időpont lemondása sikeresen megtörtént.";
public const string FogadooraIdopontCreateResponseLeiras = "Fogadóóra időpontra jelentkezés sikeresen megtörtént.";
public const string NincsJogosultsaga = "Nincs jogosultsága";
public const string NaplozasGyorsFeljegyzes = "<br>+ Naplózáskor adható gyorsfeljegyzések. A külön adható" +
" feljegyzések a tanulóhoz kapcsolódnak nem osztálycsoporthoz!";
public const string TanevetValtottAzIntezmeny = "Tanévet váltott az intézmény!";
public const string Rendszermodul = "Rendszermodulok";
public const string IntezmenyAdatai = "Saját intézmény adatai";
public const string Fogadoorak = "Fogadóórák";
public const string CsatolmanyResponseLeiras = "Uid filter és típus által elvárt csatolmány szerepel a response-ban.<br>";
public const string HaziFeladatMegoldottResponseLeiras = "Házi feladat megoldottságának beállítása sikeresen megtörtént";
public const string CovidBejelentesResponseLeiras = "Covid fertőzöttség bejelentése sikeresen megtörtént";
public const string ElerhetosegRogzitesSikeres = "Az elérhetőségek rögzítése sikeresen megtörtént!";
public const string GondviseloAdatokRogziteseSikeres = "A gondviselő adatainak rögzítése sikeresen megtörtént!";
public const string GondviseloEszkozIgenylesAdatokRogziteseSikeres = "A gondviselő adatainak rögzítése sikeresen megtörtént a tanuló eszközének igényléséhez!";
public const string LepEloadasResponseLeiras = "A Lázár Ervin Program által meghirdetett előadások szerepelnek a responseban.";
public const string GondviseloEngedelyezes = "Lázár Ervin Program időpontra az engedélyezés, elutasítás vagy függőbe tétel sikeresen megtörtént.";
public const string IsEszkozKiosztvaResponseLeiras = "A response tartalmazza, hogy van-e már eszköz kiosztva a gondviselőhöz tartozó tanulónak.";
public const string IsRegisztraltResponseLeiras = "True: aktuális gondviselő már regisztrált; False: másik gondviselő már regisztrált; Null: nem regisztrált még senki.";
public const string NapiErtesitesOsszefoglaloResponseLeiras = "A napi értesítés összefoglaló adatai szerepelnek a response-ban";
}
}

View file

@ -0,0 +1,61 @@
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
internal static class DescriptionOneNote
{
private const string LinkStart = "onenote:///\\\\egyediz-pc\\Mobil\\Biz.%20Doksik.one#";
private const string DokumentacioSection = "section-id={D298BE59-DAEA-4B0E-8604-D5CAF175D463}&amp;";
private const string ErtekelesekPage = "page-id={4382044B-228A-4FE4-8DEA-0CD9E76F238F}&amp;";
private const string TantargyiAtlagPage = "page-id={A2EE1C38-9066-4AA4-A414-5595C0255186}&amp;";
private const string OsztalyAtlagPage = "page-id={78B8FF95-FD22-4990-BE25-16E01A7CB1E9}&amp;";
private const string BejelentettSzamonkeresekPage = "page-id={36F2A8A1-7989-4C90-B76F-92EF9F53FBA2}&amp;";
private const string FaliujsagPage = "page-id={AFF0642A-5B7A-4AC3-A5FF-E7A21843F4CD}&amp;";
private const string FeljegyzesekPage = "page-id={3FFD4C76-B4F4-4630-857B-601C26350E2F}&amp;";
private const string FelhasznaloPage = "page-id={8AE3F857-3228-42D8-8D16-826B9A63304A}&amp;";
private const string FogadoorakPage = "page-id={2CD86E16-2398-4957-BD97-2C65BB013349}&amp;";
private const string HaziFeladatokPage = "page-id={F5A654B1-2698-47B9-B84C-5F56ABE0EBE9}&amp;";
private const string HetirendPage = "page-id={E87403FC-7AC1-4A5C-B8A7-4BE1AFA47CCB}&amp;";
private const string IntezmenyPage = "page-id={59A3FCE2-08BC-4B07-AA3E-2475C2323B40}&amp;";
private const string MulasztasokPage = "page-id={48D8E2BE-CCE8-4870-9FFA-8937F9525853}&amp;";
private const string OrarendPage = "page-id={64B0C490-1F41-4717-B438-F49F80D35B56}&amp;";
private const string OsztalyCsoportokPage = "page-id={B4443760-7940-4D6E-A144-05D8D3592D15}&amp;";
private const string TanevrendjePage = "page-id={8FE5080E-8B06-4698-A609-36C573E5EF3D}&amp;";
private const string OpenBoardPage = "page-id={EA1EE8FA-B566-4F3C-B4EE-534805D58093}&amp;";
private const string CsatolmanyPage = "page-id={5B9340E0-B9A9-4289-846D-98CED8A3C2EB}&amp;";
public const string Ertekelesek = " [Értékelések](" + LinkStart + "Ertekelesek&amp;" + DokumentacioSection + ErtekelesekPage + "end)";
public const string TantargyiAtlagok = " [Tantárgyi átlagok](" + LinkStart + "Ertekelesek/TantargyiAtlag&amp;" + DokumentacioSection + TantargyiAtlagPage + "end)";
public const string OsztalyAtlagok = " [Osztályátlagok](" + LinkStart + "Ertekelesek/Osztalyatlag&amp;" + DokumentacioSection + OsztalyAtlagPage + "end)";
public const string BejelentettSzamonkeresek = " [Bejelentett számonkérések](" + LinkStart + "Bejelentett%20szamonkeresek&amp;" + DokumentacioSection + BejelentettSzamonkeresekPage + "end)";
public const string Faliujsag = " [Faliújság](" + LinkStart + "Faliujsag&amp;" + DokumentacioSection + FaliujsagPage + "end)";
public const string Feljegyzesek = " [Feljegyzések](" + LinkStart + "Feljegyzesek&amp;" + DokumentacioSection + FeljegyzesekPage + "end)";
public const string Felhasznalo = " [Felhasználó](" + LinkStart + "Felhasznalo&amp;" + DokumentacioSection + FelhasznaloPage + "end)";
public const string Fogadoorak = " [Fogadóórák](" + LinkStart + "Fogadoorak&amp;" + DokumentacioSection + FogadoorakPage + "end)";
public const string HaziFeladatok = " [Házi feladatok](" + LinkStart + "Hazi%20feladatok&amp;" + DokumentacioSection + HaziFeladatokPage + "end)";
public const string Hetirend = " [Hetirend](" + LinkStart + "Hetirend&amp;" + DokumentacioSection + HetirendPage + "end)";
public const string Intezmeny = " [Intézmény](" + LinkStart + "Intezmeny&amp;" + DokumentacioSection + IntezmenyPage + "end)";
public const string Mulasztasok = " [Mulasztások](" + LinkStart + "Mulasztasok&amp;" + DokumentacioSection + MulasztasokPage + "end)";
public const string OpenBoard = " [OpenBoard](" + LinkStart + "Openboard&amp;" + DokumentacioSection + OpenBoardPage + "end)";
public const string Csatolmany = " [Csatolmany](" + LinkStart + "Csatolmany&amp;" + DokumentacioSection + CsatolmanyPage + "end)";
public const string Orarend = " [Órarend](" + LinkStart + "Orarend&amp;" + DokumentacioSection + OrarendPage + "end)";
public const string OsztalyCsoportok = " [Osztályok, Csoportok](" + LinkStart + "Osztalyok,%20Csoportok&amp;" + DokumentacioSection + OsztalyCsoportokPage + "end)";
public const string Tanevrendje = " [Tanév rendje](" + LinkStart + "Tanev%20rendje&amp;" + DokumentacioSection + TanevrendjePage + "end)";
}
}

View file

@ -0,0 +1,96 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text.RegularExpressions;
using Kreta.Ellenorzo.Dto.VN;
using Kreta.Ellenorzo.Dto.VN.Adatszotar;
using Kreta.Ellenorzo.Dto.VN.Documentation;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
/// <summary>
/// Author: Kovács Kornél (DevKornél), Madách Ferenc Created On: 2019.06.
/// </summary>
public class DummyEnumExampleProvider : IExamplesProvider
{
#pragma warning disable S3253 // Constructor and destructor declarations should not be redundant
public DummyEnumExampleProvider()
{
}
#pragma warning restore S3253 // Constructor and destructor declarations should not be redundant
public object GetExamples()
{
IEnumerable<MethodInfo> methodInfos = Assembly.GetExecutingAssembly().GetTypes()
.Where(x => x.Namespace == Constant.WebApiDefaultNamespace)
.SelectMany(y => y.GetMethods());
IEnumerable<string> returnTypeNames = methodInfos.Where(x => x.ReturnType.AssemblyQualifiedName != null && Regex.IsMatch(x.ReturnType.AssemblyQualifiedName, @"(Kreta.*)\=null"))
.Select(x => Regex.Match(x.ReturnType.AssemblyQualifiedName, @"(Kreta.*)\=null").Value);
IEnumerable<string> requestParameterNames = methodInfos.Select(x => x.GetParameters())
.SelectMany(x => x.Select(y => y.ParameterType.AssemblyQualifiedName)
.Where(z => z != null && Regex.IsMatch(z, $@"\w+{Constant.ResponseSuffix}")));
var osztalyokNestedNelkul = returnTypeNames.Union(requestParameterNames).Select(x => Type.GetType(x)).ToList();
var osztalyok = new List<Type>();
foreach (Type item in osztalyokNestedNelkul)
{
GetNestedDtoTypes(osztalyok, item);
}
return ConvertErtekByEnumToDictionary(osztalyokNestedNelkul.Union(osztalyok));
}
private static Dictionary<string, string> ConvertErtekByEnumToDictionary(IEnumerable<Type> osztalyok)
{
var enumokEsErtekeik = new Dictionary<string, string>();
IEnumerable<(string TypeName, string TypeQualifiedName)> query =
from osztaly in osztalyok.Distinct()
from property in osztaly.GetProperties()
where property.PropertyType.Name == typeof(AdatszotarResponseDto<>).Name
let propertyGenericArgument = property.PropertyType.GenericTypeArguments[0]
select (
TypeName: propertyGenericArgument.FullName,
TypeQualifiedName: propertyGenericArgument.AssemblyQualifiedName);
foreach ((string typeName, string typeQualifiedName) in query.ToList())
{
string[] typeNameStringArray = typeName.Split('.');
if (!enumokEsErtekeik.ContainsKey(typeNameStringArray[typeNameStringArray.Length - 1]))
{
var enumErtekek = Type.GetType(typeQualifiedName).GetEnumValues().OfType<Enum>().ToList();
var enumErtekekIndexekkel = new List<(int, Enum)>();
foreach (var ertek in enumErtekek)
{
enumErtekekIndexekkel.Add((Convert.ToInt32(ertek), ertek));
}
enumokEsErtekeik.Add(typeNameStringArray[typeNameStringArray.Length - 1], string.Join(",", enumErtekekIndexekkel));
}
}
return enumokEsErtekeik;
}
private void GetNestedDtoTypes(List<Type> osztalyok, Type type)
{
foreach (PropertyInfo property in type.GetProperties().Where(property => property.PropertyType.FullName.Contains(Constant.ResponseSuffix)
&& !property.PropertyType.FullName.Contains(typeof(DocumentationExampleDto).Name)).Select(property => property))
{
osztalyok.Add(GetNestedType(property));
GetNestedDtoTypes(osztalyok, GetNestedType(property));
}
}
private static Type GetNestedType(PropertyInfo property) => property.PropertyType.FullName.Contains(typeof(AdatszotarResponseDto<>).Name)
? Type.GetType(Regex.Match(property.PropertyType.FullName, @"\[(Kreta.*)\=null").Value.Remove(0, 1))
: Type.GetType(property.PropertyType.AssemblyQualifiedName);
}
}

View file

@ -0,0 +1,63 @@
using System;
using Kreta.Core.FeatureToggle;
using Kreta.Ellenorzo.Dto.VN.Interfaces;
using Kreta.Ellenorzo.WebApi.VN.Documentation.Helper;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
/// <summary>
/// Author: Kovács Kornél (DevKornél) Created On: 2019.05.
/// </summary>
internal class DummyExampleProvider<TController, TDto> : IExamplesProvider where TController : new() where TDto : IDtoDocumentation, new()
{
public object GetExamples()
{
object response = ExampleHelper.TryGetExampleFeatureDefaultExampleModel();
if (response != null)
{
return response;
}
TDto dto = new TDto();
object[] parameterArray = dto.Example.RequestParameter == null
? new object[] { }
: new[] { dto.Example.RequestParameter };
ExampleHelper.MockUser(dto.Example.MockUserName);
return new
{
RequestExample = dto.Example.RequestParameter,
RequestExampleUser = dto.Example.MockUserName,
ResponseExample = typeof(TController).GetMethod(dto.Example.MethodName).Invoke(new TController(), parameterArray)
};
}
}
internal class DummyExampleProviderWithDependencyInjection<TController, TDto> : IExamplesProvider where TDto : IDtoDocumentation, new()
{
public object GetExamples()
{
object response = ExampleHelper.TryGetExampleFeatureDefaultExampleModel();
if (response != null)
{
return response;
}
TDto dto = new TDto();
object[] parameterArray = dto.Example.RequestParameter == null
? new object[] { }
: new[] { dto.Example.RequestParameter };
ExampleHelper.MockUser(dto.Example.MockUserName);
return new
{
RequestExample = dto.Example.RequestParameter,
RequestExampleUser = dto.Example.MockUserName,
ResponseExample = typeof(TController).GetMethod(dto.Example.MethodName).Invoke((TController)Activator.CreateInstance(typeof(TController), FeatureContext.Instance), parameterArray)
};
}
}
}

View file

@ -0,0 +1,63 @@
using System;
using Kreta.Core.FeatureToggle;
using Kreta.Ellenorzo.Dto.VN.Interfaces;
using Kreta.Ellenorzo.WebApi.VN.Documentation.Helper;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
/// <summary>
/// Author: Kovács Kornél (DevKornél) Created On: 2019.05.
/// </summary>
internal class DummyListExampleProvider<TController, TDto> : IExamplesProvider where TController : new() where TDto : IDtoListDocumentation, new()
{
public object GetExamples()
{
object response = ExampleHelper.TryGetExampleFeatureDefaultExampleModel();
if (response != null)
{
return response;
}
TDto dto = new TDto();
object[] parameterArray = dto.ListExample.RequestParameter == null
? new object[] { }
: new[] { dto.ListExample.RequestParameter };
ExampleHelper.MockUser(dto.ListExample.MockUserName);
return new
{
RequestExample = dto.ListExample.RequestParameter,
RequestExampleUser = dto.ListExample.MockUserName,
ResponseExample = typeof(TController).GetMethod(dto.ListExample.MethodName).Invoke(new TController(), parameterArray)
};
}
}
internal class DummyListExampleProviderWithDependencyInjection<TController, TDto> : IExamplesProvider where TDto : IDtoListDocumentation, new()
{
public object GetExamples()
{
object response = ExampleHelper.TryGetExampleFeatureDefaultExampleModel();
if (response != null)
{
return response;
}
TDto dto = new TDto();
object[] parameterArray = dto.ListExample.RequestParameter == null
? new object[] { }
: new[] { dto.ListExample.RequestParameter };
ExampleHelper.MockUser(dto.ListExample.MockUserName);
return new
{
RequestExample = dto.ListExample.RequestParameter,
RequestExampleUser = dto.ListExample.MockUserName,
ResponseExample = typeof(TController).GetMethod(dto.ListExample.MethodName).Invoke((TController)Activator.CreateInstance(typeof(TController), FeatureContext.Instance), parameterArray)
};
}
}
}

View file

@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Web;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Enums.VN;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation.Helper
{
/// <summary>
/// Author: Kovács Kornél (DevKornél) Created On: 2019.05.
/// Dokumentáció generálásához szükséges segédfüggvények
/// </summary>
internal static class ExampleHelper
{
private static readonly bool s_isExampleValuesEnabled = bool.Parse(ConfigurationManager.AppSettings["IsExampleValuesEnabled"]);
public static void MockUser(MockUserName mockUserName)
{
const string MockUserIntemenyAzonosito = "biatorbagyi";
const int MockUserTanevId = 5963;
const string MockMobileUserHttpContextKey = "MobileUser";
if (HttpContext.Current.Items.Contains(MockMobileUserHttpContextKey))
{
HttpContext.Current.Items.Remove(MockMobileUserHttpContextKey);
}
var mockMobileTanuloIdpUniqueId = new Guid("528f7fe8-f802-4b99-83f9-79afe6d863be");
var mockInstituteUniqueId = new Guid("A88CF92A-8C24-4592-90C8-FB095B26EBDB");
switch (mockUserName)
{
case MockUserName.Antali:
const int User1MockUserTanuloId = 629653;
const string User1MockUserTanuloName = "antali";
HttpContext.Current.Items.Add(MockMobileUserHttpContextKey, new MobileUser(MockUserIntemenyAzonosito, User1MockUserTanuloId, User1MockUserTanuloName, null, new List<FelhasznaloSzerepkor>
{
FelhasznaloSzerepkor.Tanulo
}, MockUserTanevId, null, mockMobileTanuloIdpUniqueId, mockMobileTanuloIdpUniqueId, mockInstituteUniqueId));
break;
case MockUserName.Gondviselo:
const int User2MockUserId = 298269;
const int User2MockUserTanuloId = 629653;
const string User2MockUserTanuloName = "antali";
var mockMobileGondviseloIdpUniqueId = new Guid("bf4adfb1-a2ec-4e5c-9aad-893304ba6cb1");
HttpContext.Current.Items.Add(MockMobileUserHttpContextKey, new MobileUser(MockUserIntemenyAzonosito, User2MockUserTanuloId, User2MockUserTanuloName, User2MockUserId, new List<FelhasznaloSzerepkor>
{
FelhasznaloSzerepkor.Gondviselo
}, MockUserTanevId, null, mockMobileGondviseloIdpUniqueId, mockMobileTanuloIdpUniqueId, mockInstituteUniqueId));
break;
case MockUserName.None:
default:
throw new BlException(BlExceptionType.ElvartErtekNemTalalhato);
}
}
public static object TryGetExampleFeatureDefaultExampleModel()
=> s_isExampleValuesEnabled ? null : new Dictionary<object, object>
{
{
"Figyelmeztetés",
"A példák nincsenek engedélyezve."
}
};
}
}

View file

@ -0,0 +1,16 @@
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class IntezmenyMarTanevetValtottExample : EllenorzoExceptionResponseDto, IExamplesProvider
{
public IntezmenyMarTanevetValtottExample() : base(BlExceptionType.IntezmenyMarTanevetValtott, BlExceptionType.IntezmenyMarTanevetValtott.ToDisplayName())
{
}
public object GetExamples() => new IntezmenyMarTanevetValtottExample();
}
}

View file

@ -0,0 +1,16 @@
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class IsmeretlenHibaExample : EllenorzoExceptionResponseDto, IExamplesProvider
{
public IsmeretlenHibaExample() : base(BlExceptionType.None, BlExceptionType.None.ToDisplayName())
{
}
public object GetExamples() => new IsmeretlenHibaExample();
}
}

View file

@ -0,0 +1,16 @@
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class JogosulatlanExample : EllenorzoExceptionResponseDto, IExamplesProvider
{
public JogosulatlanExample() : base(BlExceptionType.NincsJogosultsag, BlExceptionType.NincsJogosultsag.ToDisplayName())
{
}
public object GetExamples() => new JogosulatlanExample();
}
}

View file

@ -0,0 +1,15 @@
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class LejartTokenExample : IExamplesProvider
{
#pragma warning disable S3253 // Constructor and destructor declarations should not be redundant
public LejartTokenExample()
{
}
#pragma warning restore S3253 // Constructor and destructor declarations should not be redundant
public object GetExamples() => "invalid_grant";
}
}

View file

@ -0,0 +1,16 @@
using Kreta.Core;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class NemLetezoEntitasExample : EllenorzoExceptionResponseDto, IExamplesProvider
{
public NemLetezoEntitasExample() : base(BlExceptionType.NemLetezoEntitas, BlExceptionType.NemLetezoEntitas.ToDisplayName())
{
}
public object GetExamples() => new NemLetezoEntitasExample();
}
}

View file

@ -0,0 +1,15 @@
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
public class PermissionDeniedExample : IExamplesProvider
{
#pragma warning disable S3253 // Constructor and destructor declarations should not be redundant
public PermissionDeniedExample()
{
}
#pragma warning restore S3253 // Constructor and destructor declarations should not be redundant
public object GetExamples() => "permission_denied";
}
}

View file

@ -0,0 +1,30 @@
param ([string]$target)
$allowedUserList= (
'RCINET\madachf',
'RCINET\ersekz',
'RCINET\jakaba',
'RCINET\retinagyt',
'RCINET\egyediz')
$user = Get-WmiObject Win32_ComputerSystem | select username
$isRunEnabled = $TRUE
$isAlwaysRunEnabled = $FALSE
if($isAlwaysRunEnabled -OR ($isRunEnabled -AND ($allowedUserList -Contains $user.username)))
{
Add-Type -AssemblyName "System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
$webResposne = Invoke-WebRequest -Uri "https://biatorbagyi.ekreta.hu/ellenorzo/swagger/docs/V3"
if($webResposne.StatusCode -eq 200)
{
Out-File -FilePath $target\swagger.json -InputObject $webResposne.Content -Force
Write-Host "$target\swagger.json VN kész."
}
else
{
$top = new-Object System.Windows.Forms.Form -property @{Topmost=$true}
[System.Windows.Forms.MessageBox]::Show($top,"Hibás VN Swagger!",'Error',1,'Error')
}
}

View file

@ -0,0 +1,36 @@
using System.Collections.Generic;
using System.Linq;
using Kreta.Core;
using Kreta.Core.Domain;
using Kreta.Core.Enum;
using Kreta.Ellenorzo.Domain.VN.Interfaces;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Swashbuckle.Examples;
namespace Kreta.Ellenorzo.WebApi.VN.Documentation
{
/// <summary>
/// Author: DevKornél Created On: 2019.05.
/// </summary>
public class ValidaciosHibaExample<TModel, TSameModel> : EllenorzoExceptionResponseDto, IExamplesProvider where TModel : class, IModelValidacio<TSameModel>, new() where TSameModel : class
{
public ValidaciosHibaExample() : base(BlExceptionType.ModelValidacio, BlExceptionType.ModelValidacio.ToDisplayName())
{
}
public ValidaciosHibaExample(IEnumerable<DetailedErrorItem> errorList)
: base(BlExceptionType.ModelValidacio, BlExceptionType.ModelValidacio.ToDisplayName(), errorList.ToList())
{
}
public object GetExamples()
{
List<DetailedErrorItem> example = new List<DetailedErrorItem>();
int index = 0;
new List<string>(new TModel().ModelValidaciok.Values).ForEach(x => example.Add(new DetailedErrorItem($"custom_{++index}", x, BlExceptionType.ModelValidacio)));
return new ValidaciosHibaExample<TModel, TSameModel>(example);
}
}
}

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- For more information on using web.config transformation visit https://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<!--
In the example below, the "SetAttributes" transform will change the value of
"connectionString" to use "ReleaseSQLServer" only when the "Match" locator
finds an attribute "name" that has a value of "MyDB".
<connectionStrings>
<add name="MyDB"
connectionString="Data Source=ReleaseSQLServer;Initial Catalog=MyReleaseDB;Integrated Security=True"
xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</connectionStrings>
-->
<system.web>
<compilation xdt:Transform="RemoveAttributes(debug)" />
<!--
In the example below, the "Replace" transform will replace the entire
<customErrors> section of your web.config file.
Note that because there is only one customErrors section under the
<system.web> node, there is no need to use the "xdt:Locator" attribute.
<customErrors defaultRedirect="GenericError.htm"
mode="RemoteOnly" xdt:Transform="Replace">
<error statusCode="500" redirect="InternalError.htm"/>
</customErrors>
-->
</system.web>
</configuration>

View file

@ -0,0 +1,240 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="ApiKeyConfiguration" type="Kreta.Core.Configuratiaton.ApiKeyConfiguration, Kreta.Core" />
<section name="RequestResponseLogging" type="Kreta.Web.Logging.Configuration.RequestResponseLoggingConfigurationSection, Kreta.Web.Logging" />
<section name="SerilogRequestResponseLogger" type="Kreta.Web.Logging.Configuration.Serilog.SerilogConfigurationSection, Kreta.Web.Logging" />
<section name="SerilogTraceLogger" type="Kreta.Web.Logging.Configuration.Serilog.SerilogConfigurationSection, Kreta.Web.Logging" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="ServerConfig" type="Kreta.BusinessLogic.Classes.ConfigsectionHandler" />
</configSections>
<ServerConfig>
<config>
<server>
<name>KRETA_MOBIL_LOCAL</name>
<systemtype>Teszt</systemtype>
<port>18099</port>
<loglevel>DEBUG</loglevel>
<sessiontimeout>46</sessiontimeout>
<!-- A felhasználok inaktivitással töltött max ideje mindig 1 percel kevesebb mint a session idő, (ha 1 akkor 30 másodperc lesz) -->
<!-- Az egy kérésben felhozható rekordok maximális száma. -->
<maxrecordsperrequest>30000</maxrecordsperrequest>
<dbconnection>Data Source=kretadevsql01\inst02;User ID=_SQL_mobil_app;Password=7qRpZsB@Ylgi;Initial Catalog=KRETA_MOBIL_LOCAL</dbconnection>
<globalapidbconnection>Data Source={0};User ID=kreta;Password=Porcica1.;Initial Catalog={1};MultiSubnetFailover=true;Connection Timeout=100;</globalapidbconnection>
<lcid>1038</lcid>
</server>
</config>
</ServerConfig>
<ApiKeyConfiguration ApiKey="54efe33e-540c-43af-8d6a-5192b1a52062" Enabled="false" />
<RequestResponseLogging EnableLogging="false">
<TraceLogging EnableLogging="false" LogOnlyOnError="false" LoggingModes="internal, external" LogLevels="info, warning, error" ExternalLoggerType="Serilog" InternalLogMaximumLength="512" />
<!-- Define handlers here. Handlers are fallback type handlers (if first handler could not log the request second will be applied then third etc.) -->
<Handlers>
<Handler RequestMediaTypes="multipart/form-data" LogLevels="info" RequestHeaderTrimLength="2048" RequestBodyTrimLength="0" ResponseHeaderTrimLength="2048" ResponseBodyTrimLength="4096" />
<Handler RequestMediaTypes="multipart/form-data" LogLevels="error" RequestHeaderTrimLength="4096" RequestBodyTrimLength="0" ResponseHeaderTrimLength="4096" ResponseBodyTrimLength="32768" />
<Handler ResponseMediaTypes="text/html" LogLevels="info" RequestHeaderTrimLength="2048" RequestBodyTrimLength="2048" ResponseHeaderTrimLength="2048" ResponseBodyTrimLength="0" />
<Handler ResponseMediaTypes="application/json, application/xml, text/plain, empty" LogLevels="info" RequestHeaderTrimLength="2048" RequestBodyTrimLength="2048" ResponseHeaderTrimLength="2048" ResponseBodyTrimLength="4096" />
<Handler ResponseMediaTypes="text/html, application/json, application/xml, text/plain, empty" LogLevels="error" RequestHeaderTrimLength="4096" RequestBodyTrimLength="32768" ResponseHeaderTrimLength="4096" ResponseBodyTrimLength="32768" />
</Handlers>
</RequestResponseLogging>
<SerilogRequestResponseLogger LossyBufferSize="10000">
<ElasticSearch UseCustomBackOffLogic="true" NodeUris="http://elasticsearch.ekreta-dev.hu:9200/" IndexFormat="kreta_ellenorzo_requestresponselog_serilog-{0:yyyy.MM.dd}" MinimumLogEventLevel="Information" ConnectionTimeoutInSeconds="30" WaitBetweenForCheckingEventBatchesInSeconds="1" BatchPostingLimit="100" AutoRegisterTemplateVersion="ESv7" />
</SerilogRequestResponseLogger>
<SerilogTraceLogger LossyBufferSize="30000">
<!--Index, Field, Off -->
<ElasticSearch UseCustomBackOffLogic="true" NodeUris="http://elasticsearch.ekreta-dev.hu:9200/" IndexFormat="kreta_ellenorzo_tracelog-{0:yyyy.MM.dd}" MinimumLogEventLevel="Information" ConnectionTimeoutInSeconds="30" WaitBetweenForCheckingEventBatchesInSeconds="1" BatchPostingLimit="50" AutoRegisterTemplateVersion="ESv7" />
</SerilogTraceLogger>
<log4net>
<logger name="RequestResponseLogger">
<level value="ALL" />
<appender-ref ref="AsyncBufferingForwarder" />
</logger>
<appender name="AsyncBufferingForwarder" type="Easy.Logger.AsyncBufferingForwardingAppender, Easy.Logger">
<bufferSize value="2048" />
<lossy value="true" />
<Fix value="508" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ALL" />
</evaluator>
<appender-ref ref="FileAppender" />
</appender>
<appender name="ElasticSearchAppender" type="log4net.ElasticSearch.ElasticSearchAppender, log4net.ElasticSearch">
<connectionString value="Scheme=http;Server=elasticsearch.ekreta-dev.hu;Index=kreta_ellenorzo_requestresponselog;Port=9200;rolling=true" />
<lossy value="false" />
<Fix value="508" />
<evaluator type="log4net.Core.LevelEvaluator">
<threshold value="ALL" />
</evaluator>
<bufferSize value="1" />
</appender>
<appender name="FileAppender" type="log4net.Appender.RollingFileAppender">
<file value="App_Data\Log\requestresponse" />
<datePattern value=".yyyy-MM-dd'.log'" />
<appendToFile value="true" />
<maximumFileSize value="2MB" />
<maxSizeRollBackups value="10" />
<rollingStyle value="Composite" />
<countDirection value="1" />
<staticLogFileName value="false" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %utcdate %level %thread %logger %message%newline" />
</layout>
</appender>
</log4net>
<appSettings>
<add key="idp:Authority" value="http://idp.ekreta.hu" />
<add key="idp:RequiredScopes" value="kreta-ellenorzo-webapi.public" />
<add key="IsSwaggerUiEnabled" value="true" />
<add key="IsExampleValuesEnabled" value="false" />
<add key="IsApiSecurityEnabled" value="false" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.8" />
<httpRuntime targetFramework="4.6.1" />
<pages>
<namespaces>
<remove namespace="Kendo.Mvc.UI" />
<remove namespace="MvcSiteMapProvider.Web.Html" />
<remove namespace="MvcSiteMapProvider.Web.Html.Models" />
</namespaces>
</pages>
</system.web>
<system.webServer>
<modules>
<remove name="UsageModule" />
<remove name="LoggingModule" />
<remove name="Session" />
</modules>
<handlers>
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="OPTIONSVerbHandler" />
<remove name="TRACEVerbHandler" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Host.SystemWeb" publicKeyToken="31BF3856AD364E35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.6.0" newVersion="5.2.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="SimpleInjector" publicKeyToken="984cb50dea722e99" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.11.0" newVersion="4.0.11.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Logging" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.4.0.0" newVersion="5.4.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.IdentityModel.Tokens" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.4.0.0" newVersion="5.4.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.OAuth" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Owin.Security.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.0.0" newVersion="3.1.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.IdentityModel.Tokens.Jwt" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.20622.1351" newVersion="4.0.20622.1351" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.FileExtensions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Configuration.Binder" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.FileProviders.Physical" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.FileProviders.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Primitives" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.FileSystemGlobbing" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.DotNet.PlatformAbstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.4.0" newVersion="2.0.4.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.6.0" newVersion="4.0.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Options" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.1.0" newVersion="2.0.1.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="CacheManager.Core" publicKeyToken="5b450b4fb65c4cdb" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.0.0" newVersion="1.2.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks.Extensions" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.2.0.1" newVersion="4.2.0.1" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

View file

@ -0,0 +1,88 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="CacheManager.Core" version="1.2.0" targetFramework="net48" />
<package id="CacheManager.StackExchange.Redis" version="1.2.0" targetFramework="net48" />
<package id="CacheManager.SystemRuntimeCaching" version="1.2.0" targetFramework="net48" />
<package id="DevDefined.OAuth" version="0.2" targetFramework="net48" />
<package id="Easy.Logger" version="3.2.0" targetFramework="net48" />
<package id="Easy.Logger.Interfaces" version="1.1.0" targetFramework="net48" />
<package id="Elasticsearch.Net" version="7.0.0" targetFramework="net48" />
<package id="Hangfire.Core" version="1.7.27" targetFramework="net48" />
<package id="Hangfire.SqlServer" version="1.7.27" targetFramework="net48" />
<package id="IdentityModel" version="1.9.2" targetFramework="net48" />
<package id="IdentityServer3.AccessTokenValidation" version="2.14.0" targetFramework="net48" />
<package id="Kreta.Core.Configuration" version="1.3.20119.1" targetFramework="net48" />
<package id="Kreta.Core.IoC" version="1.2.63491" targetFramework="net48" />
<package id="Kreta.Core.Validation" version="2.0.16" targetFramework="net48" />
<package id="Kreta.Web.Logging" version="1.4.5" targetFramework="net48" />
<package id="Kreta.Web.Logging.Abstractions" version="1.0.12" targetFramework="net48" />
<package id="log4net" version="2.0.8" targetFramework="net48" />
<package id="log4net.ElasticSearch" version="2.3.6" targetFramework="net48" />
<package id="Meziantou.Analyzer" version="1.0.688" targetFramework="net48" developmentDependency="true" />
<package id="Microsoft.AspNet.WebApi" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.AspNet.WebApi.Owin" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.AspNet.WebApi.OwinSelfHost" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.6" targetFramework="net48" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.1" targetFramework="net48" />
<package id="Microsoft.DotNet.PlatformAbstractions" version="2.0.4" targetFramework="net48" />
<package id="Microsoft.Extensions.Configuration" version="2.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.Configuration.Abstractions" version="2.0.1" targetFramework="net48" />
<package id="Microsoft.Extensions.Configuration.Binder" version="2.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.DependencyInjection.Abstractions" version="2.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.DependencyModel" version="2.0.4" targetFramework="net48" />
<package id="Microsoft.Extensions.Options" version="2.0.1" targetFramework="net48" />
<package id="Microsoft.Extensions.Options.ConfigurationExtensions" version="2.0.0" targetFramework="net48" />
<package id="Microsoft.Extensions.Primitives" version="2.0.0" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Logging" version="5.4.0" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Protocol.Extensions" version="1.0.2.206221351" targetFramework="net48" />
<package id="Microsoft.IdentityModel.Tokens" version="5.4.0" targetFramework="net48" />
<package id="Microsoft.Owin" version="4.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Host.HttpListener" version="3.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Host.SystemWeb" version="4.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Hosting" version="3.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Security" version="4.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Security.Jwt" version="3.1.0" targetFramework="net48" />
<package id="Microsoft.Owin.Security.OAuth" version="3.1.0" targetFramework="net48" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net48" />
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net48" />
<package id="Nexius.Common" version="1.0.0.29" targetFramework="net48" />
<package id="Nexius.IdentityProvider.Model" version="1.0.0.109" targetFramework="net48" />
<package id="Owin" version="1.0" targetFramework="net48" />
<package id="Pipelines.Sockets.Unofficial" version="2.1.16" targetFramework="net48" />
<package id="Serilog" version="2.8.0" targetFramework="net48" />
<package id="Serilog.Formatting.Compact" version="1.0.0" targetFramework="net48" />
<package id="Serilog.Formatting.Elasticsearch" version="8.0.0" targetFramework="net48" />
<package id="Serilog.Settings.Configuration" version="3.1.0" targetFramework="net48" />
<package id="Serilog.Sinks.Elasticsearch" version="8.0.0" targetFramework="net48" />
<package id="Serilog.Sinks.File" version="4.0.0" targetFramework="net48" />
<package id="Serilog.Sinks.PeriodicBatching" version="2.1.1" targetFramework="net48" />
<package id="Serilog.Sinks.RollingFile" version="3.3.0" targetFramework="net48" />
<package id="SimpleInjector" version="4.0.11" targetFramework="net48" />
<package id="SimpleInjector.Integration.WebApi" version="4.0.11" targetFramework="net48" />
<package id="StackExchange.Redis" version="2.1.58" targetFramework="net48" />
<package id="Swashbuckle" version="5.6.0" targetFramework="net48" />
<package id="Swashbuckle.Core" version="5.6.0" targetFramework="net48" />
<package id="Swashbuckle.Examples" version="3.12.0" targetFramework="net48" />
<package id="System.Buffers" version="4.5.1" targetFramework="net48" />
<package id="System.Diagnostics.DiagnosticSource" version="4.5.1" targetFramework="net48" />
<package id="System.Diagnostics.PerformanceCounter" version="4.7.0" targetFramework="net48" />
<package id="System.IdentityModel.Tokens.Jwt" version="4.0.2.206221351" targetFramework="net48" />
<package id="System.IO" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net48" />
<package id="System.IO.Pipelines" version="4.7.1" targetFramework="net48" />
<package id="System.Memory" version="4.5.3" targetFramework="net48" />
<package id="System.Net.Http" version="4.3.4" targetFramework="net48" />
<package id="System.Numerics.Vectors" version="4.4.0" targetFramework="net48" />
<package id="System.Runtime" version="4.3.0" targetFramework="net48" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.7.1" targetFramework="net48" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net48" />
<package id="System.Security.Cryptography.Encoding" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net48" />
<package id="System.Security.Cryptography.X509Certificates" version="4.3.2" targetFramework="net48" />
<package id="System.Threading.Channels" version="4.7.1" targetFramework="net48" />
<package id="System.Threading.Tasks.Extensions" version="4.5.4" targetFramework="net48" />
<package id="Wdc.System.Net.Http.Formatting.NetStandard" version="1.0.7" targetFramework="net48" />
<package id="WebActivatorEx" version="2.2.0" targetFramework="net48" />
</packages>