public bool SetPhoneNumber(string phoneNumber, long clientId)
        {
            bool ph = PhoneGateway.Instance.GetItemByPhoneNumberAndClientId(phoneNumber, clientId);

            if (!ph)
            {
                PhoneGateway.Instance.Create(new Phones()
                {
                    ClientId = clientId, Number = phoneNumber
                });
            }

            // генерация части телефона, с которого будет звонок клиенту
            long rez = new Random().Next(1000, 9999);

            try
            {
                // удалить старые ключи, если таковые остались по каким-либо причинам
                ConfirmKeysGateway.Instance.DelItemsByClientId(clientId);
                // занести в таблицу временных ключей и запустить таймер для удаления
                ConfirmKeys ck = new ConfirmKeys()
                {
                    ClientId = clientId, PhoneKey = rez
                };
                ConfirmKeysGateway.Instance.Create(ck);
                PhoneKeyManager pkm = new PhoneKeyManager(ck);

                return(true);
            }
            catch
            {
                return(false);
            }
        }
        public string GetBankPhoneNumber(long clientId)
        {
            ConfirmKeys ck = ConfirmKeysGateway.Instance.GetItemByClientId(clientId);

            if (ck == null)
            {
                return("");
            }

            return($"{Constants.BankNumber}{ck.PhoneKey}");
        }
        public bool CheckPhoneKey(long clientId, long key)
        {
            ConfirmKeys ck = ConfirmKeysGateway.Instance.GetItemByClientIdAndConfirmKey(clientId, key);

            if (ck != null)
            {
                ConfirmKeysGateway.Instance.Delete(ck);
                return(true);
            }

            return(false);
            //return ck == null ? false : true;
        }