/// <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(); } }