79 lines
3.6 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|