// Method to delete an article by its ID public void deleteArticleByID(int idArticleToDelete) { if (searchArticleById(idArticleToDelete)) { if (headArticle.Article.IdArticle == idArticleToDelete) { headArticle.Next.Previous = null; headArticle = headArticle.Next; } else { ArticleNode tmp = headArticle; while (tmp.Next.Article.IdArticle != idArticleToDelete) { tmp = tmp.Next; } ArticleNode next = tmp.Next.Next; next.Previous = tmp; tmp.Next = next; } } else { Console.WriteLine("The article to be deleted cannot be found in the system."); } }
// Method to add a new article to the list public bool addArticle(Article articleData) { if (articleData == null) { return(false); } if (headArticle == null) { headArticle = new ArticleNode(); headArticle.Article = articleData; } else { if (searchArticleById(articleData.IdArticle) == false) { ArticleNode tmp = getLastNode(); ArticleNode newNode = new ArticleNode(); newNode.Article = articleData; newNode.Previous = tmp; tmp.Next = newNode; return(true); } else { Console.WriteLine("The article is already registered in the system."); } } return(false); }
// Method to get the last node in the list public ArticleNode getLastNode() { ArticleNode tmp = null; if (this.HeadArticle != null) { tmp = this.HeadArticle; while (tmp.Next != null) { tmp = tmp.Next; } } return(tmp); }
// Method to obtain the total value of the items in the list public Double totalValue() { Double count = 0; if (!(headArticle == null)) { ArticleNode tmp = headArticle; while (tmp != null) { count += tmp.Article.TotalPrice; tmp = tmp.Next; } } return(count); }
/*=========================================METHODS================================*/ // Method to get the size of the list public int getSize() { ArticleNode tmp = null; int count = 0; if (this.HeadArticle != null) { tmp = this.HeadArticle; while (tmp.Next != null) { count++; tmp = tmp.Next; } } return(count); }
// Method to show all the elements of the list for invoice public void listArticlesByInvoice() { if (!(headArticle == null)) { ArticleNode tmp = headArticle; while (tmp != null) { tmp.Article.itemStatusByInvoice(); tmp = tmp.Next; } } else { Console.WriteLine("This invoice is empty."); } }
// Method to show all elements of the list public void listArticles() { if (!(headArticle == null)) { ArticleNode tmp = headArticle; while (tmp != null) { tmp.Article.showArticleStatus(); tmp = tmp.Next; } } else { Console.WriteLine("The article list is empty"); } }
// Method to edit the data of an article by its ID public void editArticleByID(int idArticleToEdit, ArticleNode editedArticle) { if (searchArticleById(idArticleToEdit)) { ArticleNode tmp = headArticle; while (tmp.Article.IdArticle != idArticleToEdit) { tmp = tmp.Next; } tmp.Article.NameArticle = editedArticle.Article.NameArticle; tmp.Article.Stock = editedArticle.Article.Stock; tmp.Article.Price = editedArticle.Article.Price; } else { Console.WriteLine("The article to be edited cannot be found in the system."); } }
// Parameters to edit an article static ArticleNode editArticle() { Console.WriteLine("Enter the ID of the article to edit:"); Console.WriteLine("Article Id:"); int id = Int32.Parse(Console.ReadLine()); Console.WriteLine("Enter the new data for this article..."); Console.WriteLine("Article Name:"); String name = Console.ReadLine(); Console.WriteLine("Stock Item:"); int stock = Int32.Parse(Console.ReadLine()); Console.WriteLine("Item Price:"); Double price = Double.Parse(Console.ReadLine()); ArticleNode article = new ArticleNode(new Article(id, name, stock, price)); return(article);; }
// Method to search for an article in the list by its id public bool searchArticleById(int idArticleSearch) { bool found = false; if (!(headArticle == null)) { ArticleNode tmp = headArticle; while (tmp != null && found != true) { if (idArticleSearch == tmp.Article.IdArticle) { found = true; } else { tmp = tmp.Next; } } } return(found); }
// Method to return an article by its name public ArticleNode returnArticleByName(string nameArticleToReturn) { ArticleNode tmp = null; int count = 0; if (!(headArticle == null)) { if (searchArticleByName(nameArticleToReturn) == true) { tmp = this.HeadArticle; while (count < getSize() && !(tmp.Article.NameArticle == nameArticleToReturn)) { tmp = tmp.Next; } } else { Console.WriteLine("The client is not registered in the system."); } } return(tmp); }
//Constructors public ArticleList() { headArticle = null; }
public ArticleList(ArticleNode headArticle) { this.headArticle = headArticle; }
static void Main(string[] args) { // Customer default data Customer customer1 = new Customer(1, "Juan", 3216573456); Customer customer2 = new Customer(2, "Pepito", 3218764865); Customer customer3 = new Customer(3, "Marco", 3146578934); Customer customer4 = new Customer(4, "Andres", 3135555567); Customer customer5 = new Customer(5, "Sandro", 3203217676); //Article default data Article article1 = new Article(1, "Celular Huawey", 13, 450000.00); Article article2 = new Article(2, "Televisor Samsung", 7, 1050000.00); Article article3 = new Article(3, "Equipo de Sonido LG", 5, 600000.00); Article article4 = new Article(4, "Celular Iphone X", 5, 3500000.00); Article article5 = new Article(5, "Celular Moto G7", 16, 750000.0); // Fill customers list with default data customerList.addCustomer(customer1); customerList.addCustomer(customer2); customerList.addCustomer(customer3); customerList.addCustomer(customer4); customerList.addCustomer(customer5); // Fill articles list with default data articleList.addArticle(article1); articleList.addArticle(article2); articleList.addArticle(article3); articleList.addArticle(article4); articleList.addArticle(article5); //Menu de opciones para el sistema int value; do { Console.WriteLine("1- List clients."); Console.WriteLine("2- List articles."); Console.WriteLine("3- Add a new client to the system."); Console.WriteLine("4- Add a new article to the system."); Console.WriteLine("5- Edit customer data."); Console.WriteLine("6- Edit the data of an article."); Console.WriteLine("7- Delete a client."); Console.WriteLine("8- Delete an article."); Console.WriteLine("9- List Invoices."); Console.WriteLine("10- Add a new invoice to the system."); Console.WriteLine("11- List the invoices of a customer."); Console.WriteLine("0- EXIT"); Console.WriteLine("Please select an option:"); value = Convert.ToInt32(Console.ReadLine()); switch (value) { case 1: customerList.listCustomers(); break; case 2: articleList.listArticles(); break; case 3: Customer customer = loadCustomer(); customerList.addCustomer(customer); break; case 4: Article article = loadArticle(); articleList.addArticle(article); break; case 5: CustomerNode customerEdit = editCustomer(); customerList.editCustomerByID(customerEdit.Customer.IdCustomer, customerEdit); break; case 6: ArticleNode articleEdit = editArticle(); articleList.editArticleByID(articleEdit.Article.IdArticle, articleEdit); break; case 7: deleteCustomer(customerList); break; case 8: deleteArticle(articleList); break; case 9: invoiceList.listInvoices(); break; case 10: Invoice invoice = loadInvoice(); invoiceList.addInvoice(invoice); break; case 11: invoiceList.listInvoicesByCustomer(invoiceListByCustomer()); break; } Console.Write("Press any key to continue . . ."); Console.ReadKey(); Console.Clear(); } while (value != 0); }
//Constructors public ArticleNode() { article = new Article(); next = previous = null; }