Exemple #1
0
        public void produceRoomTimetable()
        {
            int position = 0, hour = 1, count = 0;
            //string moduleFullName, moduleShortName, roomName, lecturerName = "", startPosition, endPosition;
            WebpageTermTimetable ttDetails = new WebpageTermTimetable();

            SavingAndReading data          = new SavingAndReading();
            //data.ReadSystemList();

            string docName = "TimetableTemplate.xlsx";
            //var workbook = new XLWorkbook(docName);
            //var ws = workbook.Worksheet(1);

            List <Room> tempRoomList = new List <Room>();

            data.ReadRoomFile("room.xml");
            tempRoomList = SystemList.RoomsList;
            data.ReadSystemList();



            //start to select each object from roomsList and print details
            foreach (Room e1 in SystemList.RoomsList)
            {
                var workbook = new XLWorkbook(docName);
                var ws       = workbook.Worksheet(1);
                //if (e1.RoomName == tempRoomList[count].RoomName)
                {
                    subHeader = e1.RoomName;

                    for (int i = 0; i < 5; i++)
                    {
                        for (int j = 0; j < 9; j++)
                        {
                            if (e1.TtDimensionArray[i][j].HasSubject == true)
                            {
                                position  = e1.TtDimensionArray[i][j].TermTTListPosition;
                                ttDetails = SystemList.TermTimetableList[position];

                                var moduleFullName  = ttDetails.ModuleFullName;
                                var moduleShortName = ttDetails.ModuleShortName;
                                var roomName        = ttDetails.RoomName;
                                var lecturerName    = findLecturerName(ttDetails.LecturerID);
                                hour = ttDetails.EndHour - ttDetails.StartHour;
                                //start inserting details for each timetable


                                //ProduceTT ptt = new ProduceTT();

                                //change the subHeader
                                insertTextToSubHeader(roomName, ws);

                                var startPosition = string.Format("{0}{1}", (char)(j + 66), (i + 4));
                                var endPosition   = string.Format("{0}{1}", (char)(j + 66 + hour - 1), (i + 4));
                                //if a module over one hour then merge the cells
                                if (hour > 1)
                                {
                                    mergeCells(startPosition, endPosition, ws);

                                    insertDetailsToCells(moduleFullName, moduleShortName, lecturerName, ws, startPosition, endPosition);
                                }
                                else
                                {
                                    insertDetailsToCells(moduleFullName, moduleShortName, lecturerName, ws, startPosition, endPosition);
                                }
                            }
                        }
                        createFolder();
                        string path = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Timetable System");

                        workbook.SaveAs(path + "\\Timetable\\" + e1.RoomName + ".xlsx");
                    }
                    colorSelectionList.Clear();
                    count++;
                }
            }
        }