private Resource ToModel(Persistance.Models.Resource resource)
        {
            var identifier = CRN.FromValue(resource.CanonicalName);
            var actions    = resource.Actions.Select(a => ResourceAction.FromValue(a.Action.CanonicalName)).ToArray();

            return(Resource.FromIdentifier(identifier).WithActions(actions));
        }
        public void Add(Resource resource)
        {
            var actionNames  = resource.ValidActions.Select(a => a.ToString());
            var foundActions = this.context.Actions.Where(a => actionNames.Contains(a.CanonicalName)).ToList();
            var toAdd        = new Persistance.Models.Resource()
            {
                CanonicalName = resource.Identifier.ToString()
            };

            var actions = foundActions.Select(a => new Persistance.Models.ResourceAction()
            {
                Resource = toAdd,
                Action   = a
            });

            this.context.Add(toAdd);
            this.context.AddRange(actions);

            this.context.SaveChanges();
        }