示例#1
0
        public async ValueTask <decimal> GetCurrentExchangeRate(CurrencyTypeEnum type)
        {
            WebRequest  request  = WebRequest.CreateHttp(_urlOptions);
            WebResponse response = await request.GetResponseAsync();

            Stream  dataStream;
            string  result;
            decimal rate = 1;

            using (dataStream = response.GetResponseStream())
            {
                StreamReader reader = new StreamReader(dataStream);
                result = reader.ReadToEnd();
                JObject o = JObject.Parse(result);
                if (type == CurrencyTypeEnum.UkrainianCurrency)
                {
                    rate = (decimal)o.SelectToken(Ukraine.Currency);
                }
                if (type == CurrencyTypeEnum.BelorussianCurrency)
                {
                    rate = (decimal)o.SelectToken(Belorussia.Currency);
                }
                return(rate);
            }
        }
示例#2
0
        private StatItem GetByCurr(List <StatItem> list, CurrencyTypeEnum ct)
        {
            lock (list)
            {
                var item = new StatItem();
                item.CurrencyType = ct;
                item.Name         = ct.ToString();

                if (list.Any(x => x.CurrencyType == ct))
                {
                    var d = list.First(x => x.CurrencyType == ct);
                    item.DealCount   = d.DealCount;
                    item.PriceId     = d.PriceId;
                    item.Price       = d.Price;
                    item.MiddleValue = d.MiddleValue;
                    item.Name        = d.Name;
                }
                else
                {
                    item.DealCount   = 0;
                    item.PriceId     = 0;
                    item.Price       = (decimal)0.0;
                    item.MiddleValue = (decimal)0.0;
                }
                return(item);
            }
        }
示例#3
0
 public void UpdateUserData(long userId, long accountId, string nick, CurrencyTypeEnum currency)
 {
     lock (updateLock)
     {
         UserId    = userId;
         AccountId = accountId;
         Nick      = nick;
         Currency  = currency;
     }
 }
示例#4
0
        public static void RegisterOrder(string filePath, int id, int orderTickerNumber, string customer, string title,
                                         string description, string category, decimal totalAmount, decimal totalPrePaid, int prePaidTicketNumber,
                                         decimal totalDue, CurrencyTypeEnum currencyType, string imageName, DateTime dueDate)
        {
            //TODO: Check if username already exists
            //TODO: Implement feature
            string data = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11},{12},{13}", id, orderTickerNumber.ToString(),
                                        customer, title, description, category, totalAmount.ToString(), totalPrePaid.ToString(),
                                        prePaidTicketNumber.ToString(), DateTime.Now.ToString(), totalDue.ToString(), currencyType.ToString(), imageName, dueDate.ToString())
                          + Environment.NewLine;

            File.AppendAllText(filePath, data);
        }
示例#5
0
        public CoinMarketTicket GetTicket(CurrencyTypeEnum type)
        {
            var error = string.Empty;

            CurrencyType = type;
            var result = LoadResponse <List <CoinMarketTicket> >(Statics.TickersFromCoinMarket, ref error);

            if (!string.IsNullOrWhiteSpace(error) && result == null)
            {
                result = CastToChild <List <CoinMarketTicket> >(GetErrorResponse(error));
            }

            return(result.FirstOrDefault());
        }
示例#6
0
 public UserWinData(long roundId, bool seamlessMode, long casinoId, long userId, long accountId, long accessPointId, string externalSessionId, string externalSessionIp, CurrencyTypeEnum currency, string clientType, bool isPlayingForFun)
 {
     RoundId           = roundId;
     SeamlessMode      = seamlessMode;
     CasinoId          = casinoId;
     UserId            = userId;
     AccountId         = accountId;
     AccessPointId     = accessPointId;
     ExternalSessionId = externalSessionId;
     ExternalSessionIp = externalSessionIp;
     Currency          = currency;
     ClientType        = clientType;
     IsPlayingForFun   = isPlayingForFun;
 }
示例#7
0
        public List <CoinMarketTicket> GetAllTickets()
        {
            var error = string.Empty;

            CurrencyType = CurrencyTypeEnum.undefine;
            var result = LoadResponse <List <CoinMarketTicket> >(Statics.TickersFromCoinMarket, ref error);

            if (!string.IsNullOrWhiteSpace(error) && result == null)
            {
                result = CastToChild <List <CoinMarketTicket> >(GetErrorResponse(error));
            }
            var valuesEnum = Enum.GetNames(typeof(CurrencyTypeEnum)).ToList();

            return(result.Where(ticket => valuesEnum.Contains(ticket.id)).ToList());
        }
