コード例 #1
0
        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); }
            }
                );
        }