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; }
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); }