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(); }