Exemplo n.º 1
0
        public static void Start()
        {
            SiteAdmin.Register("~/Rabbit/", "Rabbit Framework Admin",
                               "Administrative Tools to manage modules, to generate code and to run unit tests.");

            var appPart = new ApplicationPart(typeof(PreApplicationStartCode).Assembly,
                                              SiteAdmin.GetVirtualPath("~/Rabbit/"));

            ApplicationPart.Register(appPart);

            SiteEngine.Start();
        }
Exemplo n.º 2
0
        private static void InitModules()
        {
            hooks.Clear();

            var assemblies = Directory.EnumerateFiles(AppDomain.CurrentDomain.DynamicDirectory, "*.dll");

            foreach (var file in assemblies)
            {
                try
                {
                    var assembly = Assembly.LoadFrom(file);
                    Trace.WriteLine(string.Format("SiteEngine: Start Loading Assembly {0}", file));

                    var types = assembly.GetTypes();

                    foreach (Type moduleType in types)
                    {
                        //Use Hook attribute
                        var methods = moduleType.GetMethods(BindingFlags.Public | BindingFlags.Static)
                                      .Where(m => m.GetCustomAttributes(typeof(HookAttribute), true).Count() > 0).ToList();

                        foreach (var method in methods)
                        {
                            foreach (var attr in method.GetCustomAttributes(typeof(HookAttribute), true))
                            {
                                var hookName = ((HookAttribute)attr).Name ?? method.Name;
                                try
                                {
                                    var func = Delegate.CreateDelegate(typeof(Func <object, object>), method) as Func <object, object>;
                                    SiteEngine.AddHook(hookName, func);
                                }
                                catch (Exception ex)
                                {
                                    Trace.WriteLine(string.Format("SiteEngine: Failed Binding Hook: {0}: Error: {1}\r\n", hookName, ex.Message));
                                }
                            }
                        }
                        Trace.WriteLine(string.Format("SiteEngine: Done Loading Assembly {0}\r\n", file));
                    }
                }
                catch (Exception ex)
                {
                    Trace.WriteLine(string.Format("SiteEngine: Failed Loading Assembly: {0}: Error: {1}\r\n", file, ex.Message));
                }
            }
        }
Exemplo n.º 3
0
        public override void Execute()
        {
            WriteLiteral("\r\n");



            #line 3 "E:\Users\Public\My Projects\Rabbit\Src\Rabbit\Default.cshtml"


            ((IList <Tuple <string, string> >)PageData["BreadCrumbs"])
            .Add(Tuple.Create <string, string>("Rabbit Admin", "/_Admin/Rabbit"));

            var adminmenu = SiteEngine.RunHook("get_admin_menu", new List <string>()) as List <string>;



            #line default
            #line hidden
            WriteLiteral(@"
<style type=""text/css"">
    h2{margin-top:30px; margin-bottom:20px;}
    ul.adminmenu, ul.adminmenu li{margin-left:10px;margin-bottom:10px;}
</style>
<h1>Rabbit Framework Administration</h1>
<p>Rabbit Framework supports modules, plug-ins and templates. For more information, 
please visit <a href=""http://rabbit.codeplex.com"">Rabbit Framework</a>.</p>

<div style=""float:left;padding-left:10px;"">
<h2>Admin Links</h2>
    <ul class=""adminmenu"">
    <li><a href=""/_Admin/Rabbit/Test"">Unit Test</a></li>
    <li><a href=""/_Admin/Rabbit/CodeGen"">Generate Code</a></li>
");



            #line 24 "E:\Users\Public\My Projects\Rabbit\Src\Rabbit\Default.cshtml"
            if (adminmenu.Count() > 0)
            {
                foreach (var menu in adminmenu)
                {
                    if (menu.Contains('|'))
                    {
                        var ss = menu.Split('|');


            #line default
            #line hidden
                        WriteLiteral("            <li class=\"admin-menu\"><a href=\"");



            #line 31 "E:\Users\Public\My Projects\Rabbit\Src\Rabbit\Default.cshtml"
                        Write(Href(ss[1]));


            #line default
            #line hidden
                        WriteLiteral("\">");



            #line 31 "E:\Users\Public\My Projects\Rabbit\Src\Rabbit\Default.cshtml"
                        Write(ss[0]);


            #line default
            #line hidden
                        WriteLiteral("</a></li>\r\n");



            #line 32 "E:\Users\Public\My Projects\Rabbit\Src\Rabbit\Default.cshtml"
                    }
                }
            }


            #line default
            #line hidden
            WriteLiteral("    </ul> \r\n</div> \r\n\r\n");
        }