private static List<ResourceMethod> GetExceptions(Resource builder) { var exceptions = new List<ResourceMethod>(); builder.Exceptions.ForEach(exception => exceptions.Add(exception)); return exceptions; }
private static List<ResourceData> GetNested(Resource builder) { var nested = new List<ResourceData>(); builder.Nested.ForEach(resource => nested.Add(resource)); return nested; }
private static List<string> GetActions(Resource builder, ResourceMemberType type) { var actions = new List<string>(); builder.Actions.Where(a => a.Type == type).ToList() .ForEach(action => actions.Add(action.Action)); return actions; }
public static ResourceData Build(Resource builder, bool shallow = false) { var data = new ResourceData() { Name = builder.Name, Scope = builder.Scope, Collection = GetActions(builder, ResourceMemberType.Collection), Member = GetActions(builder, ResourceMemberType.Member), Except = GetExceptions(builder) }; if (builder.Parent != null) { data.Parent = Build(builder.Parent, true); } if (!shallow) { data.Nested = GetNested(builder); } return data; }