Beispiel #1
0
    void RenderMarketName(NicheType nicheType)
    {
        var industryType = Markets.GetIndustry(nicheType, Q);


        var hasCompany          = Companies.HasCompanyOnMarket(MyCompany, nicheType, Q);
        var isInterestingMarket = MyCompany.companyFocus.Niches.Contains(nicheType);

        var marketColorName = Colors.COLOR_MARKET_ATTITUDE_NOT_INTERESTED;

        if (hasCompany)
        {
            marketColorName = Colors.COLOR_MARKET_ATTITUDE_HAS_COMPANY;
        }
        else if (isInterestingMarket)
        {
            marketColorName = Colors.COLOR_MARKET_ATTITUDE_FOCUS_ONLY;
        }


        bool isOurIndustry     = MyCompany.companyFocus.Industries.Contains(industryType);
        var  industryColorName = isOurIndustry ? Colors.COLOR_MARKET_ATTITUDE_HAS_COMPANY : Colors.COLOR_MARKET_ATTITUDE_NOT_INTERESTED;


        var coloredMarket   = Visuals.Colorize(Enums.GetFormattedNicheName(nicheType), marketColorName);
        var coloredIndustry = Visuals.Colorize(Enums.GetFormattedIndustryName(industryType), industryColorName);

        NicheName.text = $"{coloredMarket}\n<i>{coloredIndustry}</i>";
    }
    void Render()
    {
        var industry = ScreenUtils.GetSelectedIndustry(Q);
        var niches   = Markets.GetObservableNichesInIndustry(industry, Q);

        GetComponent <NicheListView>().SetItems(niches);
    }
Beispiel #3
0
        /// <summary>
        /// Fetch symbols, market ids and exchanger's information
        /// </summary>
        /// <param name="args">Add additional attributes for each exchange</param>
        /// <returns></returns>
        public override async ValueTask <Markets> FetchMarkets(Dictionary <string, object> args = null)
        {
            var _result = new Markets();

            publicClient.ExchangeInfo.ApiCallWait(TradeType.Public);
            {
                var _markets = new List <MarketItem>()
                {
                    new MarketItem()
                    {
                        symbol = "btc_jpy", baseId = "btc", quoteId = "jpy"
                    },                                                                        // the only real pair
                    //new MarketItem() { symbol= "eth_jpy", baseId= "eth", quoteId= "jpy" },
                    //new MarketItem() { symbol= "etc_jpy", baseId= "etc", quoteId= "jpy" },
                    //new MarketItem() { symbol= "dao_jpy", baseId= "dao", quoteId= "jpy" },
                    //new MarketItem() { symbol= "lsk_jpy", baseId= "lsk", quoteId= "jpy" },
                    //new MarketItem() { symbol= "fct_jpy", baseId= "fct", quoteId= "jpy" },
                    //new MarketItem() { symbol= "xmr_jpy", baseId= "xmr", quoteId= "jpy" },
                    //new MarketItem() { symbol= "rep_jpy", baseId= "rep", quoteId= "jpy" },
                    //new MarketItem() { symbol= "xrp_jpy", baseId= "xrp", quoteId= "jpy" },
                    //new MarketItem() { symbol= "zec_jpy", baseId= "zec", quoteId= "jpy" },
                    //new MarketItem() { symbol= "xem_jpy", baseId= "xem", quoteId= "jpy" },
                    //new MarketItem() { symbol= "ltc_jpy", baseId= "ltc", quoteId= "jpy" },
                    //new MarketItem() { symbol= "dash_jpy", baseId= "dash", quoteId= "jpy" },
                    //new MarketItem() { symbol= "eth_btc", baseId= "eth", quoteId= "btc" },
                    //new MarketItem() { symbol= "etc_btc", baseId= "etc", quoteId= "btc" },
                    //new MarketItem() { symbol= "lsk_btc", baseId= "lsk", quoteId= "btc" },
                    //new MarketItem() { symbol= "fct_btc", baseId= "fct", quoteId= "btc" },
                    //new MarketItem() { symbol= "xmr_btc", baseId= "xmr", quoteId= "btc" },
                    //new MarketItem() { symbol= "rep_btc", baseId= "rep", quoteId= "btc" },
                    //new MarketItem() { symbol= "xrp_btc", baseId= "xrp", quoteId= "btc" },
                    //new MarketItem() { symbol= "zec_btc", baseId= "zec", quoteId= "btc" },
                    //new MarketItem() { symbol= "xem_btc", baseId= "xem", quoteId= "btc" },
                    //new MarketItem() { symbol= "ltc_btc", baseId= "ltc", quoteId= "btc" },
                    //new MarketItem() { symbol= "dash_btc", baseId= "dash", quoteId= "btc" },
                };

                _markets.ForEach((m) =>
                {
                    var _base_name  = publicClient.ExchangeInfo.GetCommonCurrencyName(m.baseId);
                    var _quote_name = publicClient.ExchangeInfo.GetCommonCurrencyName(m.quoteId);

                    m.baseName  = _base_name;
                    m.quoteName = _quote_name;

                    m.marketId = _base_name + "/" + _quote_name;
                    m.active   = true;
                });

                _result.result = _markets.ToDictionary(m => m.marketId, m => m as IMarketItem);

                var _json_result = publicClient.GetResponseMessage();
                {
                    _result.SetResult(_json_result);
                }
            }

            return(await Task.FromResult(_result));
        }
