Пример #1
0
        public override Task <CommandResult <TResult> > Handle(TQuery query)
        {
            var perm = query as IRequirePermission;

            if (perm == null)
            {
                throw new Exception($"Command must implement {typeof(IRequirePermission)}");
            }

            if (access.CanDo(perm.TenantId, appSettings.ApplicationName, perm.Permission.ToString()))
            {
                return(queryHandler.Handle(query));
            }
            else
            {
                return(CommandResult <TResult> .Fail(CommandError.Forbidden($"Permission denied for {perm.Permission}")).AsTaskTyped());
            }
        }