public JobPage(string domain, string assembly, string name) { FetchTitle = () => "任务详情"; FetchHeader = () => TheJob == null ? name : TheJob.Name; Sidebar = () => SidebarMenus.JobsMenu(domain, assembly, name); var set = StorageService.Provider.GetDomainDefines(); TheDomain = set.SingleOrDefault(s => s.Name == domain); TheAssembly = TheDomain == null ? null : TheDomain.JobSets.SingleOrDefault(s => s.ShortName == assembly); TheJob = TheAssembly == null ? null : TheAssembly.Jobs.SingleOrDefault(s => s.Name == name); }
static List <JobDefine> ReadPrefabricationAssembly(Assembly assembly) { var list = new List <JobDefine>(); var types = assembly.GetInterfaceTypes <IPrefabrication>(); foreach (var type in types) { var attr = type.ReadReflectionOnlyTypeAttribute <NameplateAttribute>(); var constructors = GetConstructors(type); var define = new JobDefine(type.FullName, type.Name, constructors, attr); list.Add(define); } return(list); }
/// <summary> /// JobPage CreateRoute /// </summary> public static (string Name, string Link) CreateRoute(this UrlHelper Url, DomainDefine domain, AssemblyDefine assembly, JobDefine job) { var name = job.Title; var link = JobPageRoute.Replace("(?<domain>.+)", domain.Name).Replace("(?<assembly>.+)", assembly.ShortName).Replace("(?<name>.+)", name).EscapeRoute(); return(name, Url.To(link)); }