Beispiel #4
0
        /// <summary>
        /// Fetch symbols, market ids and exchanger's information
        /// </summary>
        /// <param name="args">Add additional attributes for each exchange</param>
        /// <returns></returns>
        public override async Task <Markets> FetchMarkets(Dictionary <string, object> args = null)
        {
            var _result = new Markets();

            publicClient.ExchangeInfo.ApiCallWait(TradeType.Public);
            {
                var _params = publicClient.MergeParamsAndArgs(args);

                var _json_value = await publicClient.CallApiGet1Async("/v1/markets", _params);

#if DEBUG
                _result.rawJson = _json_value.Content;
#endif
                var _json_result = publicClient.GetResponseMessage(_json_value.Response);
                if (_json_result.success == true)
                {
                    var _markets = publicClient.DeserializeObject <Dictionary <string, ZMarketItem> >(_json_value.Content);

                    foreach (var _market in _markets)
                    {
                        var _m = _market.Value;

                        var _split_symbol = _market.Key.Split('_');

                        _m.symbol = _market.Key;

                        _m.baseId  = _split_symbol[0];
                        _m.quoteId = _split_symbol[1];

                        _m.baseName  = publicClient.ExchangeInfo.GetCommonCurrencyName(_m.baseId);
                        _m.quoteName = publicClient.ExchangeInfo.GetCommonCurrencyName(_m.quoteId);

                        _m.marketId = _m.baseName + "/" + _m.quoteName;

                        _m.lot    = (decimal)Math.Pow(10.0, -_m.precision.quantity);
                        _m.active = true;

                        _m.limits.quantity.min = (decimal)Math.Pow(10.0, -_m.precision.quantity);
                        _m.limits.quantity.max = decimal.MaxValue;
                        _m.limits.price.min    = (decimal)Math.Pow(10.0, -_m.precision.price);
                        _m.limits.price.max    = decimal.MaxValue;

                        _m.limits.amount = new MarketMinMax
                        {
                            min = _m.limits.quantity.min * _m.limits.price.min,
                            max = decimal.MaxValue
                        };

                        _m.precision.amount = _m.precision.price * _m.precision.quantity;

                        _result.result.Add(_m.marketId, _m);
                    }
                }

                _result.SetResult(_json_result);
            }

            return(_result);
        }
Beispiel #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            Markets market = db.Markets.Find(id);

            db.Markets.Remove(market);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
    public override string RenderValue()
    {
        var product = SelectedCompany;

        var cost = Markets.GetClientAcquisitionCost(product.product.Niche, Q) * 1000;

        return(cost.ToString("0.0") + "$");
    }
    public override void ViewRender()
    {
        base.ViewRender();

        var perspectiveNiches = Markets.GetPerspectiveAdjacentNiches(Q, MyCompany);

        SetItems(perspectiveNiches);
    }
Beispiel #8
0
    public override bool HideIf()
    {
        var niche = Markets.Get(Q, SelectedNiche);

        var isResearching = Cooldowns.HasTask(Q, new CompanyTaskExploreMarket(SelectedNiche));

        return(niche.hasResearch || isResearching);
    }
Beispiel #9
0
    public override bool Condition()
    {
        var niche = Markets.GetNiche(Q, SelectedNiche);

        // or there are no companies

        return(niche.hasResearch && Markets.GetCompetitorsAmount(SelectedNiche, Q) > 0);
    }
    public override void ViewRender()
    {
        base.ViewRender();

        var funds = Markets.GetFinancialStructuresWithSameInterests(Q, MyCompany);

        SetItems(funds.ToArray());
    }
