Пример #1
0
 public void OnBlockClick(Block block)
 {
     CurrentBlock = block;
     BuildingPanel.SetActive(true);
     if (block.Building != null)
     {
         DestroyButton.SetActive(true);
         BuildButton.SetActive(false);
         TabsHolder.SetActive(false);
     }
     else
     {
         DestroyButton.SetActive(false);
         BuildButton.SetActive(true);
         TabsHolder.SetActive(true);
     }
     CurrentBlock.transform.position += Vector3.up / 2;
 }
Пример #2
0
        private async Task AddTabAsync(List <apiWrapper.AlphaVantageApiWrapper.ApiParam> pars, string name)
        {
            if (pars == null)
            {
                throw new ArgumentNullException(nameof(pars));
            }

            var root = await apiWrapper.AlphaVantageApiWrapper.GetTechnical(pars, "A903Z1G7NAB6A551");

            var title = pars[1].ParamValue;

            var isNewTabSymbol = !TabsHolder.GetInstance(aggregator).Items.Any((t) => t.Name.Equals(title));
            var tabSymbol      = TabsHolder.GetInstance(aggregator).Items.Where((t) => t.Name.Equals(title)).FirstOrDefault() ?? (new TabItemSymbol(title));

            var isNewTabPlot = !tabSymbol.Tabs.Any((t) => t.Name.Equals(name));
            var tabPlot      = tabSymbol.Tabs.Where((t) => t.Name.Equals(name)).FirstOrDefault() ?? (new TabItemPlot(name)); //new TabItemPlot(pars.Count > 3 ? pars[2].ParamValue : " - - - ");

            var data = new List <DataPoint>();

            var ix = 0;

            foreach (var t in root.TechnicalsByDate)
            {
                //var start = "";

                //var ddd = t.Data.Aggregate(start, (a, b) => a + b.TechnicalKey + "->" + b.TechnicalValue);
                //Console.WriteLine(t.Date + ":" + ddd);

                foreach (var v in t.Data)
                {
                    if (v.TechnicalKey.Equals("1. open"))
                    {
                        data.Add(new DataPoint(t.Date.Ticks, v.TechnicalValue));
                    }
                }
                ix++;
            }

            if (isNewTabPlot)
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    tabSymbol.Tabs.Add(tabPlot);
                });
            }

            if (isNewTabSymbol)
            {
                Application.Current.Dispatcher.Invoke(() =>
                {
                    Tabs.Add(tabSymbol);
                });
            }

            var series = new OxyPlot.Series.LineSeries();

            series.Points.AddRange(data);

            if (tabPlot.Model.Series.Any())
            {
                tabPlot.Model.Series.Clear();
            }
            tabPlot.Model.Series.Add(series);
            TabsHolder.GetInstance(aggregator).Items = Tabs;

            //await Task.Yield();


            tabPlot.Model.InvalidatePlot(true);
        }