/// <summary>
        /// Münze einwerfen.
        /// Wurde zumindest der Produktpreis eingeworfen, Münzen in Depot übernehmen
        /// und für Order Retourgeld festlegen. Bestellung abschließen.
        /// </summary>
        /// <returns>true, wenn die Bestellung abgeschlossen ist</returns>
        public bool InsertCoin(Order order, int coinValue)
        {
            bool check = false;

            if (order.InsertCoin(coinValue))
            {
                _coinRepository.AddCoins(order._coins);
                order.FinishPayment(_coinRepository.GetAllCoins().OrderByDescending(c => c.CoinValue));
                _coinRepository.PayBackCoins(order._retourCoins);
                _orderRepository.AddOrderIntoDB(order);
                check = true;
            }

            return(check);
        }
Exemple #2
0
        public StringBuilder ChangeCoin(double change, Transaction transaction)
        {
            StringBuilder coinsString = new StringBuilder();

            List <Coin> coins = ICoinRepository.GetAllCoins();

            foreach (var coin in coins)
            {
                double calculation = Math.Floor(change / coin.Value);

                if (change == 0)
                {
                    break;
                }

                if (change / coin.Value >= 1)
                {
                    TransactionXCoin transactionXCoin = new TransactionXCoin();
                    coinsString.Append(" Moeda de " + coin.Value + " " + "= " + calculation);
                    change -= coin.Value * calculation;
                    change  = Math.Round(change, 2);

                    transactionXCoin.Coin        = coin;
                    transactionXCoin.Transaction = transaction;
                    transactionXCoin.Quantity    = Convert.ToInt32(calculation);

                    ITransactionXCoinRepository.InsertTransactionXCoin(transactionXCoin);
                }
            }

            return(coinsString);
        }
Exemple #3
0
        /// <summary>
        /// Münze einwerfen.
        /// Wurde zumindest der Produktpreis eingeworfen, Münzen in Depot übernehmen
        /// und für Order Retourgeld festlegen. Bestellug abschließen.
        /// </summary>
        /// <returns>true, wenn die Bestellung abgeschlossen ist</returns>
        public bool InsertCoin(Order order, int coinValue)
        {
            bool isFinished = false;

            if (order.InsertCoin(coinValue))
            {
                string[] parts = order.ThrownInCoinValues.Split(';');

                foreach (var item in parts)
                {
                    _coinRepository.AddCoin(Convert.ToInt32(item));
                }

                order.FinishPayment(_coinRepository.GetAllCoins());
                _orderRepository.UptadeOrder(order);
                isFinished = true;
            }
            return(isFinished);
        }
Exemple #4
0
 /// <summary>
 /// Gibt den aktuellen Inhalt der Kasse, sortiert nach Münzwert absteigend zurück
 /// </summary>
 /// <returns></returns>
 public IEnumerable <Coin> GetCoinDepot()
 {
     return(_coinRepository.GetAllCoins().OrderByDescending(c => c.CoinValue));
 }