Beispiel #11
0
        internal static void ExploreMarket(CompanyTask task, GameContext gameContext)
        {
            var nicheType = (task as CompanyTaskExploreMarket).NicheType;

            var niche = Markets.Get(gameContext, nicheType);

            niche.AddResearch(1);
        }
    public override void ViewRender()
    {
        base.ViewRender();

        var rating = Markets.GetMarketRating(Q, SelectedNiche);

        GetComponent <SetAmountOfStars>().SetStars(rating);
    }
Beispiel #13
0
        public bool ReadConfigure()
        {
            Markets market = (Markets)Enum.Parse(typeof(Markets), "zhCN", true);

            feed = new Feed(market, "RAA", "DataPro");
            feed.LastBuildTime = DateTime.UtcNow;
            return(true);
        }
Beispiel #14
0
    public void SetIndustry(IndustryType industry, InputField Input)
    {
        var niches = Markets.GetPlayableNichesInIndustry(industry, Q).Where(m => Markets.IsAppropriateStartNiche(m, Q)).ToArray();
        var index  = Random.Range(0, niches.Count());
        var niche  = niches[index].niche.NicheType;

        SetNiche(niche, Input);
    }
Beispiel #15
0
    void CalculateROI(GameEntity company)
    {
        // calculate ROI
        var allChannels = Markets.GetAllMarketingChannels(Q);

        maxROI = allChannels.Max(c => Marketing.GetChannelCostPerUser(company, c.marketingChannel.ChannelInfo.ID));
        minROI = allChannels.Min(c => Marketing.GetChannelCostPerUser(company, c.marketingChannel.ChannelInfo.ID));
    }
    public override void ViewRender()
    {
        base.ViewRender();

        var players = Markets.GetProductsOnMarket(Q, SelectedNiche).OrderByDescending(p => Marketing.GetClients(p));

        SetItems(players.ToArray());
    }
Beispiel #17
0
    public void SetEntity(GameEntity c, bool darkImage)
    {
        company         = c;
        EnableDarkTheme = darkImage;

        bool hasControl = Companies.GetControlInCompany(MyCompany, c, Q) > 0;

        Name.text  = c.company.Name; // .Substring(0, 1);
        Name.color = Visuals.GetColorFromString(hasControl ? Colors.COLOR_CONTROL : Colors.COLOR_NEUTRAL);
        SetEmblemColor();

        LinkToProjectView.CompanyId = c.company.Id;
        ShowProductChanges.SetEntity(company);


        var isRelatedToPlayer = Companies.IsRelatedToPlayer(Q, c);

        ConceptProgress.SetCompanyId(c.company.Id);
        //ConceptProgress.gameObject.SetActive(isRelatedToPlayer);

        CompanyHint.SetHint(GetCompanyHint(hasControl));

        var clients = Marketing.GetClients(company);

        Concept.text = Format.Minify(clients); // Products.GetProductLevel(c) + "LVL";

        var position = Markets.GetPositionOnMarket(Q, company);

        PositionOnMarket.text = $"#{position + 1}";
        var level = Products.GetProductLevel(company);

        PositionOnMarket.text = $"{level}LVL";


        Dumping.SetCompanyId(c.company.Id);

        if (Profitability != null)
        {
            var profit = Economy.GetProfit(Q, company.company.Id);

            var  marketShare = Companies.GetMarketShareOfCompanyMultipliedByHundred(c, Q);
            var  shareChange = 1;
            bool isGrowing   = Companies.IsCompanyGrowing(company, Q);

            //Profitability.text = Visuals.DescribeValueWithText(shareChange, marketShare + "%", marketShare + "%", "");
            Profitability.text = Visuals.Colorize(marketShare + "%", isGrowing);
            Profitability.text = Visuals.Positive(marketShare + "%");
            //Profitability.GetComponent<Hint>().SetHint(
            //    profit > 0 ?
            //    Visuals.Positive($"This company is profitable!\nProfit: +{Format.Money(profit)}") :
            //    Visuals.Negative($"This company loses {Format.Money(-profit)} each month!")
            //    );
        }

        var financing = Economy.GetMarketingFinancing(company);

        AggressiveMarketing.SetActive(financing == Products.GetMaxFinancing);
    }
    protected override void Execute(List <GameEntity> entities)
    {
        var niches = Markets.GetNiches(gameContext);

        foreach (var n in niches)
        {
            CheckMarket(n);
        }
    }
    public void AddMarket(Resource resource)
    {
        Market market = new Market(resource);

        Markets.Add(resource.Type, market);
        market.AssignTown(this);

        AddResource(resource);
    }
    private static void RemoveTechLeaders(GameEntity product, GameContext gameContext)
    {
        var players = Markets.GetProductsOnMarket(gameContext, product).ToArray();

        foreach (var p in players)
        {
            p.isTechnologyLeader = false;
        }
    }