示例#8
0
        public static int GetBankAccount(CurrencyTypeEnum currencyType)
        {
            switch (currencyType)
            {
            case CurrencyTypeEnum.BYR:
                return(BANK_ACCOUNT_BYR);

            case CurrencyTypeEnum.EUR:
                return(BANK_ACCOUNT_EUR);

            case CurrencyTypeEnum.USD:
                return(BANK_ACCOUNT_USD);
            }
            return(REPOSITORY_ACCOUNT_BYR);
        }
示例#9
0
 public Expense(string expensesXFilePath, string expensesZFilePath, string expensesHistoryFilePath, int id, string user, string vendor, string description, decimal amount,
                CurrencyTypeEnum currencyType, PaymentTypeEnum paymentType, string expenseCategory = "General") : base(expensesXFilePath)
 {
     Id = id;
     ExpensesXFilePath       = expensesXFilePath;
     ExpensesZFilePath       = expensesZFilePath;
     ExpensesHistoryFilePath = expensesHistoryFilePath;
     User            = user;
     Vendor          = vendor;
     Description     = description;
     Amount          = amount;
     CurrencyType    = currencyType;
     PaymentType     = paymentType;
     ExpenseCategory = expenseCategory;
 }
示例#10
0
 public LocaleInfo(string language, CurrencyTypeEnum currency)
 {
     this.language      = language;
     this.CurrencyValue = currency;
     try
     {
         this.currency           = currency.ToCurrencyName();
         this.currencySign       = currency.ToCurrencySign();
         this.currencyMultiplier = currencyMultipliers.ContainsKey(currency) ? currencyMultipliers[currency] : 1.00m;
     }
     catch (Exception ex)
     {
         Logger.Log(ex);
     }
 }
示例#11
0
 private PriceItem GetPrice(CurrencyTypeEnum currencyType)
 {
     lock (_priceList)
     {
         if (!_priceList.Any() || _updateTime == null ||
             (_updateTime != null && _updateTime < DateTime.Now))
         {
             var list = new List <PriceItem>();
             while (!list.Any())
             {
                 list = PriceManager.Get(_cs);
                 PriceManager.Update(_cs);
             }
             _priceList  = list;
             _updateTime = DateTime.Now.AddSeconds(10);
         }
         return(_priceList.FirstOrDefault(x => x.CurrencyCode == currencyType));
     }
 }
示例#12
0
        public static string ToHumarReadable(this CurrencyTypeEnum currency)
        {
            switch (currency)
            {
            case CurrencyTypeEnum.DM:
                return("dm");

            case CurrencyTypeEnum.Gold:
                return("gold");

            case CurrencyTypeEnum.PLN:
                return("pln");
            }
#if DEBUG
            throw new NotImplementedException("CurrencyType-HumanReadable-" + currency.ToString());
#else
            return(currency.ToString());
#endif
        }
示例#13
0
 public Order(string dbPath, int id, int orderTicketNumber, string customer, string title, DateTime dueDate, string category,
              decimal totalAmount, decimal totalPrePaid, int prePaidTicketNumber, decimal totalDue, CurrencyTypeEnum currencyType, string description,
              string imageName) : base(dbPath)
 {
     //TODO: Check if path exists
     DbPath              = dbPath;
     Id                  = id;
     OrderTicketNumber   = orderTicketNumber;
     Customer            = customer;
     Title               = title;
     DueDate             = dueDate;
     Category            = category;
     TotalAmount         = totalAmount;
     CurrencyType        = currencyType;
     TotalPrePaid        = totalPrePaid;
     PrePaidTicketNumber = prePaidTicketNumber;
     TotalDue            = totalDue;
     Description         = description;
     ImageName           = imageName;
 }
示例#14
0
        public void ResetUserInfoIfNeeded(long casinoId, long userId, CurrencyTypeEnum currency, string language, IDictionary <string, object> features)
        {
            if (userInfo != null)
            {
                if (userInfo.UserId != userId || userInfo.CasinoId != casinoId || userInfo.locale.CurrencyValue != currency || features.SerializeJSON() != userInfo.features.SerializeJSON())
                {
                    userInfo = null;
                }
                else if (userInfo.locale.language != language)
                {
                    userInfo.locale = new LocaleInfo(language, userInfo.locale.CurrencyValue);
                }
            }

            if (userInfo != null)
            {
                if (userInfo.isPlayingForFun)
                {
                    userInfo.Reset();
                }
            }
        }
