Exemplo n.º 1
0
        private static IdiotsKupon[] GetIdiotsKupons(IdiotKuponsProvider idiotsProvider, Kupon[] kupons, ref long start)
        {
            IdiotsKupon[] idiotsKupons = null;
            while (idiotsKupons == null)
            {
                try
                {
                    idiotsKupons = idiotsProvider.GetKupons();
                }
                catch
                {
                    var res = MessageBox.Show("Не удалось загрузить идиотские купоны. Попробовать еще раз?\r\nДа - еще одна попытка.\r\nНет - пропустить загрузку и продолжить работу без учета идиотских купонов.", "Ошибка", MessageBoxButton.YesNo, MessageBoxImage.Error);
                    if (res == MessageBoxResult.No)
                    {
                        return(null);
                    }
                }
            }

            if (idiotsKupons.Sum(x => x.Count) >= kupons.Length)
            {
                MessageBox.Show("Слишком много идиотских купонов и слишком мало обычных, попробуйте увеличить число купонов. Сейчас расчет произойдет без учета идиотских купонов.",
                                "Предупреждение", MessageBoxButton.OK, MessageBoxImage.Warning);
                return(null);
            }

            foreach (var idiot in idiotsKupons)
            {
                for (int i = 0; i < idiot.Count; i++)
                {
                    kupons[start] = new Kupon {
                        Cells = idiot.Cells
                    };
                    start++;
                }
            }
            return(idiotsKupons);
        }
Exemplo n.º 2
0
        private Kupon[] GetKupons(Kupon[][] superKupons, double[][][] kefs, IdiotKuponsProvider idiotsProvider, out bool needSupers, out double[][][] idiotKefs, out int idiotKuponsCount)
        {
            idiotKefs        = null;
            idiotKuponsCount = 0;

            var kupons = new Kupon[_kuponsCount];

            var supers = superKupons.SelectMany(i => i).ToArray();

            foreach (var super in supers)
            {
                super.MoneyWin = 0;
            }
            supers.CopyTo(kupons, 0);

            long start = supers.Length;

            needSupers = supers.Length > 0;

            if (idiotsProvider != null)
            {
                IdiotsKupon[] idiotsKupons = GetIdiotsKupons(idiotsProvider, kupons, ref start);
                if (idiotsKupons != null)
                {
                    idiotKefs = kefs = ChangeKefsForIdiots(kefs, idiotsKupons, out idiotKuponsCount);
                }
            }

            for (var i = start; i < _kuponsCount; i++)
            {
                kupons[i] = new Kupon
                {
                    Cells = GetRndArray(kefs, 1)
                };
            }
            return(kupons);
        }