Esempio n. 1
0
        public async Task <List <Fee> > GetListFee(int start, int end)
        {
            try
            {
                List <Fee> fees = new List <Fee>();
                using (var financial = new FinancialSoapClient())
                {
                    var response = await financial.GetFeeByRangeAsync(start, end);

                    var data = response.Body.GetFeeByRangeResult;
                    foreach (var i in data)
                    {
                        fees.Add(new Fee
                        {
                            Day  = i.Day,
                            Fees = i.Fees.ToDictionary(x => x.GameId, x => x.Fee)
                        });
                    }
                }
                fees.Reverse();

                return(fees);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }

            return(null);
        }
Esempio n. 2
0
        public async Task <dynamic> GetVIP(bool getAllInfo = false)
        {
            try
            {
                var accountId     = AccountSession.AccountID;
                var vipRankConfig = AccountDAO.GetVIPRankConfig();

                #region Tinh VP
                int vp = 0;
                using (var financial = new FinancialSoapClient())
                {
                    vp = await financial.GetAccountVIPPointAsync(accountId);
                }
                #endregion

                var data = AccountDAO.CheckVIP(accountId, vp, out int rank); // list phan thuong da nhan
                if (getAllInfo)
                {
                    var vipReward = from config in vipRankConfig
                                    join item in data.DefaultIfEmpty() on config.Rank equals item?.Rank into results

                                    from result in results.DefaultIfEmpty()
                                    select new
                    {
                        config.Rank,
                        config.Reward,
                        Status = result?.Status ?? false,
                    };
                    return(new
                    {
                        CurrentRank = rank,
                        CurrentVP = vp,
                        RewardList = vipReward
                    });
                }
                else
                {
                    var nextVP = 0;
                    if (vipRankConfig != null)
                    {
                        nextVP = vipRankConfig.FirstOrDefault(x => (x.Rank == (rank + 1))).VP;
                    }
                    return(new
                    {
                        CurrentRank = rank,
                        CurrentVP = vp,
                        NextVP = nextVP
                    });
                }
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }
            return(null);
        }
        public async Task <dynamic> GetListTransAccount(long gameAccountId, int from, int to)
        {
            try
            {
                var data = new List <RewardInfoItemVM>();

                // Rate giao dich cua tung tai khoan voi dai ly hien tai
                var rates = AgencyDAO.GetAccountTransactionRateDetail(gameAccountId, from, to);
                if (!rates.Any())
                {
                    return(data);
                }

                string list = string.Empty;
                foreach (var item in rates)
                {
                    list += item.AccountId.ToString() + ";" + item.CreatedDateInt.ToString() + ",";
                }
                list = list.TrimEnd(',');
                // Luong tien cua cac tai khoan giao dich voi dai ly hien tai
                var accountMoney = new List <AccountMoneyFlow>();
                using (var financial = new FinancialSoapClient())
                {
                    var response = await financial.GetAccountsMoneyStreamAsync(list);

                    var accountMoneyStreams = response.Body.GetAccountsMoneyStreamResult;

                    if (accountMoneyStreams.Length < 1)
                    {
                        return(data);
                    }
                    foreach (var i in accountMoneyStreams)
                    {
                        accountMoney.Add(new AccountMoneyFlow
                        {
                            AccountId      = i.AccountId,
                            CreatedDateInt = i.CreatedDateInt,
                            Money          = i.Money
                        });
                    }
                }

                var linq = (from rate in rates
                            join account in accountMoney on new { rate.AccountId, rate.CreatedDateInt } equals new { account.AccountId, account.CreatedDateInt }
                            into accountRates

                            from accountRate in accountRates
                            select new AccountMoneyStreamDetailVM
                {
                    AccountId = rate.AccountId,
                    DisplayName = rate.DisplayName,
                    CreatedDateInt = rate.CreatedDateInt,
                    Money = (long)(rate.Rate * accountRate.Money),
                });
                var result = linq.GroupBy(x => new { x.AccountId, x.DisplayName }).Select(t => new AccountMoneyFlowDetail {
                    AccountId   = t.Key.AccountId,
                    DisplayName = t.Key.DisplayName,
                    TotalMoney  = t.Sum(i => i.Money)
                });

                return(result);
            }
            catch (Exception ex)
            {
                NLogManager.PublishException(ex);
            }

            return(null);
        }