kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.BL/VN/HaziFeladat/HaziFeladatSubqueries.cs
2024-03-13 00:33:46 +01:00

104 lines
5.8 KiB
C#

using System.Collections.Generic;
using System.Linq;
using Kreta.BusinessLogic.Classes;
using Kreta.BusinessLogic.HelperClasses;
using Kreta.BusinessLogic.Helpers;
using Kreta.BusinessLogic.Logic;
using Kreta.Core.ConnectionType;
using Kreta.Core.Logic;
using Kreta.DataAccessManual.Util;
using Kreta.Ellenorzo.BL.VN.Adatszotar;
using Kreta.Ellenorzo.BL.VN.Logic;
using Kreta.Ellenorzo.Dao.VN.HaziFeladat;
using Kreta.Ellenorzo.Domain.VN.Adatszotar;
using Kreta.Ellenorzo.Domain.VN.Common;
using Kreta.Ellenorzo.Domain.VN.Felhasznalo.Alkalmazott.Tanar;
using Kreta.Ellenorzo.Domain.VN.HaziFeladat;
using Kreta.Ellenorzo.Domain.VN.HaziFeladat.Csatolmany;
using Kreta.Ellenorzo.Domain.VN.OsztalyCsoport;
using Kreta.Ellenorzo.Domain.VN.Tantargy;
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
using Kreta.Ellenorzo.Enums.VN;
using Kreta.Enums;
namespace Kreta.Ellenorzo.BL.VN.HaziFeladat
{
internal static class HaziFeladatSubqueries
{
internal static HaziFeladatDetailResponse GetHaziFeladat(DefaultConnectionParameters dcp, HaziFeladatGetRequest request)
{
var haziFeladat = new DktFeladatHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.TanuloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler)).GetTanarHaziFeladatDetail(request.Uid.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);
var targyKategoriaTipusById = AdatszotarSubqueries.GetTipusByIdDictionary((int)GeneratedAdatszotarTipusEnum.TargyKategoriaTipus, dcp.TanevId);
var response = new HaziFeladatDetailResponse
{
Uid = new HaziFeladatUid(haziFeladat.Id.Value),
OsztalyCsoport = new OsztalyCsoportSimplifiedResponse { Uid = new OsztalyCsoportUid(haziFeladat.OsztalyCsoportId) },
Tantargy = new TantargyResponse(haziFeladat.TantargyId, haziFeladat.Tantargy, new Adatszotar<TargyKategoriaTipusEnum>(haziFeladat.TantargyKategoria, targyKategoriaTipusById[haziFeladat.TantargyKategoria].Name)),
RogzitoTanar = new TanarSimplifiedResponse { Nev = haziFeladat.Rogzito },
IsTanarRogzitette = haziFeladat.IsTanarRogzitette,
IsBeadhato = SDAConvert.ToBoolean(haziFeladat.HfBeadandoTipusId),
Szoveg = string.IsNullOrWhiteSpace(haziFeladat.Szoveg) ? null : haziFeladat.Szoveg,
FeladasDatuma = haziFeladat.FeladasDatuma,
HataridoDatuma = haziFeladat.Hatarido,
RogzitesIdopontja = haziFeladat.RogzitesIdopontja,
Csatolmanyok = haziFeladat.Csatolmanyok.Select(x => new CsatolmanySimplifiedResponse { Uid = new HaziFeladatCsatolmanyUid(x.Key, CsatolmanyTipus.Csatolmany), Nev = x.Value }).ToList(),
IsCsatolasEngedelyezes = SDAConvert.ToBoolean(haziFeladat.CsatolasEngedelyezesTipusId)
};
return RequestFilterLogic.CreateUidFilteredResponse<HaziFeladatDetailResponse, HaziFeladatGetRequest, HaziFeladatUid>(response, request);
}
internal static HashSet<HaziFeladatListResponse> ListHaziFeladat(DefaultConnectionParameters dcp, HaziFeladatListRequest request)
{
new ValidatorLogic(request).ThrowExceptionIfModelIsNotvalid();
var response = new HashSet<HaziFeladatListResponse>(new HaziFeladatListResponse());
var helper = new DktFeladatHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.TanuloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler));
var tanuloHaziFeladatai = helper.GetTanuloHaziFeladat(
new TanuloHaziFeladatSearchCO
{
HaziFeladatHataridoKezdoDatum = request.DatumTol,
HaziFeladatHatairdo = request.DatumIg
},
null,
true,
true).ToDaoList<HaziFeladatResponseDao>();
var targyKategoriaTipusById = AdatszotarSubqueries.GetTipusByIdDictionary((int)GeneratedAdatszotarTipusEnum.TargyKategoriaTipus, dcp.TanevId);
foreach (var item in tanuloHaziFeladatai)
{
//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
item.Szoveg = RichTextLogic.RemoveSpecificHtmlTags(item.Szoveg, RichTextLogic.RemovableHtmlTags);
_ = response.Add(new HaziFeladatListResponse
{
Uid = new HaziFeladatUid(item.Id),
Tantargy = new TantargyResponse(item.TantargyId, item.TantargyNev, new Adatszotar<TargyKategoriaTipusEnum>(item.TargyKategoria, targyKategoriaTipusById[item.TargyKategoria].Name)),
RogzitoTanar = new TanarSimplifiedResponse { Nev = string.IsNullOrWhiteSpace(item.RogzitoTanarNev) ? string.Empty : item.RogzitoTanarNev }, //KRETA2-5671 miatt fix
IsTanarRogzitette = item.IsTanarRogzitette,
IsBeadhato = SDAConvert.ToBoolean(item.HfBeadandoTipusId),
Szoveg = string.IsNullOrWhiteSpace(item.Szoveg) ? null : item.Szoveg,
FeladasDatuma = item.FeladasDatuma ?? item.RogzitesIdopontja,
HataridoDatuma = item.HataridoDatuma,
RogzitesIdopontja = item.RogzitesIdopontja,
OsztalyCsoport = new OsztalyCsoportSimplifiedResponse
{
Uid = new OsztalyCsoportUid(item.OsztalyCsoportId)
},
IsCsatolasEngedelyezes = SDAConvert.ToBoolean(item.HaziFeladatCsatolasEngedelyezesTipusId)
});
}
return response;
}
}
}