Beispiel #21
0
    protected override void Execute(List <GameEntity> entities)
    {
        GameEntity[] niches = Markets.GetNiches(gameContext);

        foreach (var niche in niches)
        {
            Markets.FillMarket(niche, gameContext);
        }
    }
        // always positive or equal to zero
        public static int GetDifferenceBetweenMarketDemandAndAppConcept(GameEntity product, GameContext gameContext)
        {
            var niche = Markets.Get(gameContext, product.product.Niche);

            var demand = GetMarketDemand(niche);
            var level  = GetProductLevel(product);

            return(demand - level);
        }
        public static bool IsInInvestorsSphereOfInfluence(GameEntity shareholder, GameEntity company)
        {
            if (!company.hasProduct)
            {
                return(Markets.IsShareSameInterests(company, shareholder));
            }

            return(shareholder.companyFocus.Niches.Contains(company.product.Niche));
        }
    void Render()
    {
        var industries = Markets.GetIndustries(Q);

        for (var i = 0; i < industries.Length; i++)
        {
            RenderIndustry(industries[i].industry.IndustryType, i, industries.Length);
        }
    }
Beispiel #25
0
    public override void ViewRender()
    {
        base.ViewRender();

        bool show = Markets.IsExploredMarket(Q, SelectedNiche) && MyCompany.isWantsToExpand;

        GetComponent <LinkTo>().enabled = show;
        GetComponent <Text>().text      = show ? Visuals.Link("Market Info") : "";
    }
Beispiel #26
0
    private void OnEnable()
    {
        amountOfNichesSqrt = Mathf.Sqrt(Markets.GetNiches(Q).Length);

        X = X0;
        Y = Y0;

        RedrawMap();
    }
Beispiel #27
0
        private static Markets SetMarketInactive(Markets markets)
        {
            foreach (Market market in markets.MarketList)
            {
                market.Active = false;
            }

            return(markets);
        }
Beispiel #28
0
        //----------------------------------------------------------------------------------

        protected static Markets SetMarketActive(Markets markets)
        {
            foreach (Market market in markets.MarketList)
            {
                market.Active = true;
            }

            return(markets);
        }
Beispiel #29
0
    public override string GetTitle(NotificationMessageTrendsChange message)
    {
        var nicheType = message.nicheType;
        var nicheName = Enums.GetFormattedNicheName(nicheType);

        var niche = Markets.Get(Q, nicheType);

        return(GetShortTitle(Markets.GetMarketState(niche), nicheName));
    }
Beispiel #30
0
    void AutoFillFocusNichesByIndustry(GameEntity company)
    {
        var niches = Markets.GetNichesInIndustry(company.companyFocus.Industries[0], Q);

        foreach (var n in niches)
        {
            Companies.AddFocusNiche(company, n.niche.NicheType, Q);
        }
    }
        /// <summary>Creates a new instance of MintPal API .NET's client service.</summary>
        /// <param name="publicApiKey">Your public API key.</param>
        /// <param name="privateApiKey">Your private API key.</param>
        public MintPalClient(string publicApiKey, string privateApiKey)
        {
            var apiWebClient = new ApiWebClient(Helper.ApiUrlBase);

            Authenticator = new Authenticator(apiWebClient, publicApiKey, privateApiKey);

            Markets = new Markets(apiWebClient);
            Trading = new Trading(apiWebClient);
            Wallet = new Wallet(apiWebClient);
        }
        /// <summary>Creates a new instance of Poloniex API .NET's client service.</summary>
        /// <param name="publicApiKey">Your public API key.</param>
        /// <param name="privateApiKey">Your private API key.</param>
        public PoloniexClient(string publicApiKey, string privateApiKey)
        {
            var apiWebClient = new ApiWebClient(Helper.ApiUrlHttpsBase);

            Authenticator = new Authenticator(apiWebClient, publicApiKey, privateApiKey);

            Markets = new Markets(apiWebClient);
            Trading = new Trading(apiWebClient);
            Wallet = new Wallet(apiWebClient);
            Live = new Live();
        }
 internal void Add(Markets market, bool isRealTime)
 {
     if (isRealTime)
     {
         this.realtime.Add(market);
     }
     else
     {
         this.delayed.Add(market);
     }
 }
