oqtane.framework/Oqtane.Server/Repository/FileRepository.cs
2020-02-04 15:14:27 -05:00

63 lines
1.8 KiB
C#

using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using Oqtane.Models;
namespace Oqtane.Repository
{
public class FileRepository : IFileRepository
{
private TenantDBContext db;
private readonly IPermissionRepository Permissions;
public FileRepository(TenantDBContext context, IPermissionRepository Permissions)
{
db = context;
this.Permissions = Permissions;
}
public IEnumerable<File> GetFiles(int FolderId)
{
IEnumerable<Permission> permissions = Permissions.GetPermissions("Folder", FolderId);
IEnumerable<File> files = db.File.Where(item => item.FolderId == FolderId);
foreach (File file in files)
{
file.Folder.Permissions = Permissions.EncodePermissions(FolderId, permissions);
}
return files;
}
public File AddFile(File File)
{
db.File.Add(File);
db.SaveChanges();
return File;
}
public File UpdateFile(File File)
{
db.Entry(File).State = EntityState.Modified;
db.SaveChanges();
return File;
}
public File GetFile(int FileId)
{
File file = db.File.Find(FileId);
if (file != null)
{
IEnumerable<Permission> permissions = Permissions.GetPermissions("Folder", file.FolderId);
file.Folder.Permissions = Permissions.EncodePermissions(file.FolderId, permissions);
}
return file;
}
public void DeleteFile(int FileId)
{
File File = db.File.Find(FileId);
db.File.Remove(File);
db.SaveChanges();
}
}
}