public void AddReservation(DhcpConfigurationReservationModel model) { var hostres = _serviceModel.Reservations; if (hostres.Any(_ => _.Guid == model.Guid)) { return; } hostres.Add(model); _serviceModel.Reservations = hostres; Save(_serviceModel); }
public AntdDhcpdModule() { Get["/dhcpd"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); var dhcpdIsActive = dhcpdConfiguration.IsActive(); var model = new PageDhcpdModel { DhcpdIsActive = dhcpdIsActive, DhcpdOptions = dhcpdConfiguration.Get() ?? new DhcpdConfigurationModel(), DhcpdClass = dhcpdConfiguration.Get()?.Classes, DhcpdPools = dhcpdConfiguration.Get()?.Pools, DhcpdReservation = dhcpdConfiguration.Get()?.Reservations }; return(JsonConvert.SerializeObject(model)); }; Post["/dhcpd/set"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Set(); return(HttpStatusCode.OK); }; Post["/dhcpd/restart"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/dhcpd/stop"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/dhcpd/enable"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Enable(); dhcpdConfiguration.Start(); return(HttpStatusCode.OK); }; Post["/dhcpd/disable"] = x => { var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Disable(); dhcpdConfiguration.Stop(); return(HttpStatusCode.OK); }; Post["/dhcpd/options"] = x => { string allow = Request.Form.Allow; string updateStaticLeases = Request.Form.UpdateStaticLeases; string updateConflictDetection = Request.Form.UpdateConflictDetection; string useHostDeclNames = Request.Form.UseHostDeclNames; string doForwardUpdates = Request.Form.DoForwardUpdates; string doReverseUpdates = Request.Form.DoReverseUpdates; string logFacility = Request.Form.LogFacility; string option = Request.Form.Option; string zoneName = Request.Form.ZoneName; string zonePrimaryAddress = Request.Form.ZonePrimaryAddress; string ddnsUpdateStyle = Request.Form.DdnsUpdateStyle; string ddnsUpdates = Request.Form.DdnsUpdates; string ddnsDomainName = Request.Form.DdnsDomainName; string ddnsRevDomainName = Request.Form.DdnsRevDomainName; string defaultLeaseTime = Request.Form.DefaultLeaseTime; string maxLeaseTime = Request.Form.MaxLeaseTime; string keyName = Request.Form.KeyName; string keySecret = Request.Form.KeySecret; string ipFamily = Request.Form.IpFamily; string ipMask = Request.Form.IpMask; string optionRouters = Request.Form.OptionRouters; string ntpServers = Request.Form.NtpServers; string timeServers = Request.Form.DoForTimeServerswardUpdates; string domainNameServers = Request.Form.DomainNameServers; string broadcastAddress = Request.Form.BroadcastAddress; string subnetMask = Request.Form.SubnetMask; var model = new DhcpdConfigurationModel { Allow = allow.SplitToList().Select(_ => _.Trim()).ToList(), UpdateStaticLeases = updateStaticLeases, UpdateConflictDetection = updateConflictDetection, UseHostDeclNames = useHostDeclNames, DoForwardUpdates = doForwardUpdates, DoReverseUpdates = doReverseUpdates, LogFacility = logFacility, Option = option.SplitToList().Select(_ => _.Trim()).ToList(), ZoneName = zoneName, ZonePrimaryAddress = zonePrimaryAddress, DdnsUpdateStyle = ddnsUpdateStyle, DdnsUpdates = ddnsUpdates, DdnsDomainName = ddnsDomainName, DdnsRevDomainName = ddnsRevDomainName, DefaultLeaseTime = defaultLeaseTime, MaxLeaseTime = maxLeaseTime, KeyName = keyName, KeySecret = keySecret, SubnetIpFamily = ipFamily, SubnetIpMask = ipMask, SubnetOptionRouters = optionRouters, SubnetNtpServers = ntpServers, SubnetTimeServers = timeServers, SubnetDomainNameServers = domainNameServers, SubnetBroadcastAddress = broadcastAddress, SubnetMask = subnetMask, }; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.Save(model); return(HttpStatusCode.OK); }; Post["/dhcpd/class"] = x => { string name = Request.Form.Name; string macVendor = Request.Form.MacVendor; var model = new DhcpConfigurationClassModel { Name = name, MacVendor = macVendor }; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.AddClass(model); return(HttpStatusCode.OK); }; Post["/dhcpd/class/del"] = x => { string guid = Request.Form.Guid; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.RemoveClass(guid); return(HttpStatusCode.OK); }; Post["/dhcpd/pool"] = x => { string option = Request.Form.Option; var model = new DhcpConfigurationPoolModel { Options = option.SplitToList().Select(_ => _.Trim()).ToList() }; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.AddPool(model); return(HttpStatusCode.OK); }; Post["/dhcpd/pool/del"] = x => { string guid = Request.Form.Guid; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.RemovePool(guid); return(HttpStatusCode.OK); }; Post["/dhcpd/reservation"] = x => { string hostName = Request.Form.HostName; string macAddress = Request.Form.MacAddress; string ipAddress = Request.Form.IpAddress; var model = new DhcpConfigurationReservationModel { HostName = hostName, MacAddress = macAddress, IpAddress = ipAddress }; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.AddReservation(model); return(HttpStatusCode.OK); }; Post["/dhcpd/reservation/del"] = x => { string guid = Request.Form.Guid; var dhcpdConfiguration = new DhcpdConfiguration(); dhcpdConfiguration.RemoveReservation(guid); return(HttpStatusCode.OK); }; }