public ConfigureIPSettingsViewModel(IIPAddressRepository repo) { NetworkConfigurator = new NetworkConfigurator(new XMLNetworkConfigurationReader()); Repository = repo; InputtedNetworkMask = NetworkConfigurator.Mask.ToString(); ApplyNetworkSettingsChangesCommand = RegisterCommandAction( (obj) => { try { NetworkConfigurator.Mask = byte.Parse(InputtedNetworkMask); Repository.SetNewRangeOfIPAddresses(NetworkConfigurator.IPAddresses); Repository.SaveChanges(); NetworkConfigurator.WriteMask(new XMLNetworkConfigurationWriter()); MessageToUser = "******"; DeviceEvents.RaiseOnNetworkConfigurationChanged( InputtedNetworkAddress, byte.Parse(InputtedNetworkMask) ); } catch (Exception e) { MessageToUser = e.Message; } }, (obj) => { // Move to special validator class soon try { var mask = byte.Parse(InputtedNetworkMask); if (mask <= 32 && mask >= 0) { return(true); } return(false); } catch { return(false); } } ); }