Пример #1
0
        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);
        }
Пример #2
0
        /// <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);
        }