public ViewModelBase(USCurrencyRepo _repo)
 {
     repo = _repo;
     repo.Coins.CollectionChanged += Coins_CollectionChanged;
     SaveCommand = new BasicCommand(ExecuteCommandSave, CanExecuteCommandSave);
     path        = "DeafultPath";
 }
 public MakeChangeUC(USCurrencyRepo Repo)
 {
     InitializeComponent();
     vm = new MakeChangeUCViewModel(Repo);
     this.DataContext  = vm;
     Coins.ItemsSource = vm.Repo.Coins;
 }
        public void MakeChangeFromCurrencCoinsTests()
        {
            //Arrange
            USCurrencyRepo originalRepo = new USCurrencyRepo();
            USCurrencyRepo changeRepo   = new USCurrencyRepo();

            originalRepo.Coins.Add(new DollarCoin());
            originalRepo.Coins.Add(new HalfDollar());
            originalRepo.Coins.Add(new Quarter());
            originalRepo.Coins.Add(new Dime());
            originalRepo.Coins.Add(new Dime());
            originalRepo.Coins.Add(new Nickel());
            originalRepo.Coins.Add(new Penny());
            originalRepo.Coins.Add(new Penny());
            originalRepo.Coins.Add(new Penny());


            //Act
            changeRepo = (USCurrencyRepo)originalRepo.MakeChangeFromCurrentCoins(2.0);

            //Assert
            Assert.AreEqual(changeRepo.Coins.Count, 6);
            Assert.AreEqual(changeRepo.Coins[0].GetType(), new DollarCoin().GetType());
            Assert.AreEqual(changeRepo.Coins[1].GetType(), new HalfDollar().GetType());
            Assert.AreEqual(changeRepo.Coins[2].GetType(), new Quarter().GetType());
            Assert.AreEqual(changeRepo.Coins[3].GetType(), new Dime().GetType());
            Assert.AreEqual(changeRepo.Coins[4].GetType(), new Dime().GetType());
            Assert.AreEqual(changeRepo.Coins[5].GetType(), new Nickel().GetType());

            Assert.AreEqual(originalRepo.Coins.Count, 3);
            Assert.AreEqual(originalRepo.Coins[0].GetType(), new Penny().GetType());
            Assert.AreEqual(originalRepo.Coins[1].GetType(), new Penny().GetType());
            Assert.AreEqual(originalRepo.Coins[2].GetType(), new Penny().GetType());
        }
Exemplo n.º 4
0
 public RepoViewModel(USCurrencyRepo repo)
 {
     CurrentRepo = repo;
     SetCoinViews();
     RefreshCoinNames();
     CoinViews.CollectionChanged += new NotifyCollectionChangedEventHandler(RefreshCoinNames);
 }
 public RepoUCViewModel(USCurrencyRepo _repo) : base(_repo)
 {
     AddCommand  = new BasicCommand(ExecuteCommandAdd, CanExecuteCommandAdd);
     LoadCommand = new BasicCommand(ExecuteCommandLoad, CanExecuteCommandLoad);
     NewCommand  = new BasicCommand(ExecuteCommandNew, CanExecuteCommandNew);
     UpdateTotal();
 }
Exemplo n.º 6
0
 public RepoUC(USCurrencyRepo Repo)
 {
     InitializeComponent();
     vm = new RepoUCViewModel(Repo);
     this.DataContext = vm;
     Cb.ItemsSource   = USCurrencyRepo.CurrencyList;
 }
        private void LoadCommand()
        {
            SerializableCurrencyRepo loadedRepo = null;

            OpenFileDialog dialog = new OpenFileDialog();

            dialog.DefaultExt = ".bs";
            dialog.Filter     = $"{StaticInformation.FileExtensionName} Files (*{StaticInformation.FileExtension})|*{StaticInformation.FileExtension}";

            Nullable <bool> result = dialog.ShowDialog();

            if (result == true)
            {
                string filename = dialog.FileName;
                loadedRepo = SaveAndLoadUtility.Load <SerializableCurrencyRepo>(filename);

                USCurrencyRepo repo  = new USCurrencyRepo();
                List <ICoin>   coins = new List <ICoin>();
                foreach (SerializableCoin coin in loadedRepo.Coins)
                {
                    USCoin usCoin;
                    string name = coin.Name.Replace("US ", "");
                    switch (name)
                    {
                    case "Penny":
                        usCoin = new Penny();
                        break;

                    case "Nickel":
                        usCoin = new Nickel();
                        break;

                    case "Dime":
                        usCoin = new Dime();
                        break;

                    case "Quarter":
                        usCoin = new Quarter();
                        break;

                    case "Half Dollar":
                        usCoin = new HalfDollar();
                        break;

                    case "Dollar Coin":
                        usCoin = new DollarCoin();
                        break;

                    default:
                        usCoin = new Penny();
                        break;
                    }

                    coins.Add(usCoin);
                }

                StaticInformation.MainRepo.Coins = coins;
                RefreshAll();
            }
        }
 public MakeChangeViewModel(USCurrencyRepo repo, RepoViewModel repoView)
 {
     usRepo            = repo;
     RepoViewModel     = repoView;
     MakeChangeCommand = new BaseCommand(MakeChange);
     SaveCommand       = new BaseCommand(Save);
 }
