private static ILookup <string, NavigationItemAttribute> GetNavigationItemAttributes( Func <NavigationItemAttribute, bool> filter) { return(LocalCache.Get("NavigationHelper:NavigationItems", TimeSpan.Zero, () => { var list = new List <NavigationItemAttribute>(); foreach (var assembly in ExtensibilityHelper.SelfAssemblies) { foreach (NavigationItemAttribute attr in assembly.GetCustomAttributes(typeof(NavigationItemAttribute), false)) { if (filter == null || filter(attr)) { list.Add(attr); } } } foreach (var navItemType in ExtensibilityHelper.GetTypesWithInterface(typeof(INavigationItemSource))) { var navItem = (INavigationItemSource)navItemType.GetInstance(); foreach (var item in navItem.GetItems()) { if (filter == null || filter(item)) { list.Add(item); } } } return list.OrderBy(x => (x.Category.TrimToNull() ?? "")) .ThenBy(x => x.Order) .ToLookup(x => (x.Category.TrimToNull() ?? "")); })); }
private static ILookup <string, NavigationItemAttribute> GetNavigationItemAttributes( Func <NavigationItemAttribute, bool> filter) { return(LocalCache.Get("NavigationHelper:NavigationItems", TimeSpan.Zero, () => { var list = new List <NavigationItemAttribute>(); foreach (var assembly in ExtensibilityHelper.SelfAssemblies) { foreach (NavigationItemAttribute attr in assembly.GetCustomAttributes <NavigationItemAttribute>()) { if (filter == null || filter(attr)) { list.Add(attr); } } } foreach (var navItemType in ExtensibilityHelper.GetTypesWithInterface(typeof(INavigationItemSource))) { var navItem = (INavigationItemSource)Activator.CreateInstance(navItemType); foreach (var item in navItem.GetItems()) { if (filter == null || filter(item)) { list.Add(item); } } } return ByCategory(list); })); }
static PropertyEditorRepository() { const string SettingsSuffix = "Settings"; const string EditorSuffix = "Editor"; foreach (var editorType in ExtensibilityHelper.GetTypesWithInterface(typeof(IPropertyEditor))) { var name = editorType.Name; if (name.EndsWith(SettingsSuffix, StringComparison.OrdinalIgnoreCase)) { name = name.Substring(0, name.Length - SettingsSuffix.Length); } if (name.EndsWith(EditorSuffix, StringComparison.OrdinalIgnoreCase)) { name = name.Substring(0, name.Length - EditorSuffix.Length); } if (_editorTypeByKey.ContainsKey(name)) { continue; // ignore } _editorTypeByKey[name] = editorType; } }
private static ILookup <string, NavigationItemAttribute> GetNavigationItemAttributes( Func <NavigationItemAttribute, bool> filter) { var list = new List <NavigationItemAttribute>(); foreach (var assembly in ExtensibilityHelper.SelfAssemblies) { foreach (NavigationItemAttribute attr in assembly.GetCustomAttributes <NavigationItemAttribute>()) { if (filter == null || filter(attr)) { list.Add(attr); } } } foreach (var navItemType in ExtensibilityHelper.GetTypesWithInterface(typeof(INavigationItemSource))) { var navItem = (INavigationItemSource)Activator.CreateInstance(navItemType); foreach (var item in navItem.GetItems()) { if (filter == null || filter(item)) { list.Add(item); } } } var user = (UserDefinition)Authorization.UserDefinition; var connection = SqlConnections.NewFor <VisitTypesRow>(); var visitTypesFlds = VisitTypesRow.Fields; var visitTypes = connection.List <VisitTypesRow>(visitTypesFlds.TenantId == user.TenantId && visitTypesFlds.IsActive == 1 && visitTypesFlds.ShowInMenu == 1); list.Add(new NavigationMenuAttribute(506, LocalText.Get("Db.PatientManagement.VisitTypes.EntityPlural"), "fa-stethoscope")); list.Add(new NavigationLinkAttribute(506, path: LocalText.Get("Db.PatientManagement.VisitTypes.EntityPlural") + "/" + LocalText.Get("LeftNavigation.AddNewVisitType"), url: "#", icon: "fa-plus-square open-new-visit-dialog", permission: "PatientManagement:VisitTypes:Modify")); foreach (var visitType in visitTypes) { list.Add(new NavigationLinkAttribute(506, path: LocalText.Get("Db.PatientManagement.VisitTypes.EntityPlural") + "/" + visitType.Name.Replace("/", "//"), url: "/PatientManagement/Visits?visittype=" + visitType.VisitTypeId, icon: "fa-circle-o fc-event-droppable " + visitType.BackgroundColor, permission: "PatientManagement:VisitTypes:Read" )); } list.Add(new NavigationLinkAttribute(506, path: LocalText.Get("Db.PatientManagement.VisitTypes.EntityPlural") + "/" + LocalText.Get("LeftNavigation.VisitTypesPage"), url: "/PatientManagement/VisitTypes", icon: "fa-bars", permission: "PatientManagement:VisitTypes:Page" )); return(NavigationHelper.ByCategory(list)); }
public virtual IEnumerable <Type> GetTypes() { if (types != null) { return(types); } var list = new List <Type>(); foreach (var type in ExtensibilityHelper.GetTypesWithInterface(typeof(IImplicitBehavior))) { if (!type.GetIsAbstract()) { list.Add(type); } } types = list; return(types); }