private DataTable GenerateTasks(ClockTime startTime, ClockTime stopTime, ClockTimeInterval interval, List <DayOfWeek> IncludedDays) { DataTable task = GetTasksDataTable(); ClockTime clockTime = new ClockTime(); foreach (var day in IncludedDays) { clockTime.Hour = startTime.Hour; clockTime.Minute = startTime.Minute; while (clockTime != stopTime) { task.Rows.Add(day, clockTime.ToString(), null); clockTime.AddInterval(interval); } } return(task); }
private DataTable ExtractTask(DayOfWeek firstDay, ClockTime startTime, ClockTime stopTime, ClockTimeInterval interval, DataTable taskSample) { DataTable task = new DataTable(); #region columns definition List <string> IncludedDaysSample = (taskSample.AsEnumerable().Select(x => x["Task_Day"].ToString()).Distinct().ToList()); List <DayOfWeek> IncludedDays = IncludedDaysSample.ConvertAll(new Converter <string, DayOfWeek>(StringToDayOfWeek)); ChangeWeekDaysOrder(IncludedDays, firstDay); task.Columns.AddRange(IncludedDays.ConvertAll(new Converter <DayOfWeek, DataColumn>(DayOfWeekToDataColumn)).ToArray()); #endregion #region table values definition List <object> DataRowEquivalent = new List <object>(); ClockTime clockTime = new ClockTime(startTime.Hour, startTime.Minute); while (clockTime != stopTime) { DataRow[] dataRows = taskSample.Select($"Task_Time = '{clockTime.ToString()}'"); foreach (DataColumn dataColumn in task.Columns) { foreach (DataRow dataRow in dataRows) { if (dataColumn.ColumnName == dataRow["Task_Day"].ToString()) { DataRowEquivalent.Add(dataRow["TaskType_Name"]); break; } } } task.Rows.Add(DataRowEquivalent.ToArray()); DataRowEquivalent.Clear(); clockTime.AddInterval(interval); } #endregion return(task); }