74 lines
3.9 KiB
C#
74 lines
3.9 KiB
C#
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Net.Http.Headers;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Interfaces;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Enum;
|
|
using Kreta.Core.Exceptions;
|
|
using Kreta.Core.Logic;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Ellenorzo.Dao.VN.OraFile;
|
|
using Kreta.Ellenorzo.Domain.VN.Common;
|
|
using Kreta.Ellenorzo.Domain.VN.Csatolmany;
|
|
using Kreta.Ellenorzo.Domain.VN.UniqueIdentifier;
|
|
using Kreta.Enums;
|
|
using Kreta.Enums.ManualEnums;
|
|
|
|
namespace Kreta.Ellenorzo.BL.VN.Ora
|
|
{
|
|
internal static class CsatolmanySubqueries
|
|
{
|
|
internal static HttpResponseMessage GetCsatolmany(DefaultConnectionParameters dcp, IFileServiceHelper fileServiceHelper, CsatolmanyUid uid)
|
|
{
|
|
var response = new HttpResponseMessage(HttpStatusCode.OK);
|
|
|
|
var fileHelper = new DktFileHelper(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), fileServiceHelper);
|
|
var (jogosult, feltoltottFajl) = fileHelper.GetFile(dcp.DalHandler, dcp.TanuloId, uid.Id);
|
|
|
|
if (!jogosult)
|
|
{
|
|
throw new BlException(BlExceptionType.NincsJogosultsag);
|
|
}
|
|
|
|
var memoryStream = new MemoryStream(fileHelper.GetCsatolmanyData(feltoltottFajl).Data)
|
|
{
|
|
Position = 0
|
|
};
|
|
|
|
response.Content = new StreamContent(memoryStream);
|
|
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = feltoltottFajl.FileNev + "." + feltoltottFajl.Extension };
|
|
response.Content.Headers.Add("Content-Type", "application/octet-stream");
|
|
|
|
return response;
|
|
}
|
|
|
|
internal static Dictionary<OrarendElemUid, List<CsatolmanySimplifiedResponse>> ListCsatolmanyok(DefaultConnectionParameters dcp, CsatolmanyListRequest request)
|
|
{
|
|
var result = new Dictionary<OrarendElemUid, List<CsatolmanySimplifiedResponse>>(new OrarendElemUid());
|
|
if (!request.OrarendElemUids.Any())
|
|
{
|
|
return result;
|
|
}
|
|
var oraFiles = new OraFileHelper(new DalHandlerConnectionType(new MobileConnectionType(dcp.FelhasznaloId, dcp.IntezmenyId, dcp.IntezmenyAzonosito, dcp.TanevId), dcp.DalHandler))
|
|
.GetOraFilesByDateRange(request.DatumTol, request.DatumIg, (int)OraFileTipusEnum.openboard).ToDaoList<OraFileResponseDao>();
|
|
foreach (var orarendElemUid in request.OrarendElemUids.Distinct(new OrarendElemUid()))
|
|
{
|
|
result.Add(orarendElemUid, oraFiles.Where(x => orarendElemUid.Datum == x.OraDatum &&
|
|
((orarendElemUid.Tipus == CalendarOraTypeEnum.OrarendiOra && orarendElemUid.Id == x.OrarendiOraId) ||
|
|
(orarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElemUid.Id == x.TanitasiOraId) ||
|
|
(orarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElemUid.OrarendiOraId == x.OrarendiOraId) ||
|
|
(orarendElemUid.Tipus == CalendarOraTypeEnum.TanitasiOra && orarendElemUid.OrarendiOraGroupId == x.OrarendiOraId)))
|
|
.Select(x => new CsatolmanySimplifiedResponse
|
|
{
|
|
Uid = new CsatolmanyUid(x.FileId),
|
|
Nev = x.FileNev
|
|
}).ToList());
|
|
}
|
|
return result;
|
|
}
|
|
}
|
|
}
|