Beispiel #1
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BindConfig.RegisterBundle(BundleTable.Bundles);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            //autofac注入
            AutofacHelper autoFac = new AutofacHelper();

            autoFac.Register();
        }
Beispiel #2
0
        public ServicesModule()
        {
            this.RequiresAuthentication();

            Get["/services"] = x => {
                dynamic vmod = new ExpandoObject();
                vmod.CurrentContext = Request.Path;
                vmod.CCTable        = CCTableRepository.GetAllByContext(Request.Path);
                vmod.Count          = CCTableRepository.GetAllByContext(Request.Path).ToArray().Length;
                return(View["_page-services", vmod]);
            };

            #region SAMBA
            Post["/services/activate/samba"] = x => {
                SambaConfig.SetReady();
                SambaConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/refresh/samba"] = x => {
                SambaConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/reloadconfig/samba"] = x => {
                SambaConfig.ReloadConfig();
                return(Response.AsJson(true));
            };

            Post["/services/update/samba"] = x => {
                var parameters = this.Bind <List <ServiceSamba> >();
                SambaConfig.WriteFile.SaveGlobalConfig(parameters);
                Thread.Sleep(1000);
                SambaConfig.WriteFile.DumpGlobalConfig();
                Thread.Sleep(1000);
                SambaConfig.WriteFile.RewriteSmbconf();
                return(Response.AsRedirect("/"));
            };

            Post["/services/update/sambashares"] = x => {
                var    parameters = this.Bind <List <ServiceSamba> >();
                string file       = Request.Form.ShareFile;
                string name       = Request.Form.ShareName;
                string query      = Request.Form.ShareQueryName;
                SambaConfig.WriteFile.SaveShareConfig(file, name, query, parameters);
                Thread.Sleep(1000);
                SambaConfig.WriteFile.DumpShare(name);
                Thread.Sleep(1000);
                SambaConfig.WriteFile.RewriteSmbconf();
                return(Response.AsRedirect("/"));
            };

            Post["/services/samba/addparam"] = x => {
                string key   = Request.Form.NewParameterKey;
                string value = Request.Form.NewParameterValue;
                SambaConfig.WriteFile.AddParameterToGlobal(key, value);
                Thread.Sleep(1000);
                SambaConfig.WriteFile.RewriteSmbconf();
                return(Response.AsRedirect("/"));
            };

            Post["/services/samba/addshare"] = x => {
                string name      = Request.Form.NewShareName;
                string directory = Request.Form.NewShareDirectory;
                SambaConfig.WriteFile.AddShare(name, directory);
                Thread.Sleep(1000);
                SambaConfig.WriteFile.RewriteSmbconf();
                return(Response.AsRedirect("/"));
            };
            #endregion SAMBA

            #region BIND
            Post["/services/activate/bind"] = x => {
                BindConfig.SetReady();
                BindConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/refresh/bind"] = x => {
                BindConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/reloadconfig/bind"] = x => {
                BindConfig.ReloadConfig();
                return(Response.AsJson(true));
            };

            Post["/services/update/bind/{section}"] = x => {
                var section    = (string)x.section;
                var parameters = this.Bind <List <ServiceBind> >();
                if (section == "acl")
                {
                    BindConfig.WriteFile.SaveAcls(parameters);
                }
                else
                {
                    BindConfig.WriteFile.SaveGlobalConfig(section, parameters);
                }
                Thread.Sleep(1000);
                BindConfig.WriteFile.DumpGlobalConfig();
                return(Response.AsRedirect("/"));
            };

            Post["/services/update/bind/zone/{zone}"] = x => {
                var zoneName   = (string)x.zone;
                var parameters = this.Bind <List <ServiceBind> >();
                BindConfig.WriteFile.SaveZoneConfig(zoneName, parameters);
                Thread.Sleep(1000);
                BindConfig.WriteFile.DumpGlobalConfig();
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addacl"] = x => {
                string k = Request.Form.NewAclKey;
                string v = Request.Form.NewAclValue;
                BindConfig.MapFile.AddAcl(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addkey"] = x => {
                string name = Request.Form.NewKeyName;
                BindConfig.MapFile.AddKey(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addmasters"] = x => {
                string name = Request.Form.NewMastersName;
                BindConfig.MapFile.AddMasters(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addserver"] = x => {
                string name = Request.Form.NewServerName;
                BindConfig.MapFile.AddServer(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addview"] = x => {
                string name = Request.Form.NewViewName;
                BindConfig.MapFile.AddView(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/bind/addzone"] = x => {
                string name = Request.Form.NewZoneName;
                BindConfig.MapFile.AddZone(name);
                return(Response.AsRedirect("/"));
            };
            #endregion BIND

            #region DHCP
            Post["/services/activate/dhcp"] = x => {
                DhcpConfig.SetReady();
                DhcpConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/refresh/dhcp"] = x => {
                DhcpConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/reloadconfig/dhcp"] = x => {
                DhcpConfig.ReloadConfig();
                return(Response.AsJson(true));
            };

            Post["/services/update/dhcp/{section}"] = x => {
                var parameters = this.Bind <List <ServiceDhcp> >();
                var section    = (string)x.section;
                if (section == "global")
                {
                    DhcpConfig.WriteFile.SaveGlobal(parameters);
                }
                if (section == "prefix6")
                {
                    DhcpConfig.WriteFile.SavePrefix6(parameters);
                }
                if (section == "range6")
                {
                    DhcpConfig.WriteFile.SaveRange6(parameters);
                }
                if (section == "range")
                {
                    DhcpConfig.WriteFile.SaveRange(parameters);
                }
                else
                {
                    DhcpConfig.WriteFile.SaveConfigFor(section, parameters);
                }
                Thread.Sleep(1000);
                DhcpConfig.WriteFile.DumpGlobalConfig();
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addglobal"] = x => {
                string k = Request.Form.NewKey;
                string v = Request.Form.NewValue;
                DhcpConfig.MapFile.AddGlobal(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addrange"] = x => {
                string k = Request.Form.NewKey;
                string v = Request.Form.NewValue;
                DhcpConfig.MapFile.AddGlobal(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addprefix6"] = x => {
                string k = Request.Form.NewKey;
                string v = Request.Form.NewValue;
                DhcpConfig.MapFile.AddPrefix6(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addrange6"] = x => {
                string k = Request.Form.NewKey;
                string v = Request.Form.NewValue;
                DhcpConfig.MapFile.AddRange6(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addrange"] = x => {
                string k = Request.Form.NewKey;
                string v = Request.Form.NewValue;
                DhcpConfig.MapFile.AddRange(k, v);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addkey"] = x => {
                string name = Request.Form.NewKeyName;
                DhcpConfig.MapFile.AddKey(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addsubnet"] = x => {
                string name = Request.Form.NewSubnet6Name;
                DhcpConfig.MapFile.AddSubnet6(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addsubnet"] = x => {
                string name = Request.Form.NewSubnetName;
                DhcpConfig.MapFile.AddSubnet(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addhost"] = x => {
                string name = Request.Form.NewHostName;
                DhcpConfig.MapFile.AddHost(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addclass"] = x => {
                string name = Request.Form.NewClassName;
                DhcpConfig.MapFile.AddClass(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addsubclass"] = x => {
                string name = Request.Form.NewSubclassName;
                DhcpConfig.MapFile.AddSubclass(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addfailover"] = x => {
                string name = Request.Form.NewFailoverName;
                DhcpConfig.MapFile.AddFailover(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addlogging"] = x => {
                string name = Request.Form.NewLoggingName;
                DhcpConfig.MapFile.AddLogging(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addgroup"] = x => {
                string name = Request.Form.NewGroupName;
                DhcpConfig.MapFile.AddGroup(name);
                return(Response.AsRedirect("/"));
            };

            Post["/services/dhcp/addkey"] = x => {
                string name = Request.Form.NewKeyName;
                DhcpConfig.MapFile.AddKey(name);
                return(Response.AsRedirect("/"));
            };
            #endregion DHCP

            #region SSH
            Post["/services/activate/ssh"] = x => {
                SshConfig.SetReady();
                SshConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/refresh/ssh"] = x => {
                SshConfig.MapFile.Render();
                return(Response.AsJson(true));
            };

            Post["/services/reloadconfig/ssh"] = x => {
                SshConfig.ReloadConfig();
                return(Response.AsJson(true));
            };

            Post["/services/update/ssh/{section}"] = x => {
                //var parameters = this.Bind<List<ServiceSsh>>();
                //var section = (string)x.section;
                //if (section == "global") {
                //    SshConfig.WriteFile.SaveGlobal(parameters);
                //}
                //if (section == "prefix6") {
                //    SshConfig.WriteFile.SavePrefix6(parameters);
                //}
                //if (section == "range6") {
                //    SshConfig.WriteFile.SaveRange6(parameters);
                //}
                //if (section == "range") {
                //    SshConfig.WriteFile.SaveRange(parameters);
                //}
                //else {
                //    SshConfig.WriteFile.SaveConfigFor(section, parameters);
                //}
                //Thread.Sleep(1000);
                SshConfig.WriteFile.DumpGlobalConfig();
                return(Response.AsRedirect("/"));
            };

            //Post["/services/ssh/addkey"] = x => {
            //    string name = Request.Form.NewKeyName;
            //    SshConfig.Keys.PropagateKeys(name);
            //    return Response.AsRedirect("/");
            //};
            #endregion SSH
        }