// POST /api/[controller]
        public virtual async Task <ActionResult <TViewModel> > Post(TKey parentId, [FromBody] TCreateModel body)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var parent = await Database.FindAsync <TParent>(parentId);

            if (parent == null)
            {
                return(NotFound());
            }

            if (!await Permissions.AllowCreate(await CurrentUser, body))
            {
                return(Forbid());
            }

            var dataModel = await CreateDataModelAsync(parent, body);

            dataModel.Deleted = false;

            Database.Set <TData>().Add(dataModel);
            await Database.SaveChangesAsync();

            return(CreatedAtAction("Get", new { parentId, id = dataModel.Id }, await CreateViewModelAsync(dataModel)));
        }