/// <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."); }
/// <summary> /// /// </summary> /// <returns></returns> private static ReportCounterManager <LocationCounter> CreateLocations() { ReportCounterManager <LocationCounter> locationTotals = new ReportCounterManager <LocationCounter>(); List <FirstExampleType> firstExampleList = Stats.FirstExampleIOController.GetInstance().GetFirstExampleListLocation(); firstExampleList = firstExampleList.OrderBy(loc => loc.Item).ToList(); foreach (FirstExampleType location in firstExampleList) { locationTotals.AddNewCounter( new LocationCounter( location.Item)); } return(locationTotals); }
/// ---------- ---------- ---------- ---------- ---------- ---------- /// <name>runYearReportForSingleCls</name> /// <date>15/09/13</date> /// <summary> /// Run a report based on a cls. It counts all the locations for /// the cls across all records. /// </summary> /// <param name="cls">cls name</param> /// <param name="fullList">full list of locations</param> /// <returns>is successful</returns> /// ---------- ---------- ---------- ---------- ---------- ---------- public static ReportCounterManager <LocationCounter> RunReportForASingleClass( IGroupsAndClassesIOController groupsAndClassesIoController, string cls, bool fullList, string year = "") { string faultMessage; string writeName; // Set up paths. string basePath = BasePathReader.GetBasePath(); ReportCounterManager <LocationCounter> locationTotals = new ReportCounterManager <LocationCounter>(); List <FirstExampleType> firstExampleList = Stats.FirstExampleIOController.GetInstance().GetFirstExampleListLocation(); firstExampleList = firstExampleList.OrderBy(loc => loc.Item).ToList(); foreach (FirstExampleType location in firstExampleList) { locationTotals.AddNewCounter( new LocationCounter( location.Item)); } if (string.IsNullOrEmpty(year)) { //writeName = $"{cls}_Report_{DateTime.Now.ToString(ReportFactoryCommon.DatePattern)}.csv"; //faultMessage = "ReportBuilder: Failed to write General Cls Report."; string[] dirNamesArray = System.IO.Directory.GetDirectories( $"{basePath}{StaticResources.baPath}"); // 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.UpdateLocationsForYear( groupsAndClassesIoController, dirName, locationTotals, cls); } } else { //writeName = $"{cls}_Report_{year}_{DateTime.Now.ToString(ReportFactoryCommon.DatePattern)}.csv"; //faultMessage = $"ReportBuilder: Failed to write Single Year {year} Cls Report."; ClassReportFactory.UpdateLocationsForYear( groupsAndClassesIoController, year, locationTotals, cls); } if (!fullList) { locationTotals.RemoveEmptyClasses(); } return(locationTotals); //locationTotals.WriteCSVFile( // writeName, // faultMessage); }