using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using Luticate2.Auth.Business.Fields; namespace Luticate2.Auth.Dbo.Fields { public class LuFieldDbo { public IList Parts { get; set; } = new List(); public static LuFieldDbo Make(IEnumerable parts) { var partialFieldpath = new LuFieldDbo(); return partialFieldpath.Add(parts); } public static LuFieldDbo Make(string path) { var partialFieldpath = new LuFieldDbo(); return partialFieldpath.Add(path); } public static LuFieldDbo Make(LuFieldDbo path) { var partialFieldpath = new LuFieldDbo(); return partialFieldpath.Add(path); } public static LuFieldDbo Make(Expression> property) { var partialFieldpath = new LuFieldDbo(); return partialFieldpath.Add(property); } public LuFieldDbo Copy() { return new LuFieldDbo { Parts = Parts.ToList() }; } public override string ToString() { return string.Join("/", Parts); } } }