public void TestGetBanknots4()
        {
            var terminal = new BankTerminal()
            {
                BanknotsLimit   = 1000,
                RequiredSum     = 500,
                DefaultNominal  = false,
                PreferedNominal = 1000
            };

            terminal.AddBanknots(100, 5);
            terminal.AddBanknots(500, 1);
            terminal.GetBanknotsGreedy();
            var primer = new ObservableCollection <int> {
            };

            CustomAssert.AreEqual(primer, terminal.BanknotsOut);
        }
 public void TestWrongNominalException()
 {
     try
     {
         var terminal = new BankTerminal()
         {
             BanknotsLimit   = 5,
             RequiredSum     = 100,
             DefaultNominal  = false,
             PreferedNominal = 800
         };
         terminal.GetBanknotsGreedy();
         Assert.IsTrue(false);
     }
     catch (MyException e)
     {
         bool res = (e.Message == "Required nominal doesn't exist.");
         Assert.IsTrue(res);
     }
 }
 public void TestWrongSumException()
 {
     try
     {
         var terminal = new BankTerminal()
         {
             BanknotsLimit   = 5,
             RequiredSum     = -100,
             DefaultNominal  = false,
             PreferedNominal = 1000
         };
         terminal.GetBanknotsGreedy();
         Assert.IsTrue(false);
     }
     catch (MyException e)
     {
         bool res = (e.Message == "The sum must be a strictly positive number");
         Assert.IsTrue(res);
     }
 }
        public void TestBanknotsLimitException()
        {
            var terminal = new BankTerminal()
            {
                BanknotsLimit   = 5,
                RequiredSum     = 500,
                DefaultNominal  = false,
                PreferedNominal = 1000
            };

            terminal.AddBanknots(100, 5);
            try
            {
                terminal.AddBanknots(500, 1);
                Assert.IsTrue(false);;
            }
            catch (MyException e)
            {
                bool res = (e.Message == "Not enough space in terminal!");
                Assert.IsTrue(res);
            }
        }
示例#5
0
        public void Init(Action <string, string> pSetBarCode, Action <double, bool> pSetWeight, Action <double, bool> pSetControlWeight, Action <StatusEquipment> pActionStatus = null)
        {
            var config = Config("appsettings.json");

            State = eStateEquipment.Init;
            try
            {
                //Scaner
                var ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Scaner).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.MagellanScaner:
                    ElEquipment.Equipment = new MagellanScaner(config, null, pSetBarCode);
                    break;

                case eModelEquipment.VirtualScaner:
                    ElEquipment.Equipment = new VirtualScaner(config, null, pSetBarCode);
                    break;

                default:
                    ElEquipment.Equipment = new Scaner(config);
                    break;
                }
                Scaner = (Scaner)ElEquipment.Equipment;

                //Scale
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Scale).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.MagellanScale:
                    ElEquipment.Equipment = new MagellanScale(((MagellanScaner)Scaner).Magellan9300, pSetWeight);
                    break;

                case eModelEquipment.VirtualScale:
                    ElEquipment.Equipment = new VirtualScale(config, null, pSetWeight);
                    break;

                default:
                    ElEquipment.Equipment = new Scale(config);
                    break;
                }
                Scale = (Scale)ElEquipment.Equipment;

                //ControlScale
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.ControlScale).First();
                if (ElEquipment.Model == eModelEquipment.ScaleModern)
                {
                    ElEquipment.Equipment = new ScaleModern(config, null, pSetControlWeight);
                }
                else
                {
                    ElEquipment.Equipment = new Scale(config);
                };
                ControlScale = (Scale)ElEquipment.Equipment;

                //Flag
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.Signal).First();
                if (ElEquipment.Model == eModelEquipment.SignalFlagModern)
                {
                    ElEquipment.Equipment = new SignalFlagModern(config);
                }
                else
                {
                    ElEquipment.Equipment = new SignalFlag(config);
                }
                Signal = (SignalFlag)ElEquipment.Equipment;

                //Bank Pos Terminal
                foreach (var el in GetBankTerminal)
                {
                    ElEquipment = el;

                    switch (ElEquipment.Model)
                    {
                    case eModelEquipment.Ingenico:
                        ElEquipment.Equipment = new IngenicoH(config, null, PosStatus);
                        break;

                    case eModelEquipment.VirtualBankPOS:
                        ElEquipment.Equipment = new VirtualBankPOS(config, null, PosStatus);
                        break;

                    default:
                        ElEquipment.Equipment = new BankTerminal(config);
                        break;
                    }
                    Terminal = (BankTerminal)ElEquipment.Equipment;
                }

                //RRO
                ElEquipment = ListEquipment.Where(e => e.Type == eTypeEquipment.RRO).First();
                switch (ElEquipment.Model)
                {
                case eModelEquipment.ExellioFP:
                    ElEquipment.Equipment = new Equipments.ExellioFP(config, null);
                    break;

                case eModelEquipment.pRRO_SG:
                    ElEquipment.Equipment = new pRRO_SG(config, null, pActionStatus);
                    break;

                case eModelEquipment.pRRo_WebCheck:
                    ElEquipment.Equipment = new pRRO_WebCheck(config, null, pActionStatus);
                    break;

                case eModelEquipment.Maria:
                    ElEquipment.Equipment = new RRO_Maria(config, null, pActionStatus);
                    break;

                case eModelEquipment.VirtualRRO:
                    ElEquipment.Equipment = new VirtualRRO(config, null, pActionStatus);
                    break;

                default:
                    ElEquipment.Equipment = new Rro(config);
                    break;
                }
                RRO = (Rro)ElEquipment.Equipment;

                State = eStateEquipment.Ok;

                foreach (var el in  ListEquipment)
                {
                    el.Equipment.SetState += (pStateEquipment, pModelEquipment) => { SetStatus?.Invoke(new StatusEquipment()
                        {
                            ModelEquipment = pModelEquipment, State = (int)pStateEquipment, TextState = $""
                        }); };
                }
            }
            catch (Exception e)
            {
                FileLogger.WriteLogMessage($"EquipmentFront Exception => Message=>{e.Message}{Environment.NewLine}StackTrace=>{e.StackTrace}", eTypeLog.Error);
                State = eStateEquipment.Error;
            }
        }
示例#6
0
 public void SetBankTerminal(BankTerminal pBT)
 {
     Terminal = pBT;
 }