static void Main(string[] args) { var employees = new List <IEmployee>(); var jobs = new JobArrayList(); string inputLine; while ((inputLine = Console.ReadLine()) != "End") { string[] commandArgs = inputLine.Split(); switch (commandArgs[0]) { case "Job": AddJob(employees, jobs, commandArgs); break; case "StandardEmployee": case "PartTimeEmployee": AddEmployee(commandArgs, employees); break; case "Pass": PassWeek(jobs); break; case "Status": PrintJobs(jobs); break; } } }
private static void PrintJobs(JobArrayList jobs) { foreach (Job job in jobs) { Console.WriteLine(job); } }
private static void AddJob(List <IEmployee> employees, JobArrayList jobs, string[] commandArgs) { string jobName = commandArgs[1]; int jobWorkHoursRequired = int.Parse(commandArgs[2]); string employeeName = commandArgs[3]; IEmployee cemployee = employees.First(e => e.Name == employeeName); var job = new Job(jobName, jobWorkHoursRequired, cemployee); jobs.AddJob(job); }
private static void PassWeek(JobArrayList jobs) { int length = jobs.Count; int index = 0; int currentJobsCount = jobs.Count; for (int counter = 0; counter < length; counter++) { var currentJob = (Job)jobs[index]; currentJob.Update(); if (currentJobsCount == jobs.Count) { index++; } else { currentJobsCount--; } } }