Ejemplo n.º 1
0
        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));
        }