using System; using System.Collections.Generic; using System.Linq; using Kreta.BusinessLogic.HelperClasses; using Kreta.BusinessLogic.Helpers; using Kreta.BusinessLogic.Helpers.SystemSettings; using Kreta.Core.ConnectionType; using Kreta.Core.Enum; using Kreta.Core.Exceptions; using Kreta.Core.Logic; using Kreta.Naplo.BusinessLogic.V3.Logic; using Kreta.Naplo.Dao.V3.Igazolas; using Kreta.Naplo.Domain.V3.Common; using Kreta.Naplo.Domain.V3.Igazolas; using Kreta.Resources; namespace Kreta.Naplo.BusinessLogic.V3.Igazolas { public class IgazolasSubqueries { internal static IEnumerable GetIgazolas(DefaultConnectionParameters dcp, int tanuloId) { var igazolasok = new IgazolasHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).GetIgazolasByTanuloId(tanuloId).ToDaoList(); return igazolasok.Select(igazolas => new IgazolasResponse { Id = igazolas.Id, Kezdete = igazolas.Kezdete, Vege = igazolas.Vege, Tipusa = igazolas.Tipusa, Megjegyzes = igazolas.Megjegyzes, Rogzito = igazolas.Rogzito, Torolheto = AuthorizationHelper.Igazolas.TanarHasAccess(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), igazolas.Id) }).ToList(); } internal static void CreateIgazolas(DefaultConnectionParameters dcp, IgazolasCreateRequest request) { new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid(); if (!AuthorizationHelper.Tanulo.TanarHasAccess(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), new List { request.TanuloId }, request.OsztalyCsoportId, false)) { throw new BlException(ErrorResource.AFelhasznalonakNincsMegfeleloJogosultsagaAFunkcioHasznalatahoz, BlExceptionType.NincsJogosultsag); } if (request.IgazolasKezdete <= new SystemSettingsHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).GetIgazolasokNaplozarasDatuma()) { throw new BlException(IgazolasResource.AzIgazolasKezdoNapjaNemEshetLezartIdoszakra, BlExceptionType.ModelValidacio); } new IgazolasHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).SaveOrUpdateIgazolas(new IgazolasCO() { TanuloId = request.TanuloId, OsztCsop = request.OsztalyCsoportId, ErvKezdete = request.IgazolasKezdete, ErvVege = request.IgazolasVege, RogzitoId = dcp.FelhasznaloId, RogzDatum = DateTime.Now, IgazolasTipus = request.IgazolasTipus, Megjegyzes = request.IgazolasMegjegyzes }); } internal static void DeleteIgazolas(DefaultConnectionParameters dcp, int id) { var torolheto = AuthorizationHelper.Igazolas.TanarHasAccess(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), id); if (torolheto) { new IgazolasHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).DeleteIgazolasById(id); } else { throw new BlException(BlExceptionType.NincsJogosultsag); } } } }