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); } } }