75 lines
4 KiB
C#
75 lines
4 KiB
C#
using System;
|
|
using Kreta.BusinessLogic.Classes.MobileApi.Common.Co;
|
|
using Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.Co.Post.OpenBoard;
|
|
using Kreta.BusinessLogic.Helpers;
|
|
using Kreta.BusinessLogic.Interfaces;
|
|
using Kreta.Core.ConnectionType;
|
|
using Kreta.Core.Validation.Exceptions;
|
|
using Kreta.DataAccessManual.Interfaces;
|
|
using Kreta.DataAccessManual.Util;
|
|
using Kreta.Enums;
|
|
|
|
namespace Kreta.BusinessLogic.Classes.MobileApi.Naplo.V2.SubqueriesRepo.Post
|
|
{
|
|
public static class FeltoltottFajlPostSubqueries
|
|
{
|
|
public static FeltoltottFajlResponseCo CreateFajlFeltoltes(IDalHandler h, IFileServiceHelper fileServiceHelper, DefaultConnectionParameters defaultConnectionParameters, FeltoltottFajlRequestCo request)
|
|
{
|
|
var response = new FeltoltottFajlResponseCo();
|
|
if (request.TanitasiOraId.HasValue && request.OrarendiOraId.HasValue)
|
|
{
|
|
response.Exception = new ValidationException("Hibás kérelem!");
|
|
return response;
|
|
}
|
|
|
|
try
|
|
{
|
|
IConnectionType connection = new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h);
|
|
var openBoardHelper = new OpenBoardHelper(new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h), fileServiceHelper);
|
|
var dktFileHelper = new DktFileHelper(new DalHandlerConnectionType(new MobileConnectionType(defaultConnectionParameters.FelhasznaloId, defaultConnectionParameters.IntezmenyId, defaultConnectionParameters.IntezmenyAzonosito, defaultConnectionParameters.TanevId), h), fileServiceHelper);
|
|
|
|
int feltoltottFajlokSzama = openBoardHelper.GetFeltoltottFajlokSzama(DateTime.Now, request.OrarendiOraId, request.TanitasiOraId);
|
|
int feltolthetoFajlokSzama = Constant.FeltolthetoFajlokMaxSzama - feltoltottFajlokSzama;
|
|
|
|
if (feltolthetoFajlokSzama < 1)
|
|
{
|
|
throw new ValidationException("Nem tölthető fel a fájl, mert elérte a maximális feltöltési limitet ehhez az órához!");
|
|
}
|
|
|
|
DateTime ido = DateTime.Now;
|
|
int sorszam = feltoltottFajlokSzama + 1;
|
|
string fileName = $"Kep_{sorszam}_{ido.ToString(Constant.DateTimeFormat)}";
|
|
string contentType = "image/jpeg";
|
|
|
|
var intezmenyGuid = new IntezmenyHelper(connection).GetIntezmenyiAdatok().IntezmenyGuid;
|
|
|
|
var path = $"OpenBoard/{intezmenyGuid}/{defaultConnectionParameters.TanevId}";
|
|
if (request.TanitasiOraId.HasValue)
|
|
{
|
|
path += $"/TanitasiOra/{request.TanitasiOraId.Value}";
|
|
}
|
|
else if (request.OrarendiOraId.HasValue)
|
|
{
|
|
path += $"/OrarendiOra/{request.OrarendiOraId.Value}";
|
|
}
|
|
else
|
|
{
|
|
throw new ValidationException("Nem tartozhat Órarendi órához és Tanítási órához is a kép! Csak az egyik legyen megadva!");
|
|
}
|
|
|
|
var fileId = dktFileHelper.UploadFile(string.Concat(fileName, ".jpeg"), Convert.FromBase64String(request.ContentAsBase64EncodedString.Replace("data:image/jpeg;base64,", "")), contentType, path);
|
|
|
|
var oraFileHelper = new OraFileHelper(connection);
|
|
oraFileHelper.InsertFileToOraFile(fileId, request.OrarendiOraId, request.TanitasiOraId, ido.Date, (int)OraFileTipusEnum.openboard, true);
|
|
|
|
response.FeltolthetoFajlokSzama = feltolthetoFajlokSzama - 1;
|
|
}
|
|
catch (ValidationException e)
|
|
{
|
|
response.Exception = e;
|
|
}
|
|
|
|
return response;
|
|
}
|
|
}
|
|
}
|