/// <summary> /// Run a cls report based on the year. It counts the number of /// each cls for each month in the given year. /// </summary> /// <param name="year">current year</param> /// <param name="fullList">fullList</param> /// <returns>is successful</returns> public static ReportCounterManager <YearCounter> RunYearReportForAllCls( IGroupsAndClassesIOController groupsAndClassesIoController, string year, bool fullList) { ReportCounterManager <YearCounter> classTotals = new ReportCounterManager <YearCounter>(); List <GroupsType> groupsList = groupsAndClassesIoController.LoadFile(); foreach (GroupsType group in groupsList) { classTotals.AddNewCounter(new YearCounter(group.Name)); } //string writeName = $"ClsReport_{year}_{DateTime.Now.ToString(ReportFactoryCommon.DatePattern)}.csv"; //string faultMessage = $"ReportBuilder: Failed to write Annual Cls Report for {year}."; ClassReportFactory.UpdateClassesForYear( classTotals, groupsList, year); if (!fullList) { classTotals.RemoveEmptyClasses(); } return(classTotals); //classTotals.WriteCSVFile( // writeName, // faultMessage); }
/// <summary> /// Run a general class report. /// This provides the count for each class across all records. /// </summary> /// <param name="fullList"> /// return a full list of locations or just none zero ones. /// </param> /// <returns>success flag</returns> public static ReportCounterManager <ClassCounter> RunGeneralReportForAllCls( IGroupsAndClassesIOController groupsAndClassesIoController, bool fullList) { // Set up paths. string basePath = BasePathReader.GetBasePath(); string[] dirNamesArray = System.IO.Directory.GetDirectories( $"{basePath}{StaticResources.baPath}"); // Load the groups and set up the report class with an entry for each group. List <GroupsType> groupsList = groupsAndClassesIoController.LoadFile(); ReportCounterManager <ClassCounter> classTotals = new ReportCounterManager <ClassCounter>(); foreach (GroupsType group in groupsList) { classTotals.AddNewCounter( new ClassCounter( group.Name)); } // Loop through all paths. for (int directoryIndex = 0; directoryIndex < dirNamesArray.Count(); ++directoryIndex) { // get directory name from the path and convert it into it's integer value. string dirName = dirNamesArray[directoryIndex].Substring( dirNamesArray[directoryIndex].LastIndexOf('\\') + 1); ClassReportFactory.UpdateClassesForYear( classTotals, groupsList, dirName); } if (!fullList) { classTotals.RemoveEmptyClasses(); } return(classTotals); //classTotals.WriteCSVFile( // $"ClsReport_Gen_{DateTime.Now.ToString(ReportFactoryCommon.DatePattern)}.csv", // "ReportBuilder: Failed to write General Cls Report."); }