Exemplo n.º 9
0
        public MainWindow()
        {
            InitializeComponent();
            USCurrencyRepo repo = new USCurrencyRepo();

            viewRepo         = new WPFUSCurrencyRepo(repo);
            this.DataContext = viewRepo;
        }
Exemplo n.º 10
0
        public MainWindow()
        {
            InitializeComponent();
            USCurrencyRepo repo = new USCurrencyRepo();

            repository       = new WPFUSCurrencyRepo(repo);
            this.DataContext = repository;
        }
Exemplo n.º 11
0
 // GET: USCurrencyLibrary
 public ActionResult Index(double?amount)
 {
     if (amount == null)
     {
         return(View(UsCurrencyRepo));
     }
     UsCurrencyRepo = (USCurrencyRepo)UsCurrencyRepo.MakeChange((double)amount);
     return(View(UsCurrencyRepo));
 }
Exemplo n.º 12
0
 public MainWindow()
 {
     InitializeComponent();
     repo = new USCurrencyRepo()
     {
         Coins = new List <ICoin> {
             new Penny(), new Quarter(), new Dime(), new Nickel(), new HalfDollar(), new DollarCoin()
         }
     };
 }
Exemplo n.º 13
0
        public RepoViewModel(USCurrencyRepo repo)
        {
            this.repository  = repo;
            addCoinCommand   = new AddCoinCommand(AddCoins);
            coinsForComboBox = new ObservableCollection <ICoin>(USCurrencyRepo.GetCoinList());
            CoinName         = coinsForComboBox.First().ToString();

            newCommand  = new NewCommand(NewRepo);
            openCommand = new OpenCommand(OpenRepo);
            saveCommand = new SaveCommand(SaveRepo);
        }
Exemplo n.º 14
0
        private void ResetRepo()
        {
            USCurrencyRepo _repo = new USCurrencyRepo();

            _repo.Coins = new List <ICoin> {
                new Penny(), new Quarter(), new Dime(), new Nickel(), new HalfDollar(), new DollarCoin()
            };
            repo.Coins.Clear();
            foreach (ICoin coin in _repo.Coins)
            {
                repo.Coins.Add(coin);
            }
        }
Exemplo n.º 15
0
        private void OpenRepo()
        {
            OpenFileDialog dialog = new OpenFileDialog();

            dialog.Filter = "Repository Files(*.repo)|*.repo";

            if (dialog.ShowDialog() == true)
            {
                SaveableUSCurrencyRepo repo = new SaveableUSCurrencyRepo();
                FilePath   = dialog.FileName;
                repository = repo.LoadRepo(FilePath);
                RaisePropertyChangedEvent("TotalValue");
            }
        }