示例#15
0
        /// <summary> Сохранить баланс </summary>
        /// <param name="balanceRaw">сырье</param>
        /// <param name="tsDelta">время перед следующим сохранением</param>
        /// <param name="currencyEnum">валюта</param>
        /// <param name="result"></param>
        /// <returns></returns>
        public static Balance SaveBalance(FloatValue balanceRaw, TimeSpan tsDelta, CurrencyTypeEnum currencyEnum, ref string result)
        {
            Currency currency    = GetCurrensyByEnum(currencyEnum);
            Balance  balance     = new Balance(Session);
            var      lastBalance = GetLastBalance <Balance>(currency);

            balance.Map(balanceRaw, currency);
            balance.Status = balanceRaw.Status;

            if (balanceRaw.Status)
            {
                if (HasNeedingSave(tsDelta, lastBalance, balance))
                {
                    result += (Environment.NewLine + lastBalance);
                    result += AdditionInfoFromCriptonator(currency);
                    balance.Save();
                }
                else
                {
                    result += (Environment.NewLine + lastBalance);
                }
            }
            return(balance);
        }
示例#16
0
        private static string AdditionInfoFromCoinMarketCap(Balance balance, CurrencyTypeEnum currency)
        {
            var cmc        = new CoinMarketCap(currency);
            var tickets    = cmc.GetAllTickets();
            var ticketCurr = tickets.FirstOrDefault(t => t.id == currency.ToString());

            if (ticketCurr != null)
            {
                balance.VolumeUsd = ticketCurr.price_usd * balance.Volume;
            }
            var result = balance.Date.ToString("f");

            result += Environment.NewLine + balance;
            if (balance.VolumeUsd != null)
            {
                result += $" ({balance.VolumeUsd.Value.ToString("N4")}$)" + Environment.NewLine;
            }
            foreach (var itemTicket in tickets.Select(t => Environment.NewLine + t.name + "\t\t" + t.price_usd))
            {
                result += itemTicket;
            }

            return(result);
        }
示例#17
0
        public ActionResult StupidCompanies()
        {
            ProductTypeEnum[] productTypes = new ProductTypeEnum[]
            {
                ProductTypeEnum.Bread,
                ProductTypeEnum.Weapon,
                ProductTypeEnum.Grain,
                ProductTypeEnum.Iron,
                ProductTypeEnum.Tea,
                ProductTypeEnum.Oil,
                ProductTypeEnum.Fuel,
                ProductTypeEnum.MovingTicket,
                ProductTypeEnum.TeaLeaf,
                ProductTypeEnum.Wood,
                ProductTypeEnum.UpgradePoints,
                ProductTypeEnum.MedicalSupplies,
                ProductTypeEnum.Paper,
                ProductTypeEnum.ConstructionMaterials
            };

            CurrencyTypeEnum[] currencies = new CurrencyTypeEnum[]
            {
                CurrencyTypeEnum.PLN,
                CurrencyTypeEnum.Gold,
                CurrencyTypeEnum.Dollar
            };

            using (var trs = transactionScopeProvider.CreateTransactionScope())
            {
                foreach (var productType in productTypes)
                {
                    var name    = RandomGenerator.GenerateString(50);
                    var company = companyService.CreateCompany(name, productType, SessionHelper.LoggedCitizen.RegionID, SessionHelper.LoggedCitizen.ID);
                    companyRepository.ReloadEntity(company);
                    companyRepository.ReloadNavigationProperty(company, x => x.Region);
                    foreach (var cur in currencies)
                    {
                        walletService.AddMoney(company.Entity.WalletID, new Money((int)cur, 1000));
                    }

                    equipmentService.GiveItem(productType, 1000, 1, company.Entity.Equipment);

                    marketService.AddOffer(new AddMarketOfferParameters()
                    {
                        Amount      = 1000,
                        CompanyID   = company.ID,
                        CountryID   = company.Region.CountryID,
                        Price       = 1,
                        ProductType = productType,
                        Quality     = 1
                    });
                }
                var cname = RandomGenerator.GenerateString(50);
                var c     = companyService.CreateCompany(cname, ProductTypeEnum.SellingPower, SessionHelper.LoggedCitizen.RegionID, SessionHelper.LoggedCitizen.ID);
                equipmentService.GiveItem(ProductTypeEnum.SellingPower, 1000, 1, c.Entity.Equipment);
                companyRepository.ReloadEntity(c);
                companyRepository.ReloadNavigationProperty(c, x => x.Region);
                foreach (var cur in currencies)
                {
                    walletService.AddMoney(c.Entity.WalletID, new Money((int)cur, 1000));
                }

                foreach (var productType in ProductGroups.Consumables)
                {
                    equipmentService.GiveItem(productType, 1000, 1, c.Entity.Equipment);

                    marketService.AddOffer(new AddMarketOfferParameters()
                    {
                        Amount      = 1000,
                        CompanyID   = c.ID,
                        CountryID   = c.Region.CountryID,
                        Price       = 1,
                        ProductType = productType,
                        Quality     = 1
                    });
                }
                trs.Complete();
            }

            AddSuccess("Stupid companies completed");
            return(RedirectBack());
        }
