private void SetProjectPermissionData(User currentUser, ActionExecutingContext filterContext, Container container)
        {
            var currentProjectContextId = container.GetInstance <ICurrentProjectContextId>();
            var permissionByUserAndProjectQueryHandler = container.GetInstance <IQueryHandler <PermissionByUserAndProjectQuery, Permission> >();

            var currentProjectId = currentProjectContextId.Get();

            if (currentProjectId == null || currentProjectId.Value == Guid.Empty)
            {
                return;
            }

            var query = new PermissionByUserAndProjectQuery
            {
                UserId    = currentUser.Id,
                ProjectId = currentProjectId.Value
            };

            var permission = permissionByUserAndProjectQueryHandler.Handle(query);

            if (permission == null)
            {
                return;
            }

            filterContext.Controller.ViewBag.Profile = permission.Profile;

            var packagesQueryHandler = container.GetInstance <IQueryHandler <PackagesCurrentProjectQuery, IEnumerable <PackageViewModel> > >();
            var packages             = packagesQueryHandler.Handle(null);

            filterContext.Controller.ViewBag.AnyPackagesRegistered = packages.Count() > 0;
        }
Esempio n. 2
0
        private static Permission GetPermissionCurrentUserCurrentProject(IServiceProvider serviceProvider)
        {
            var permissionByUserAndProjectQueryHandler = serviceProvider.GetService <IQueryHandler <PermissionByUserAndProjectQuery, Permission> >();
            var currentProjectContextId = serviceProvider.GetService <ICurrentProjectContextId>();

            var currentProjectId = currentProjectContextId.Get();

            if (currentProjectId == Guid.Empty)
            {
                throw new PermissionException(Sentences.noProjectInContext);
            }

            var currentUser = GetCurrentUser(serviceProvider);

            var query = new PermissionByUserAndProjectQuery
            {
                ProjectId = currentProjectId.Value,
                UserId    = currentUser.Id
            };
            var permission = permissionByUserAndProjectQueryHandler.Handle(query);

            return(permission);
        }