kreta/Kreta.WebApi/Naplo/Kreta.Naplo.BusinessLogic/V3/Igazolas/IgazolasSubqueries.cs
2024-03-13 00:33:46 +01:00

79 lines
3.6 KiB
C#

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<IgazolasResponse> GetIgazolas(DefaultConnectionParameters dcp, int tanuloId)
{
var igazolasok = new IgazolasHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).GetIgazolasByTanuloId(tanuloId).ToDaoList<IgazolasResponseDao>();
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<int> { 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);
}
}
}
}