public void RemoveTicket(Enhancement ticket) { //Removes Enhancement from List for (int i = 0; i < enhancements.Count; i++) { if (enhancements[i].ticketID == ticket.ticketID) { enhancements.RemoveAt(i); } } logger.Info($"Enhancement ID {ticket.ticketID} Removed."); RewriteFile(); }
public void AddTicket(Enhancement ticket) { try { //Generate ticket ID ticket.ticketID = enhancements.Any() ? enhancements.Max(m => m.ticketID) + 1 : 1; //Add ticket to file StreamWriter sw = new StreamWriter(filePath, true); sw.WriteLine(ticket.ToString()); sw.Close(); //Add ticket to list enhancements.Add(ticket); logger.Info($"Ticket ID {ticket.ticketID} Added."); } catch (Exception ex) { logger.Error(ex.Message); } }
public TicketFile(string ticketFilePath) { filePath = ticketFilePath; bugs = new List <Bug>(); enhancements = new List <Enhancement>(); tasks = new List <Task>(); //Add tickets from data file to list try { StreamReader sr = new StreamReader(filePath); while (!sr.EndOfStream) { string line = sr.ReadLine(); string[] arr = line.Split(","); //Add ticket through data in arr if (arr.Count() == 8) { Bug ticket = new Bug() { ticketID = Int32.Parse(arr[0]), summary = arr[1], status = arr[2], priority = arr[3], submitter = arr[4], assigned = arr[5], watching = arr[6].Split("|").ToList <string>(), severity = arr[7] }; } else if (arr.Count() == 11) { Enhancement ticket = new Enhancement() { ticketID = Int32.Parse(arr[0]), summary = arr[1], status = arr[2], priority = arr[3], submitter = arr[4], assigned = arr[5], watching = arr[6].Split("|").ToList <string>(), software = arr[7], cost = Double.Parse(arr[8]), reason = arr[9], estimate = Double.Parse(arr[10]) }; } else if (arr.Count() == 9) { Task ticket = new Task() { ticketID = Int32.Parse(arr[0]), summary = arr[1], status = arr[2], priority = arr[3], submitter = arr[4], assigned = arr[5], watching = arr[6].Split("|").ToList <string>(), projectName = arr[7], duedate = DateTime.Parse(arr[8]) }; } } sr.Close(); logger.Info($"Tickets in file Bugs:{bugs.Count} Enhancements:{enhancements.Count} Tasks:{tasks.Count}."); } catch (Exception ex) { logger.Error(ex.Message); } }
static void Main(string[] args) { logger.Info("Program started"); //Initalize TicketFile ticketFile = new TicketFile(Directory.GetCurrentDirectory() + "\\Ticket.csv"); string choice; do { Console.WriteLine(); Console.WriteLine("1) View current tickets"); Console.WriteLine("2) Submit new ticket"); Console.WriteLine("3) Remove ticket"); //input choice = Console.ReadLine(); logger.Info("Program ended"); switch (choice) { case "1": if (ticketFile.bugs.Count > 0) { Console.Clear(); foreach (Bug t in ticketFile.bugs) { Console.WriteLine("----------------------"); Console.WriteLine(t.Display()); } } else { logger.Warn("No Bugs Available"); } if (ticketFile.enhancements.Count > 0) { Console.Clear(); foreach (Enhancement t in ticketFile.enhancements) { Console.WriteLine("----------------------"); Console.WriteLine(t.Display()); } } else { logger.Warn("No Enhancement Available"); } if (ticketFile.tasks.Count > 0) { Console.Clear(); foreach (Task t in ticketFile.tasks) { Console.WriteLine("----------------------"); Console.WriteLine(t.Display()); } } else { logger.Warn("No Tasks Available"); } break; case "2": Console.WriteLine("1)Bugs\n2)Enhancments\n3)Tasks"); Console.WriteLine("Select Ticket Group (Enter #):"); string submitChoice = Console.ReadLine(); if (submitChoice == "1") { var ticket = new Bug(); ticket.TicketSubmit(); ticketFile.AddTicket(ticket); } else if (submitChoice == "2") { var ticket = new Enhancement(); ticket.TicketSubmit(); ticketFile.AddTicket(ticket); } else if (submitChoice == "3") { var ticket = new Task(); ticket.TicketSubmit(); ticketFile.AddTicket(ticket); } break; case "3": Console.WriteLine("1)Bugs\n2)Enhancments\n3)Tasks"); Console.WriteLine("Select Ticket Group (Enter #):"); string group = Console.ReadLine(); switch (group) { case "1": if (ticketFile.bugs.Count > 0) { Console.WriteLine("Enter ticket ID to remove: "); int ticketID; if (!int.TryParse(Console.ReadLine(), out ticketID)) { logger.Error("ticketID not int"); } Bug ticket = new Bug(); ticket.ticketID = ticketID; ticketFile.RemoveTicket(ticket); } else { logger.Warn("No Bugs Available"); } break; case "2": if (ticketFile.enhancements.Count > 0) { Console.WriteLine("Enter ticket ID to remove: "); int ticketID; if (!int.TryParse(Console.ReadLine(), out ticketID)) { logger.Error("ticketID not int"); } Enhancement ticket = new Enhancement(); ticket.ticketID = ticketID; ticketFile.RemoveTicket(ticket); } else { logger.Warn("No Enhancements Available"); } break; case "3": if (ticketFile.tasks.Count > 0) { Console.WriteLine("Enter ticket ID to remove: "); int ticketID; if (!int.TryParse(Console.ReadLine(), out ticketID)) { logger.Error("ticketID not int"); } Task ticket = new Task(); ticket.ticketID = ticketID; ticketFile.RemoveTicket(ticket); } else { logger.Warn("No Tasks Available"); } break; } break; } }while(choice == "1" || choice == "2" || choice == "3"); }