public object Get(int id) { SiscalContext sys = new SiscalContext(); if (!sys.FileExist(id)) throw new Exceptions.BadRequest.FIDNoExist(); User LoggedUser = sys.AuthUserInfo(); File file = sys.Files.Where(itm => itm.ID == id).FirstOrDefault(); if (file.Owner != LoggedUser.ID && (file.Permissions == Permissions.OnlyMe || (file.Permissions == Permissions.Specific && !file.Group.Contains(LoggedUser.ID)))) throw new Exceptions.Forbidden.NotAllowed(); return file; }
!file.Group.Contains(LoggedUser.ID)
The specified type member 'Group' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
public enum Permissions { OnlyMe, Specific, Public }; public enum FileType { Folder, File }; public class File { public int ID { get; set; } public string Name { get; set; } public int Directory { get; set; } public int Owner { get; set; } public Permissions Permissions { get; set; } public virtual List<int> Group { get { return string.IsNullOrEmpty(this.GroupJSON) ? new List<int>() : JsonConvert.DeserializeObject<List<int>>(this.GroupJSON); } set { GroupJSON = JsonConvert.SerializeObject(value); } } [JsonIgnore] public string GroupJSON { get; private set; } public FileType Type { get; set; } }
Group
public virtual List<int> Groupp
File
List<int> JsonGroup
string JsonGroup
Json.DeserializeObject
Contains
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)