public Client EditClient(EditingClient editingClient)
        {
            Client        newClient    = editingClient.Client;
            Func <Client> updateClient = () =>
                                         ClientChecker.IsValidIPAddress(newClient.SubNetwork) ?
                                         repo.Update(newClient) :
                                         null; //если адрес не валидный то возвращаем null

            Func <Client> addNewAndDeleteOldClient = () =>
            {
                if (ClientChecker.IsValidClientId(repo, newClient.Id) &&
                    ClientChecker.IsValidIPAddress(newClient.SubNetwork))
                {
                    repo.Delete(editingClient.OldClientId);
                    return(repo.AddClient(newClient));
                }
                return(null);
            };

            return(editingClient != null && newClient.Id != null &&
                   newClient.SubNetwork != null ?              //если данные пришли
                   editingClient.OldClientId == newClient.Id ? //если id совпадают
                   updateClient() :                            //то обновляем клиента
                   addNewAndDeleteOldClient() :                //если не совпадают,
                                                               //то удаляем старого и добавляем как нового
                   null);                                      //если данные не пришли
        }
 public Client AddClient(Client client)
 {
     return(client != null && //если данные пришли
            client.Id != null &&
            client.SubNetwork != null &&
            ClientChecker.IsValidClientId(repo, client.Id) &&   //и id является валидным
            ClientChecker.IsValidIPAddress(client.SubNetwork) ? //и адрес подсети валидный
            repo.AddClient(client) :                            //то возвращаем добавленного клиента
            null);                                              // иначе передаем на клиент null
 }
 public void NotCorrectIPAddress(string ipAddress, bool expectedResult)
 {
     Assert.That(ClientChecker.IsValidIPAddress(ipAddress), Is.EqualTo(expectedResult));
 }
 public void SympleStringButNotIPAddress()
 {
         Assert.That(ClientChecker.IsValidIPAddress("abc"), Is.EqualTo(false));
 }
 public void IPAddressWithOutSubnetMask()
 {
     Assert.That(ClientChecker.IsValidIPAddress("123.123.123.123"), Is.EqualTo(false));
 }
 public void IPAddressWithComma()
 {
     Assert.That(ClientChecker.IsValidIPAddress("123,123,123,123/24"), Is.EqualTo(false));
 }
 public void IPAddressWithSpaceInMiddle()
 {
     Assert.That(ClientChecker.IsValidIPAddress("123. 123.123.123/24"), Is.EqualTo(false));
 }
 public void IPAddressWithOtherInformation(string ipAddress, bool expectedResult)
 {
     Assert.That(ClientChecker.IsValidIPAddress(ipAddress), Is.EqualTo(expectedResult));
 }
 public void SpaceIPAddress()
 {
     Assert.That(ClientChecker.IsValidIPAddress(" "), Is.EqualTo(false));
 }