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