示例#18
0
 public CoinMarketCap(CurrencyTypeEnum type)
 {
     CurrencyType = type;
 }
示例#19
0
 public bool HaveMoney(int walletID, CurrencyTypeEnum currency, double amount)
 {
     return(context.WalletMoneys
            .Any(wm => wm.CurrencyID == (int)currency && wm.Amount >= (decimal)amount && wm.WalletID == walletID));
 }
示例#20
0
 public MoneyViewModel(CurrencyTypeEnum currency, decimal quantity)
     : this((int)currency, quantity)
 {
 }
示例#21
0
        //TODO: CURRENCY SWITCH IN THE MIDDLE OF THE ROUND?
        public UserBet MakeBet(long roundId, IDictionary <long, long> roundCounters, object betData, CurrencyTypeEnum currency, decimal amount, string comment)
        {
            CurrentRoundId = roundId;
            var     serializedBetData = betData.SerializeJSON();
            UserBet userBet;

            lock (betLocker)
            {
                IDictionary <string, UserBet> roundBets;
                if (!userBets.TryGetValue(roundId, out roundBets))
                {
                    userBets.Add(roundId, roundBets = new Dictionary <string, UserBet>());
                }

                if (!roundBets.TryGetValue(serializedBetData, out userBet))
                {
                    if (!roundCounters.ContainsKey(roundId))
                    {
                        roundCounters.Add(roundId, 0);
                    }

                    roundBets.Add(serializedBetData, userBet = new UserBet
                    {
                        BetData  = betData,
                        Currency = currency,
                        Amount   = amount,
                        Comment  = comment,
                        BetId    = ++roundCounters[roundId]
                    });
                }
                else
                {
                    userBet         = roundBets[serializedBetData];
                    userBet.Amount += amount;
                    userBet.Comment = comment;
                }
            }

            return(userBet);
        }
示例#22
0
        public UserInfo(ScriptedGameContext context, string sessionId, long userId, long accountId, long casinoId, string externalSessionId, string externalSessionIp, string clientId, string locale, CurrencyTypeEnum currency, string nick, string clientType, IDictionary <string, object> features)
        {
            this.context      = context;
            this.sessionId    = sessionId;
            UserId            = userId;
            CasinoId          = casinoId;
            ExternalSessionId = externalSessionId;
            ExternalSessionIp = externalSessionIp;
            this.clientId     = clientId;
            UserNick          = nick;
            AccountId         = accountId;
            ClientType        = clientType;
            this.features     = features;
            this.locale       = new LocaleInfo(locale, currency);

            ExternalId = Guid.NewGuid().ToString().Replace("-", String.Empty).ToLower();

            if (userId != 0)
            {
                isLoggedIn = true;
            }

            if (isPlayingForFun)
            {
                Balance = FUN_BALANCE;
            }
        }
示例#23
0
 public static WalletMoney GetMoney(this Wallet wallet, CurrencyTypeEnum currencyType, IEnumerable <Currency> currencies)
 {
     return(wallet.GetMoney((int)currencyType, currencies));
 }
示例#24
0
        private static Currency GetCurrensyByEnum(CurrencyTypeEnum currencyEnum)
        {
            var listCurr = GetCollectionXpObj <Currency>();

            return(listCurr.FirstOrDefault(curr => curr.Name.ToLower() == currencyEnum.ToString()));
        }