using System.Collections.Generic;
using System.Linq;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Ellenorzo.Enums;
namespace Kreta.Ellenorzo.BL.VN.Logic
{
///
/// Author: Kovács Kornél (DevKornél) Created On: 2019.05.
/// Felhasználói jogosultágkezelés logika
///
internal static class FelhasznaloLogic
{
internal static bool IsJogosult(bool needExceptionJogosultsagHianyaban, IEnumerable felhasznaloJogosultsagLista, params FelhasznaloSzerepkor[] szuksegesJogosultsagLista)
{
bool haveAllJogosultsag = true;
if (felhasznaloJogosultsagLista.ToList().Count > 0)
{
foreach (var szuksegesJogosultsag in szuksegesJogosultsagLista)
{
if (!felhasznaloJogosultsagLista.ToList().Contains(szuksegesJogosultsag))
{
haveAllJogosultsag = false;
}
}
}
else
{
needExceptionJogosultsagHianyaban = true;
haveAllJogosultsag = false;
}
return !haveAllJogosultsag && needExceptionJogosultsagHianyaban
? throw new BlException(BlExceptionType.NincsJogosultsag)
: haveAllJogosultsag;
}
}
}