Esempio n. 1
0
        /// <addBuyer>
        ///  This method takes from the console information for a new buyer.
        ///  (nickname, the nickname of an existing dealer)
        ///  It adds the new dealer to the database,
        ///  and assigns the new buyer to the dealer.
        /// </addBuyer>
        public void AddBuyer()
        {
            string nickname;
            string dNickname;
            int    dealerID;
            Dealer dealer;

            try
            {
                Dictionary <string, string> dict = CommandReader.AddBuyer();
                nickname  = dict["nickname"];
                dNickname = dict["dealerNickname"];

                if (nickname == "" || dNickname == "")
                {
                    throw new InvalidOperationException(ConstantStrings.Blank);
                }
                OutputPrinter.Connecting();

                List <string> nicknames = c.Buyers.Select(e => e.Nickname).ToList();

                if (nicknames.Contains(nickname))
                {
                    throw new InvalidOperationException(ConstantStrings.Buyer + $" with nickname '{nickname}' " + ConstantStrings.AlreadyExists);
                }

                try
                {
                    dealer   = c.Dealers.Single(e => e.Nickname == dNickname);
                    dealerID = dealer.Id;
                }
                catch (Exception)
                {
                    throw new InvalidOperationException(ConstantStrings.Dealer + $" with nickname '{nickname}' " + ConstantStrings.NotFound);
                }

                var buyer = new Buyer()
                {
                    Nickname = nickname,
                    DealerId = dealerID
                };
                Add(buyer);
                OutputPrinter.Done();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                OutputPrinter.InvalidCommand();
            }
        }