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

115 lines
5.2 KiB
C#

using System.Linq;
using System.Net;
using System.Net.Http;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Interfaces;
using Kreta.BusinessLogic.Logic;
using Kreta.BusinessLogic.Utils;
using Kreta.Client.CoreApi;
using Kreta.Core.ConnectionType;
using Kreta.Core.Enum;
using Kreta.Core.Exceptions;
using Kreta.Naplo.BusinessLogic.V3.Logic;
using Kreta.Naplo.Domain.V3.Common;
using Kreta.Naplo.Domain.V3.Csatolmany;
using Kreta.Naplo.Domain.V3.HaziFeladat;
namespace Kreta.Naplo.BusinessLogic.V3.HaziFeladat
{
internal static class HaziFeladatSubqueries
{
internal static HaziFeladatResponse GetHaziFeladat(int id, DefaultConnectionParameters dcp)
{
var haziFeladat = new DktFeladatHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).GetTanarHaziFeladatDetail(id);
//felesleges html tagek kitörlése kódból- KRETA2-4145
//TODO: felesleges lesz ha ha már db-ben se lesznek már ilyenek benne
haziFeladat.Szoveg = RichTextLogic.RemoveSpecificHtmlTags(haziFeladat.Szoveg, RichTextLogic.RemovableHtmlTags);
return new HaziFeladatResponse
{
Id = haziFeladat.Id.Value,
Szoveg = string.IsNullOrWhiteSpace(haziFeladat.Szoveg) ? null : haziFeladat.Szoveg,
HataridoDatuma = haziFeladat.Hatarido,
TantargyId = haziFeladat.TantargyId,
TantargyNev = haziFeladat.Tantargy,
Csatolmanyok = haziFeladat.Csatolmanyok.Select(x => new CsatolmanyResponse { Id = x.Key, Nev = x.Value }),
};
}
internal static int SaveHaziFeladat(HaziFeladatCreateRequest request, DefaultConnectionParameters dcp, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
var tanarHaziFeladatCo = new TanarHaziFeladatCO()
{
Szoveg = CommonUtils.CreateLinksInText(request.Szoveg),
Hatarido = request.BeadasiHatarido,
FeladasDatuma = request.OraDatum.Date,
Idopont = request.OraDatum,
Oraszam = request.Oraszam,
TantargyId = request.TantargyId,
OsztalyCsoportId = request.OsztalyCsoportId,
IsTanarRogzitette = true,
RogzitoId = dcp.FelhasznaloId,
IntezmenyId = dcp.IntezmenyId,
TanevId = dcp.TanevId
};
return new DktFeladatHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId))
.SaveOrUpdateTanarHaziFeladat(tanarHaziFeladatCo, dcp.DalHandler.TanarDal().GetTanarId(request.OraDatum, request.Oraszam, request.OsztalyCsoportId, request.TantargyId), fileServiceHelper, coreApiClient);
}
internal static void UpdateHaziFeladat(int id, HaziFeladatUpdateRequest request, DefaultConnectionParameters dcp, IFileServiceHelper fileServiceHelper, ICoreApiClient coreApiClient)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
var tanarHaziFeladatCo = new TanarHaziFeladatCO()
{
Id = id,
Szoveg = CommonUtils.CreateLinksInText(request.Szoveg),
Hatarido = request.HataridoDatuma,
CsatolmanyId = request.CsatolmanyId,
IsTanarRogzitette = true,
RogzitoId = dcp.FelhasznaloId,
IntezmenyId = dcp.IntezmenyId,
TanevId = dcp.TanevId
};
new DktFeladatHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId))
.SaveOrUpdateTanarHaziFeladat(tanarHaziFeladatCo, dcp.FelhasznaloId, fileServiceHelper, coreApiClient);
}
internal static void DeleteHaziFeladat(int id, DefaultConnectionParameters dcp, ICoreApiClient coreApiClient)
{
var hazi = dcp.DalHandler.DKT_FeladatDal().Get(id);
if (hazi.Torolt)
{
throw new BlException(BlExceptionType.NemLetezoEntitas);
}
if (hazi.AlkalmazottId == dcp.FelhasznaloId || hazi.RogzitoAlkalmazottId == dcp.FelhasznaloId || hazi.HelyettesitoAlkalmazottId == dcp.FelhasznaloId)
{
new DktFeladatHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId)).DeleteHazi(id, coreApiClient);
}
else
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
}
internal static void HaziFeladatCsatolmanyTorles(int id, DefaultConnectionParameters dcp, IFileServiceHelper fileServiceHelper)
{
var dktFileHelper = new DktFileHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), fileServiceHelper);
if (!dktFileHelper.IsFelhasznaloToltotteFel(dcp.DalHandler, id))
{
throw new BlException(BlExceptionType.NincsJogosultsag);
}
dktFileHelper.DeleteCsatolmany(id, true);
}
}
}