using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json; using C4IT.LIAM; namespace LiamTestTeams { public class TreeNodeBase { public const int iconIndexUnknown = 8; public TreeNodeBase Parent = null; public virtual bool AutoResolved() { return false; } virtual public string GetInfoText() { return ""; } virtual public string GetUID() { return null; } virtual public async Task> ResolveAsync(bool ResolveAlways = false) { await Task.Delay(0); return null; } virtual public bool IsResolved() { return true; } public virtual int ImageIndex() { return iconIndexUnknown; } public string GetJson() { var set = new JsonSerializerSettings() { Formatting = Formatting.Indented }; var RetVal = JsonConvert.SerializeObject(GetJsonObject(), set); return RetVal; } public virtual dynamic GetJsonObject() { return null; } public virtual bool SupportPermissionAdd() { return false; } public virtual bool SupportPermissionRemoveDirect() { return false; } public virtual bool SupportPermissionRemoveByValue() { return false; } public virtual async Task AddPermission(eLiamAccessRoles Role, string Identity) { await Task.Delay(0); throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'"); } public virtual async Task RemovePermissionByValue(eLiamAccessRoles Role, string Identity) { await Task.Delay(0); throw new InvalidOperationException($"Add permission not supported for '{this.GetType()}'"); } public virtual async Task RemovePermissionDirect() { await Task.Delay(0); throw new InvalidOperationException($"Remove permission not supported for '{this.GetType()}'"); } public virtual List ValidPermissionRoles() { return null; } public virtual string getLastError() { return null; } public virtual async Task LoadFromUID() { await Task.Delay(0); return null; } } public abstract class TreeNodeRoot : TreeNodeBase { public cLiamProviderData Provider; public TreeNodeRoot(cLiamProviderData Provider) { this.Provider = Provider; } public abstract Task LogonAsync(); } }