Пример #1
0
        private void ResetChart(int days)
        {
            var flag = 0;

            if (FuelVisible)
            {
                flag = 1;
            }
            if (AmmoVisible)
            {
                flag = 1;
            }
            if (SteelVisible)
            {
                flag = 1;
            }
            if (BauxiteVisible)
            {
                flag = 1;
            }
            if (RepairBucketVisible)
            {
                flag = 1;
            }
            if (InstantConstructionVisible)
            {
                flag = 1;
            }
            if (DevelopmentMaterialVisible)
            {
                flag = 1;
            }
            if (ImprovementMaterialVisible)
            {
                flag = 1;
            }

            if (flag == 0)
            {
                return;
            }
            if (ResourceList == null || ResourceList.Count() == 0)
            {
                return;
            }

            var _ElementToDraw = new List <int>();

            if (FuelVisible)
            {
                _ElementToDraw.Add(1);
            }
            if (AmmoVisible)
            {
                _ElementToDraw.Add(2);
            }
            if (SteelVisible)
            {
                _ElementToDraw.Add(3);
            }
            if (BauxiteVisible)
            {
                _ElementToDraw.Add(4);
            }
            if (RepairBucketVisible)
            {
                _ElementToDraw.Add(5);
            }
            if (InstantConstructionVisible)
            {
                _ElementToDraw.Add(7);
            }
            if (DevelopmentMaterialVisible)
            {
                _ElementToDraw.Add(6);
            }
            if (ImprovementMaterialVisible)
            {
                _ElementToDraw.Add(8);
            }

            DateTime endTime   = DateTime.Now;
            DateTime beginTime = endTime.Subtract(new TimeSpan(days, 0, 0, 0));

            var Data     = ResourceList.Where(x => x.Date >= beginTime && x.Date <= endTime);
            var renderer = new GraphRenderer();

            // Measure Min and Max
            int _YMin1 = int.MaxValue, _YMax1 = -1;
            int _YMin2 = int.MaxValue, _YMax2 = -1;

            foreach (var type in _ElementToDraw)
            {
                if (type >= 1 && type <= 4)
                {
                    _YMin1 = Math.Min(_YMin1, Data.Select(x => renderer.ElementValue(type, x)).Min());
                    _YMax1 = Math.Max(_YMax1, Data.Select(x => renderer.ElementValue(type, x)).Max());
                }
                else
                {
                    _YMin2 = Math.Min(_YMin2, Data.Select(x => renderer.ElementValue(type, x)).Min());
                    _YMax2 = Math.Max(_YMax2, Data.Select(x => renderer.ElementValue(type, x)).Max());
                }
            }

            _YMin1 -= (int)Math.Pow(10, Math.Floor(Math.Log10(_YMax1)));
            _YMax1 += (int)Math.Pow(10, Math.Floor(Math.Log10(_YMax1)));
            _YMin2 -= (int)Math.Pow(10, Math.Floor(Math.Log10(_YMax2)));
            _YMax2 += (int)Math.Pow(10, Math.Floor(Math.Log10(_YMax2)));

            _YMax1 = Math.Min(_YMax1, 305000);
            _YMin1 = Math.Max(0, _YMin1);
            _YMax2 = Math.Min(_YMax2, 305000);
            _YMin2 = Math.Max(0, _YMin2);

            YMin1 = _YMin1;
            YMax1 = _YMax1;
            YMin2 = _YMin2;
            YMax2 = _YMax2;

            BeginDate = beginTime;
            EndDate   = endTime;

            ElementToDraw1 = _ElementToDraw.Where(x => x <= 4).ToArray();
            ElementToDraw2 = _ElementToDraw.Where(x => x > 4).ToArray();
        }