public static void Start() { if (Navigator.Manager.NotDefined(MethodInfo.GetCurrentMethod())) { TypeClient.Start(); UserAssetsClient.Start(); UserAssetsClient.RegisterExportAssertLink <DashboardEntity>(); Navigator.AddSettings(new List <EntitySettings>() { new EntitySettings <DashboardEntity>() { View = e => new DashboardEdit(), Icon = ExtensionsImageLoader.GetImageSortName("dashboard.png") }, new EntitySettings <ValueUserQueryListPartEntity>() { View = e => new ValueUserQueryListPartEntityEdit() }, new EntitySettings <LinkListPartEntity>() { View = e => new LinkListPartEdit() }, new EntitySettings <UserQueryPartEntity>() { View = e => new UserQueryPartEdit() }, new EntitySettings <UserChartPartEntity>() { View = e => new UserChartPartEdit() } }); PartViews.Add(typeof(UserQueryPartEntity), new PartView { ViewControl = () => new UserQueryPartView(), IsTitleEnabled = () => Navigator.IsNavigable(typeof(UserQueryEntity), true), OnTitleClick = part => { Navigator.Navigate(((UserQueryPartEntity)part).UserQuery); }, FullScreen = (elem, part) => { UserQueryClient.Explore(((UserQueryPartEntity)part).UserQuery, UserAssetsClient.GetCurrentEntity(elem)); } }); PartViews.Add(typeof(UserChartPartEntity), new PartView { ViewControl = () => new UserChartPartView(), IsTitleEnabled = () => Navigator.IsNavigable(typeof(UserChartEntity), true), OnTitleClick = part => { Navigator.Navigate(((UserChartPartEntity)part).UserChart); }, FullScreen = (elem, part) => { ChartClient.View(((UserChartPartEntity)part).UserChart, UserAssetsClient.GetCurrentEntity(elem)); } }); PartViews.Add(typeof(ValueUserQueryListPartEntity), new PartView { ViewControl = () => new CountSearchControlPartView() }); PartViews.Add(typeof(LinkListPartEntity), new PartView { ViewControl = () => new LinkListPartView() }); LinksClient.RegisterEntityLinks <DashboardEntity>((cp, ctrl) => new[] { new QuickLinkAction(DashboardMessage.Preview, () => Navigate(cp, null)) { IsVisible = DashboardPermission.ViewDashboard.IsAuthorized() } }); LinksClient.RegisterEntityLinks <Entity>((entity, ctrl) => { if (!DashboardPermission.ViewDashboard.IsAuthorized()) { return(null); } return(Server.Return((IDashboardServer us) => us.GetDashboardsEntity(entity.EntityType)) .Select(cp => new DashboardQuickLink(cp, entity)).ToArray()); }); Navigator.Manager.OnGetEmbeddedWigets += (e, ctx) => { if (!DashboardPermission.ViewDashboard.IsAuthorized() || !(e is Entity)) { return(null); } var dashboard = Server.Return((IDashboardServer s) => s.GetEmbeddedDashboard(e.GetType())); if (dashboard == null) { return(null); } var control = new DashboardView { DataContext = dashboard }.Set(UserAssetsClient.CurrentEntityProperty, e); return(new EmbeddedWidget { Control = control, Position = dashboard.EmbeddedInEntity.Value == DashboardEmbedededInEntity.Top ? EmbeddedWidgetPostion.Top: dashboard.EmbeddedInEntity.Value == DashboardEmbedededInEntity.Bottom ? EmbeddedWidgetPostion.Bottom: throw new InvalidOperationException("Unexpected") }); }; }
public static void Start() { if (started) { return; } started = true; Navigator.Start(new NavigationManager(multithreaded: true)); Finder.Start(new FinderManager()); Constructor.Start(new ConstructorManager()); OperationClient.Start(new OperationManager()); AuthClient.Start( types: true, property: true, queries: true, permissions: true, operations: true, defaultPasswordExpiresLogic: false); Navigator.EntitySettings <UserEntity>().OverrideView += (usr, ctrl) => { ctrl.Child <EntityLine>("Role").After(new ValueLine().Set(Common.RouteProperty, "[UserEmployeeMixin].AllowLogin")); ctrl.Child <EntityLine>("Role").After(new EntityLine().Set(Common.RouteProperty, "[UserEmployeeMixin].Employee")); return(ctrl); }; LinksClient.Start(widget: true, contextualMenu: true); ProcessClient.Start(package: true, packageOperation: true); SchedulerClient.Start(); FilePathClient.Start(); ExcelClient.Start(toExcel: true, excelReport: false); UserQueryClient.Start(); ChartClient.Start(); DashboardClient.Start(); HelpClient.Start(); ExceptionClient.Start(); NoteClient.Start(typeof(UserEntity), /*Note*/ typeof(OrderEntity)); AlertClient.Start(typeof(UserEntity), /*Alert*/ typeof(OrderEntity)); SMSClient.Start(); ProfilerClient.Start(); OmniboxClient.Start(); OmniboxClient.Register(new SpecialOmniboxProvider()); OmniboxClient.Register(new EntityOmniboxProvider()); OmniboxClient.Register(new DynamicQueryOmniboxProvider()); OmniboxClient.Register(new UserQueryOmniboxProvider()); OmniboxClient.Register(new ChartOmniboxProvider()); OmniboxClient.Register(new UserChartOmniboxProvider()); OmniboxClient.Register(new DashboardOmniboxProvider()); SouthwindClient.Start(); DisconnectedClient.Start(); Navigator.Initialize(); }