public async Task <ObservableCollection <DrawNumberAndAverage> > GetDrawNumbersAndAveragesAsync(ObservableCollection <VikingLottoNumbers> lottoTask) { ObservableCollection <DrawNumberAndAverage> drawNumberAndAverages = new ObservableCollection <DrawNumberAndAverage>(); List <Task <DrawNumberAndAverage> > tasks = new List <Task <DrawNumberAndAverage> >(); int couner = 1; while (couner < 49) { CountersHolder countersHolder = new CountersHolder { Counter = couner }; tasks.Add(Task.Run(() => GettingNumber(lottoTask, drawNumberAndAverages, countersHolder.Counter))); couner++; } var result = await Task.WhenAll(tasks); foreach (var item in result) { drawNumberAndAverages.Add(item); } return(drawNumberAndAverages); }
private async Task <DrawSequenceVisualList> GetOneNumberPatternListAsync(ObservableCollection <VikingLottoNumbers> lottoTask, int num) { DrawSequenceVisualList sequenceVisualList = new DrawSequenceVisualList(); sequenceVisualList.NumList = new List <DrawNumber>(); int firstCountDetect = 0; int apearanceCounter = 0; int notDrawCounter = 0; List <Task <DrawNumber> > tasks = new List <Task <DrawNumber> >(); foreach (var item in lottoTask) { firstCountDetect++; if (item.NumCollection.Contains(num)) { if (num < 10) { apearanceCounter++; notDrawCounter = 0; } else { apearanceCounter++; notDrawCounter = 0; } } else { notDrawCounter++; } CountersHolder countersHolder = new CountersHolder() { FirstCountDetect = firstCountDetect, ApearanceCounter = apearanceCounter, NotDrawCounter = notDrawCounter }; tasks.Add(Task.Run(() => GetNumberApearance(num, sequenceVisualList, countersHolder, item))); } var results = await Task.WhenAll(tasks); foreach (var item in results) { sequenceVisualList.NumList.Add(item); } return(sequenceVisualList); }
/// <summary> /// Add number visualisation /// </summary> /// <param name="num"></param> /// <param name="sequenceVisualList"></param> /// <param name="countersHolder"></param> /// <param name="item"></param> /// <returns></returns> private static DrawNumber GetNumberApearance(int num, DrawSequenceVisualList sequenceVisualList, CountersHolder countersHolder, VikingLottoNumbers item) { DrawNumber drawNumber = new DrawNumber(); if (item.NumCollection.Contains(num)) { drawNumber.No = "Images/W_No/w" + num.ToString() + ".png"; } else { drawNumber.No = "Images/No/" + countersHolder.NotDrawCounter.ToString() + ".png"; } return(drawNumber); }