Esempio n. 1
0
        public ResponseAccount GetAccountByPhoneNumber(PhoneNumberRequest req)
        {
            ResponseAccount retVal      = new ResponseAccount();
            String          phoneNumber = req.PhoneNumber;

            var acc = from account in accounts where HasPhoneNumber(account.PhoneNumbers.PhoneNumber, phoneNumber) select account;

            if (acc.Count() < 1)
            {
                throw new WebFaultException(HttpStatusCode.NoContent);
            }
            else if (acc.Count() > 1)
            {
                throw new WebFaultException(HttpStatusCode.Conflict);
            }
            Account retAccount = new Account(acc.FirstOrDefault());

            if (retAccount != null && req.CustomAttribute != null && req.CustomAttribute.Equals("overwrite"))
            {
                retAccount.CustomAttribute = "overwritten custom attribute";
            }

            retVal.Account = retAccount;
            return(retVal);
        }
        public ResponseAccount GetAccountByContactId(ContactIdRequest cidr)
        {
            ResponseAccount retVal = new ResponseAccount();

            retVal.Account = SQLGetAccount(config.getAccountByAccountNumber.Replace("%1", cidr.ContactId));;
            return(retVal);
        }
        public ResponseAccount GetAccountByAccountNumber(AccountNumberRequest req)
        {
            ResponseAccount retVal = new ResponseAccount();

            retVal.Account = SQLGetAccount(config.getAccountByAccountNumber.Replace("%1", req.AccountNumber));;
            return(retVal);
        }
Esempio n. 4
0
        public ResponseModel Account(string id)
        {
            ResponseModel response = new ResponseModel();

            try
            {
                if (GuidUtil.IsGuidValid(id))
                {
                    User user = _userRepository.GetAccountById(Guid.Parse(id));
                    if (user == null)
                    {
                        response.Message = "Usuário não encotrado";
                        return(response);
                    }
                    ResponseAccount responseAccount = new ResponseAccount()
                    {
                        UserId       = user.UserId,
                        Email        = user.Email,
                        Image        = user.Image,
                        Name         = user.Name,
                        Roles        = user.Roles,
                        PhoneNumbers = user.PhoneNumbers,
                        Locations    = user.Locations,
                        CreateAt     = user.CreatedAt
                    };
                    response.Success = true;
                    response.Message = "Informação básica da conta do usuário";
                    response.Result  = responseAccount;
                    return(response);
                }
                else
                {
                    response.Message = "Guid inválido";
                }
            }
            catch (Exception e)
            {
                throw e;
            }

            return(response);
        }
Esempio n. 5
0
        public static void BusinessRun()
        {
            #region 获取所有账户 并找到账户下type为margin下的账户

            if (accounts == null)
            {
                accounts = new AccountOrder().Accounts();
            }
            var accountList = accounts.data.Where(it => it.state == "working" && it.type == "margin").Select(it => it).ToList();

            if (accountList.Count == 0)
            {
                // 没有可操作的
                Console.WriteLine("没有可操作的账户");
                return;
            }

            #endregion

            int sleepSecond = (30 * 1000) / accountList.Count;
            foreach (var account in accountList)
            {
                Thread.Sleep(sleepSecond);
                var accountId   = account.id;
                var coin        = account.subtype.Substring(0, account.subtype.Length - 4);// 减去usdt字符
                var usdtBalance = GetBlance(accountId, coin);

                // 3. 对当前币做分析。找到拐点,并做交易
                decimal nowOpen;
                var     flexPointList = new CoinAnalyze().Analyze(coin, "usdt", out nowOpen);
                if (flexPointList.Count == 0)
                {
                    logger.Error($"--------------> 分析结果数量为0 {coin}");
                    continue;
                }

                #region 修正数据, 如果数据没修正,则要手工修正

                try
                {
                    // 查询购买结果还没ok的数据, 去搜索一下,如果ok了,则更新下结果
                    var noSetBuySuccess = new CoinDao().ListNotSetBuySuccess(accountId, coin);
                    foreach (var item in noSetBuySuccess)
                    {
                        QueryDetailAndUpdate(item.BuyOrderId);
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }

                try
                {
                    // 查询出售结果还没好的数据, 去搜索一下,如果ok了,则更新下结果
                    var noSetSellSuccess = new CoinDao().ListHasSellNotSetSellSuccess(accountId, coin);
                    foreach (var item in noSetSellSuccess)
                    {
                        Console.WriteLine("----------> " + JsonConvert.SerializeObject(item));
                        QuerySellDetailAndUpdate(item.SellOrderId);
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }

                #endregion

                try
                {
                    var noSellCount = new CoinDao().GetNoSellRecordCount(account.id, coin);
                    if (usdtBalance.balance > 1 && GetAvgBuyAmount(usdtBalance.balance, noSellCount) > (decimal)0.6)
                    {
                        if (coin != "btc" || GetAvgBuyAmount(usdtBalance.balance, noSellCount) > (decimal)10)
                        {
                            BusinessRunAccountForBuy(accountId, coin, account, nowOpen, flexPointList);
                        }
                    }
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }

                try
                {
                    BusinessRunAccountForSell(accountId, coin, account, flexPointList);
                }
                catch (Exception ex)
                {
                    logger.Error(ex.Message, ex);
                }
            }
        }