Example #1
0
        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);
        }
Example #2
0
        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);
        }