init
This commit is contained in:
commit
e124a47765
19374 changed files with 9806149 additions and 0 deletions
107
Kreta.BusinessLogic/Helpers/FileHelper.cs
Normal file
107
Kreta.BusinessLogic/Helpers/FileHelper.cs
Normal file
|
@ -0,0 +1,107 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
using Kreta.BusinessLogic.HelperClasses;
|
||||
using Kreta.BusinessLogic.Interfaces;
|
||||
using Kreta.Client.FileService.Request;
|
||||
using Kreta.Client.FileService.Response;
|
||||
using Kreta.Core.ConnectionType;
|
||||
using Kreta.Core.Exceptions;
|
||||
using Kreta.DataAccessManual;
|
||||
using Kreta.Resources;
|
||||
|
||||
namespace Kreta.BusinessLogic.Helpers
|
||||
{
|
||||
public class FileHelper : LogicBase
|
||||
{
|
||||
#region Fields
|
||||
|
||||
private readonly IFileServiceHelper _fileServiceHelper;
|
||||
|
||||
#endregion Fields
|
||||
|
||||
#region Constructors
|
||||
|
||||
public FileHelper(IConnectionType connectionType, IFileServiceHelper fileServiceHelper) : base(connectionType)
|
||||
{
|
||||
_fileServiceHelper = fileServiceHelper ?? throw new ArgumentNullException(nameof(fileServiceHelper));
|
||||
}
|
||||
|
||||
public FileHelper(IConnectionType connectionType) : base(connectionType) { }
|
||||
|
||||
#endregion Constructors
|
||||
|
||||
#region FileService Functions
|
||||
|
||||
public void DeleteFile(int id, bool withFileServiceDelete)
|
||||
{
|
||||
Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
if (withFileServiceDelete)
|
||||
{
|
||||
var file = h.FileDAL().Get(id);
|
||||
if (!_fileServiceHelper.Delete(IntezmenyAzonosito, new FileDeleteRequest(file.Utvonal, file.FileGuid.Value)))
|
||||
{
|
||||
throw new BlException(ErrorResource.FajlTorleseSikertelen);
|
||||
}
|
||||
}
|
||||
|
||||
h.FileDAL().Delete(id, FelhasznaloId);
|
||||
});
|
||||
}
|
||||
|
||||
public (string Name, byte[] Data) GetFileData(int id)
|
||||
{
|
||||
var file = Dal.CustomConnection.Run(ConnectionType, dalHandler => dalHandler.FileDAL().Get(id));
|
||||
var fileName = string.Concat(file.FileNev.TrimEnd('.'), '.', file.Extension.TrimStart('.'));
|
||||
var fileContent = _fileServiceHelper.GetFile(IntezmenyAzonosito, new GetUrlRequest(file.Utvonal, file.FileGuid.Value, fileName));
|
||||
|
||||
var data = Convert.FromBase64String(fileContent.Tartalom);
|
||||
return (fileName, data);
|
||||
}
|
||||
|
||||
public FileDownloadCO GetFileDownload(int id)
|
||||
{
|
||||
var (name, data) = GetFileData(id);
|
||||
return new FileDownloadCO() { Stream = new MemoryStream(data), FileName = name };
|
||||
}
|
||||
|
||||
public int? UploadFile(string fileName, byte[] content, string contentType, string path)
|
||||
{
|
||||
FileUploadResponse fileUploadResponse = _fileServiceHelper.Upload(new FileUploadRequest(fileName, content, contentType, path));
|
||||
|
||||
if (fileUploadResponse.IsSuccess)
|
||||
{
|
||||
return Dal.CustomConnection.Run(ConnectionType, h =>
|
||||
{
|
||||
var fileDal = h.FileDAL();
|
||||
|
||||
var file = fileDal.Get();
|
||||
file.FeltoltesDatum = DateTime.Now;
|
||||
file.FileGuid = fileUploadResponse.FajlAzonosito;
|
||||
file.FileSizeByte = fileUploadResponse.FajlMeretByteLength;
|
||||
|
||||
var lastIndex = fileName.LastIndexOf('.');
|
||||
var fileNev = fileName.Substring(0, lastIndex);
|
||||
var fileExt = fileName.Substring(lastIndex + 1);
|
||||
|
||||
file.FileNev = fileNev;
|
||||
file.Extension = fileExt;
|
||||
file.Utvonal = fileUploadResponse.Utvonal;
|
||||
file.TanevId = TanevId;
|
||||
file.IntezmenyId = IntezmenyId;
|
||||
file.IntezmenyGuid = h.IntezmenyDal().Get(IntezmenyId).Guid.Value;
|
||||
file.VeglegesitesDatum = DateTime.Now;
|
||||
file.FelhasznaloId = FelhasznaloId;
|
||||
|
||||
var fileId = fileDal.Insert(file);
|
||||
|
||||
return fileId;
|
||||
});
|
||||
}
|
||||
|
||||
throw new BlException(ErrorResource.FajlFeltolteseSikertelen);
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue