public int Connect(string name)
        {
            Abonent abonent;
            string  typeConnect;

            if (allAbonents.ToList().Exists(ab => ab.Value.name == name))
            {
                abonent = allAbonents.ToList().Find(ab => ab.Value.name == name).Value;
                if (abonent.status == Status.Online)
                {
                    _logger.Logging("Попытка повторного входа!");
                    return(-1);
                }

                typeConnect       = "существующий ";
                links[abonent.id] = _binding.GetChannelCallback(OperationContext.Current);; // OperationContext.Current.GetCallbackChannel<IMessageCallback>();
                abonent.status    = Status.Online;
            }
            else
            {
                typeConnect = "новый ";
                abonent     = new Abonent()
                {
                    id     = idAbonent,
                    name   = name,
                    status = Status.Online
                };

                _dataBase.AddAbonentToDb(abonent.id, abonent.name);

                allAbonents.Add(idAbonent++, abonent);
                links[abonent.id] = _binding.GetChannelCallback(OperationContext.Current);//OperationContext.Current.GetCallbackChannel<IMessageCallback>();
            }

            //Дать знать остальным пользователям о подключении нового
            foreach (var index in  links.Keys)
            {
                if (allAbonents[index].status == Status.Online && allAbonents[index].id != abonent.id)
                {
                    links[index].cbShowAbonent(abonent);
                }
            }

            _logger.Logging("Подключился " + typeConnect + abonent.name);
            return(abonent.id);
        }