Beispiel #34
0
    public void Builder()
    {
        var mark = new Markets(Html("http://reforum.ru/cpanel/realty/admin.html"));

        // Получаем исходный код всех страниц
        // создаем список страниц -> делаем проекцию для получения исходного кода страницы -> делаем выравнивание
        var query = mark.MarketsList
            .SelectMany(n => Enumerable.Range(1, n.Pages).Select((x, i) => Html(n.Url + (i + 1)))).ToList();
        // Делаем запрос на получение всех обратных сылок
        var q = query.AsParallel().SelectMany(n =>
        {
            var doc = new HtmlDocument();
            doc.LoadHtml(n);
            return
                doc.DocumentNode.SelectNodes(".//*[@id='realty_grid']//*[@class='lc_link_under_address']/a")
                    .Select(x => x.GetAttributeValue("href", ""));
        }).ToList();

        // Убираем дубли
        var noCopy = q.Distinct().ToList();

        // NOTE: указываем временной диапазон для csv файла
        // http://reforum.ru/cpanel/realty/statCsv.html?advertiserId=105699&AdvertAnalytics%5BdateFrom%5D=2015-08-01&AdvertAnalytics%5BdateTo%5D=2015-08-02
        //$"http://reforum.ru/cpanel/realty/statCsv.html?advertiserId=105699&AdvertAnalytics%5BdateFrom%5D={DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd")}&AdvertAnalytics%5BdateTo%5D={DateTime.Now.ToString("yyyy-MM-dd")}";

        //var csv =
        //    string.Format(
        //        "http://reforum.ru/cpanel/realty/statCsv.html?advertiserId=105699&AdvertAnalytics%5BdateFrom%5D={0}&AdvertAnalytics%5BdateTo%5D={1}",
        //        DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"));

        var csv =
            string.Format(
                "http://reforum.ru/cpanel/realty/statCsv.html?advertiserId=105699&AdvertAnalytics%5BdateFrom%5D={0}&AdvertAnalytics%5BdateTo%5D={1}",
                DateTime.Now.ToString("yyyy-MM-dd"), DateTime.Now.ToString("yyyy-MM-dd"));

        // Получаем csv
        var str = Html(csv);

        // Сопостовляем сылки пример
        // "http://spb.reforum.ru/flat/prodam-pyatikomnatnuyu-kvartiru-140542433.html"  по этому номеру 140542433 можно найти в csv всю необходимую инфу
        //100804131; 3318712; 2015-08-02; 3; 3
        // первая и последняя строка мусор нужно скипать
        /* Формат CSV файла:

        * 1) номер в сылки              100804131
        * 2) RequestId                  3318712                НЕ ВСЕГДА ЕСТЬ ПОЧЕМУ ТО!
        * 3) дата выбрасываем           2015-08-02
        * 4) Просмотры карточки         3
        * 5) Показы                     3

        */

        var report =
            str.Split(new[] {"\n"}, StringSplitOptions.RemoveEmptyEntries).Skip(1).Reverse().Skip(1).Select(n =>
            {
                var tmp = n.Split(';').ToArray();
                return new {Number = tmp[0], RequestId = tmp[1], visits = tmp[3]};
            }).ToArray();

        // Джойним cvs файл(почему то в нем есть дубликаты убираем их) с обратными сылками
        var result = noCopy
            .Join(report, x => string.Concat(x.Where(char.IsNumber)), y => y.Number, (x, y) => new
            {
                Id = y.RequestId,
                Url = x,
                CountView = y.visits
            }).GroupBy(n => n.Id).Select(n => n.First());

        // Создаем XDocumet
        xDocument = new XDocument(
            new XDeclaration(null, "utf-8", null),
            new XElement("Root",
                result.Select(
                    n =>
                        new XElement("Advert", new XElement("Id", n.Id), new XElement("Url", n.Url),
                            new XElement("CountView", n.CountView))
                    )));
    }