public async Task <IViewComponentResult> InvokeAsync()
        {
            var project = await ProjectRepository.GetProjectAsync(CurrentProjectAccessor.ProjectId);

            var acl = project.ProjectAcls.FirstOrDefault(a => a.UserId == CurrentUserAccessor.UserIdOrDefault);

            if (acl != null)
            {
                var menuModel = new MasterMenuViewModel()
                {
                    AccessToProject      = acl,
                    CheckInModuleEnabled = project.Details.EnableCheckInModule,
                };
                SetCommonMenuParameters(menuModel, project);
                return(View("MasterMenu", menuModel));
            }
            else
            {
                var menuModel = new PlayerMenuViewModel()
                {
                    Claims        = project.Claims.OfUserActive(CurrentUserAccessor.UserIdOrDefault).Select(c => new ClaimShortListItemViewModel(c)).ToArray(),
                    PlotPublished = project.Details.PublishPlot,
                };
                SetCommonMenuParameters(menuModel, project);
                return(View("PlayerMenu", menuModel));
            }
        }
Esempio n. 2
0
        private void RegisterProjectMenu(Project project)
        {
            ViewBag.ProjectId = project.ProjectId;

            var acl = project.ProjectAcls.FirstOrDefault(a => a.UserId == CurrentUserIdOrDefault);

            MenuViewModelBase menuModel;

            if (acl != null)
            {
                menuModel = new MasterMenuViewModel()
                {
                    AccessToProject      = acl,
                    CheckInModuleEnabled = project.Details.EnableCheckInModule,
                    ShowSchedule         = project.Details.ScheduleSettings != null,
                };
            }
            else
            {
                var claims = project.Claims.OfUserActive(CurrentUserIdOrDefault).Select(c => new ClaimShortListItemViewModel(c)).ToArray();
                menuModel = new PlayerMenuViewModel()
                {
                    Claims        = claims,
                    PlotPublished = project.Details.PublishPlot,
                };

                if (claims.Any(c => c.IsApproved))
                {
                    menuModel.ShowSchedule = project.Details.ScheduleSettings != null && project.Details.ScheduleSettings.RoomField.CanPlayerView;
                }
                else
                {
                    menuModel.ShowSchedule = project.Details.ScheduleSettings != null && project.Details.ScheduleSettings.RoomField.IsPublic;
                }
            }
            menuModel.ProjectId   = project.ProjectId;
            menuModel.ProjectName = project.ProjectName;
            //TODO[GroupsLoad]. If we not loaded groups already, that's slow
            menuModel.BigGroups = project.RootGroup.ChildGroups.Where(
                cg => !cg.IsSpecial && cg.IsActive && cg.IsVisible(CurrentUserIdOrDefault))
                                  .Select(cg => new CharacterGroupLinkViewModel(cg)).ToList();
            menuModel.IsAcceptingClaims   = project.IsAcceptingClaims;
            menuModel.IsActive            = project.Active;
            menuModel.RootGroupId         = project.RootGroup.CharacterGroupId;
            menuModel.EnableAccommodation = project.Details.EnableAccommodation;
            menuModel.IsAdmin             = IsCurrentUserAdmin();

            if (acl != null)
            {
                ViewBag.MasterMenu = menuModel;
            }
            else
            {
                ViewBag.PlayerMenu = menuModel;
            }
        }
Esempio n. 3
0
        public ViewLocator()
        {
            Login = new LoginViewModel();
            Login.SetCoupledView(new LoginPage());

            Lands = new LandsViewModel();
            Lands.SetCoupledView(new LandsPage());

            Land = new LandViewModel();
            Land.SetCoupledView(new LandPage());

            LandTabbed = new LandTabbedViewModel();
            LandTabbed.SetCoupledView(new LandTabbedPage());

            Currency = new CurrencyViewModel();
            Currency.SetCoupledView(new CurrencyPage());

            Master = new MasterViewModel();
            Master.SetCoupledView(new MasterPage());

            MasterMenu = new MasterMenuViewModel();
            MasterMenu.SetCoupledView(new MasterMenuPage());
        }