public (DepartmentVisitStatus, List <List <int> >) Query(int deptId)
        {
            if (deptId < 1 || deptId > deptCount)
            {
                throw new ArgumentException("Department ID should be within the [1; deptCount] range");
            }

            DepartmentVisitStatus visitStatus  = DepartmentVisitStatus.Unvisited;
            List <List <int> >    uniqueVisits = null;

            List <string> record = dao.GetDeptRecord(deptId);

            visitStatus = (DepartmentVisitStatus)Enum.Parse(typeof(DepartmentVisitStatus), record[0]);

            uniqueVisits = new List <List <int> >();
            for (int i = 1; i < record.Count; ++i)
            {
                List <int> uniqueVisit = new List <int>();

                string line = record[i];
                for (int j = 0; j < line.Length; ++j)
                {
                    if (line[j] == '1')
                    {
                        uniqueVisit.Add(j + 1);
                    }
                }

                uniqueVisits.Add(uniqueVisit);
            }

            return(visitStatus, uniqueVisits);
        }
Example #2
0
 internal void FinalizeDeptRecord(int deptId, DepartmentVisitStatus visitStatus, List <string> visitRecords)
 {
     try
     {
         using (StreamWriter sw = new StreamWriter(GetDeptFilename(deptId), false))
         {
             sw.WriteLine(visitStatus.ToString());
             foreach (string line in visitRecords)
             {
                 sw.WriteLine(line);
             }
         }
     }
     catch (Exception e)
     {
         Console.WriteLine("The file could not be written:");
         Console.WriteLine(e.Message);
     }
 }