Exemplo n.º 16
0
        public void Coins_For_ComboBoxCoins_Collections_AreSame()
        {
            //Arrange
            repo = new USCurrencyRepo();
            vm   = new RepoViewModel((USCurrencyRepo)repo);

            ObservableCollection <ICoin> testCoinsforcdCoins;

            //Act
            testCoinsforcdCoins = vm.CoinsForComboBox;
            var coinList = USCurrencyRepo.GetCoinList();

            //Assert
            CollectionAssert.AreEqual(coinList, testCoinsforcdCoins);
        }
        public void MakeChangeTests()
        {
            USCurrencyRepo c = new USCurrencyRepo();
            //Arrange
            USCurrencyRepo changeOneQuatersOnHalfDollar, changeTwoDollars, changeOneDollarOneHalfDoller,
                           changeOneDimeOnePenny, changeOneNickelOnePenny, changeFourPennies;


            //Act
            changeTwoDollars             = (USCurrencyRepo)c.CreateChange(2.0m);
            changeOneDollarOneHalfDoller = (USCurrencyRepo)c.CreateChange(1.5m);
            changeOneQuatersOnHalfDollar = (USCurrencyRepo)c.CreateChange(.75m);

            changeOneDimeOnePenny   = (USCurrencyRepo)c.CreateChange(.11m);
            changeOneNickelOnePenny = (USCurrencyRepo)c.CreateChange(.06m);
            changeFourPennies       = (USCurrencyRepo)c.CreateChange(.04m);


            //Assert
            Assert.AreEqual(changeTwoDollars.Coins.Count, 2);
            Assert.AreEqual(changeTwoDollars.Coins[0].GetType(), new DollarCoin().GetType());
            Assert.AreEqual(changeTwoDollars.Coins[1].GetType(), new DollarCoin().GetType());

            Assert.AreEqual(changeOneDollarOneHalfDoller.Coins.Count, 2);
            Assert.AreEqual(changeOneDollarOneHalfDoller.Coins[0].GetType(), new DollarCoin().GetType());
            Assert.AreEqual(changeOneDollarOneHalfDoller.Coins[1].GetType(), new HalfDollar().GetType());


            Assert.AreEqual(changeOneQuatersOnHalfDollar.Coins.Count, 2);
            Assert.AreEqual(changeOneQuatersOnHalfDollar.Coins[0].GetType(), new HalfDollar().GetType());
            Assert.AreEqual(changeOneQuatersOnHalfDollar.Coins[1].GetType(), new Quarter().GetType());

            Assert.AreEqual(changeOneDimeOnePenny.Coins.Count, 2);
            Assert.AreEqual(changeOneDimeOnePenny.Coins[0].GetType(), new Dime().GetType());
            Assert.AreEqual(changeOneDimeOnePenny.Coins[1].GetType(), new Penny().GetType());

            Assert.AreEqual(changeOneNickelOnePenny.Coins.Count, 2);
            Assert.AreEqual(changeOneNickelOnePenny.Coins[0].GetType(), new Nickel().GetType());
            Assert.AreEqual(changeOneNickelOnePenny.Coins[1].GetType(), new Penny().GetType());


            Assert.AreEqual(changeFourPennies.Coins.Count, 4);
            Assert.AreEqual(changeFourPennies.Coins[0].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[1].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[2].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[3].GetType(), new Penny().GetType());
        }
        public void ReduceSixPennies()
        {
            //Arrange
            ICurrencyRepo sixPennies, sixPenniesReduced;


            //Act
            sixPennies = new USCurrencyRepo();
            for (int i = 0; i < 6; i++)
            {
                sixPennies.AddCoin(new Penny());
            }
            sixPenniesReduced = sixPennies.Reduce();

            //Assert
            Assert.AreEqual(2, sixPenniesReduced.GetCoinCount());
        }
        public void ReduceNinePennies()
        {
            //Arrange
            ICurrencyRepo Pennies, PenniesReduced;
            double        initialValue, reducedValue;

            //Act
            Pennies = new USCurrencyRepo();
            for (int i = 0; i < 9; i++)
            {
                Pennies.AddCoin(new Penny());
            }

            initialValue   = Pennies.TotalValue();
            PenniesReduced = Pennies.Reduce();
            reducedValue   = Pennies.TotalValue();

            //Assert
            Assert.AreEqual(5, PenniesReduced.GetCoinCount());
            Assert.AreEqual(initialValue, reducedValue);
        }
        public void ReduceTwentySixPennies()
        {
            //Arrange
            ICurrencyRepo Coins, CoinsReduced;
            double        initialValue, reducedValue;

            //Act
            Coins = new USCurrencyRepo();
            for (int i = 0; i < 26; i++)
            {
                Coins.AddCoin(new Penny());
            }
            initialValue = Coins.TotalValue();
            CoinsReduced = Coins.Reduce();
            reducedValue = Coins.TotalValue();


            //Assert
            Assert.AreEqual(2, CoinsReduced.GetCoinCount());
            Assert.AreEqual((decimal)initialValue, (decimal)reducedValue);
        }
Exemplo n.º 21
0
 public MakeChangeWindow(USCurrencyRepo repo)
 {
     InitializeComponent();
     uc = new MakeChangeUC(repo);
     MainGrid.Children.Add(uc);
 }
Exemplo n.º 22
0
 public RepoWindow(USCurrencyRepo repo)
 {
     InitializeComponent();
     uc = new RepoUC(repo);
     MainGrid.Children.Add(uc);
 }
Exemplo n.º 23
0
 public MakeChangeUCVMTests()
 {
     repo = new USCurrencyRepo();
     repo.AddCoin(new Penny());
     mvm = new MakeChangeUCViewModel(repo);
 }
 public MakeChangeUCViewModel(USCurrencyRepo _repo) : base(_repo)
 {
     MakeChangeCommand = new BasicCommand(ExecuteCommandMakeChange, CanExecuteCommandMakeChange);
 }
Exemplo n.º 25
0
 public SaveableUSCurrencyRepo(USCurrencyRepo repo)
 {
     this.Coins = repo.Coins;
 }
Exemplo n.º 26
0
 public void MakeChange(double amount)
 {
     repository = (USCurrencyRepo)repository.MakeChange(amount);
     RaisePropertyChanged("Coins");
 }
Exemplo n.º 27
0
 public WPFUSCurrencyRepo(USCurrencyRepo repo)
 {
     repository = repo;
 }
Exemplo n.º 28
0
 public void MakeChange(decimal Amount)
 {
     repo = USCurrencyRepo.MakeChange(Amount);
 }
Exemplo n.º 29
0
 public RepoWindow(USCurrencyRepo repo)
 {
     InitializeComponent();
     viewModel = new RepoViewModel(repo);
 }
Exemplo n.º 30
0
 private void MakeChange()
 {
     repository = (USCurrencyRepo)repository.MakeChange(MoneyAmount);
     RaisePropertyChangedEvent("Coins");
 }