Пример #1
0
        public IHttpActionResult AddNetworkInterface(string networkInterfaceName, string ipAddress, string subnetMask)
        {
            // Validate params

            if (string.IsNullOrWhiteSpace(ipAddress) || !IPAddress.TryParse(ipAddress, out IPAddress ipAddressObj))
            {
                return(BadRequest($"Unknown format of {nameof(ipAddress)}"));
            }

            if (string.IsNullOrWhiteSpace(subnetMask) || !IPAddress.TryParse(subnetMask, out IPAddress subnetMaskObj))
            {
                return(BadRequest($"Unknown format of {nameof(subnetMask)}"));
            }

            var ipAddressNormalized = ipAddressObj.ToString();

            if (string.IsNullOrWhiteSpace(networkInterfaceName))
            {
                return(BadRequest($"{nameof(networkInterfaceName)} is empty"));
            }

            // Load network interface

            var networkInterface = NetworkAdapterService.GetOne(networkInterfaceName);

            if (networkInterface == null)
            {
                return(new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.NotFound, $"Such Network Interface '{networkInterfaceName}' not found")));
            }

            if (string.IsNullOrWhiteSpace(networkInterface.Description))
            {
                return(new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.NotFound, $"Network Interface cannot be found if Description missed")));
            }

            if (NetworkAdapterService.IsIPv4Exists(networkInterface, ipAddressNormalized))
            {
                return(new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.Found, $"This IP Address '{ipAddressNormalized}' already added")));
            }

            // Try adding IPv4

            var(message, success) = new NetworkAdapterConfiguration(networkInterface).AddStaticIPv4(ipAddressObj, subnetMaskObj);

            if (success)
            {
                return(Ok(NetworkAdapterService.GetOneModel(networkInterface.Name)));
            }
            else
            {
                return(new ResponseMessageResult(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, message)));
            }
        }
Пример #2
0
 public IEnumerable <NetworkInterfaceModel> GetNetworkInterfaceList()
 {
     return(NetworkAdapterService.GetAllModelsIPv4());
 }