Пример #1
0
        public static List <Shift> InitShift()
        {
            String Path = AlgorithmRunner.RealPath("Shift");

            if (File.Exists(Path))
            {
                return(JsonConvert.DeserializeObject <List <Shift> >(File.ReadAllText(Path)));
            }
            else
            {
                List <Shift> aShift = new List <Shift>();
                for (int i = 0; i < InputHelper.Options.NumDate; i++)
                {
                    for (int j = 0; j < InputHelper.Options.Times.Count; j++)
                    {
                        DateTime ShiftTime = InputHelper.Options.StartDate.AddDays(i)
                                             .AddHours(InputHelper.Options.Times[j].Hour)
                                             .AddMinutes(InputHelper.Options.Times[j].Minute);
                        aShift.Add(new Shift()
                        {
                            IsBusy = (ShiftTime.DayOfWeek == DayOfWeek.Sunday), Time = ShiftTime
                        });
                    }
                }
                return(aShift);
            }
        }
Пример #2
0
        public static Options InitOptions()
        {
            String OptionsPath = AlgorithmRunner.RealPath("Options");

            if (File.Exists(OptionsPath))
            {
                return(JsonConvert.DeserializeObject <Options>(File.ReadAllText(OptionsPath)));
            }
            else
            {
                return(new Options()
                {
                    StartDate = DateTime.Now.Date,
                    NumDate = 100,
                    DateMin = 1,
                    ShiftTime = 120,
                    MinStudent = 10,
                    Times = new List <DateTime>()
                    {
                        DateTime.Now.Date.AddHours(7).AddMinutes(15),
                        DateTime.Now.Date.AddHours(9).AddMinutes(30),
                        DateTime.Now.Date.AddHours(13),
                        DateTime.Now.Date.AddHours(15).AddMinutes(15)
                    }
                });
            }
        }
Пример #3
0
        public static List <RoomList> InitRooms()
        {
            String Path = AlgorithmRunner.RealPath("Rooms");

            if (File.Exists(Path))
            {
                return(JsonConvert.DeserializeObject <List <RoomList> >(File.ReadAllText(Path)));
            }
            else
            {
                List <RoomList> aRoomList = new List <RoomList>();
                List <Room>     Rooms     = db.phongs.Where(p => p.SucChua > 0).Select(m => new Room()
                {
                    RoomID    = m.MaPhong,
                    Container = (int)m.SucChua,
                    IsBusy    = false
                }).ToList();
                for (int i = 0; i < Options.NumDate; i++)
                {
                    DateTime ShiftTime = Options.StartDate.AddDays(i);
                    for (int j = 0; j < Options.Times.Count; j++)
                    {
                        aRoomList.Add(new RoomList()
                        {
                            Rooms = new List <Room>(Rooms), Time = ShiftTime + Options.Times[j].TimeOfDay
                        });
                    }
                }
                return(aRoomList);
            }
        }
Пример #4
0
 public static void Begin(int[,] oldAdjacencyMatrix, int beginI)
 {
     AdjacencyMatrixSize = AlgorithmRunner.AdjacencyMatrixSize;
     AdjacencyMatrix     = oldAdjacencyMatrix;
     for (i = beginI; i < AdjacencyMatrixSize; i++)
     {
         for (j = i + 1; j < AdjacencyMatrixSize; j++)
         {
             //ProgressHelper.CreateMatrixInfo = (1 + i) + "/" + (1 + j);
             //ProgressHelper.pbCreateMatrix = 100 * (i * AdjacencyMatrixSize + j) / (AdjacencyMatrixSize * AdjacencyMatrixSize);
             AlgorithmRunner.SaveOBJ("Status", "inf Đang phân tích dữ liệu (" + (1 + i) + "/" + (1 + j) + ")...");
             AdjacencyMatrix[i, j] = AdjacencyMatrix[j, i] = CheckGroups(AlgorithmRunner.Groups[i], AlgorithmRunner.Groups[j]);
         }
         if (Stop)
         {
             //AlgorithmRunner.SaveOBJ("AdjacencyMatrix", AdjacencyMatrix);
             WriteAdjacencyMatrix(AdjacencyMatrix, AlgorithmRunner.RealPath("AdjacencyMatrix"));
             AlgorithmRunner.SaveOBJ("BeginI", i + 1);
             AlgorithmRunner.Clear();
             Stoped = true;
             Environment.Exit(0);
             return;
         }
     }
     WriteAdjacencyMatrix(AdjacencyMatrix, AlgorithmRunner.RealPath("AdjacencyMatrix"));
     AlgorithmRunner.DeleteOBJ("BeginI");
 }
Пример #5
0
        public static Dictionary <String, List <String> > InitIgnoreStudents()
        {
            String Path = AlgorithmRunner.RealPath("IgnoreStudents");

            if (File.Exists(Path))
            {
                return(JsonConvert.DeserializeObject <Dictionary <String, List <String> > >(File.ReadAllText(Path)));
            }
            else
            {
                return(new Dictionary <String, List <String> >());
            }
        }
Пример #6
0
        public static List <Priority> InitSubjectPriority()
        {
            String Path = AlgorithmRunner.RealPath("SubjectPriority");

            if (File.Exists(Path))
            {
                return(JsonConvert.DeserializeObject <List <Priority> >(File.ReadAllText(Path)));
            }
            else
            {
                return(new List <Priority>());
            }
        }
Пример #7
0
        /// <summary>
        /// tạo danh sách phòng thi, nếu có file rồi thì đọc từ file còn ko thì tạo file
        /// </summary>
        /// <returns></returns>
        public static List <RoomList> InitRooms()
        {
            String Path = AlgorithmRunner.RealPath("Rooms");

            if (File.Exists(Path))
            {
                //List<RoomList> RoomsTemp = JsonConvert.DeserializeObject<List<RoomList>>(File.ReadAllText(Path));

                //var room = (from r in InputHelper.db.This
                //            select new
                //            {
                //                r.MaPhong,
                //                r.CaThi.GioThi
                //            }).Distinct();

                //foreach (var r in room)
                //    RoomsTemp.Find(m => m.Time == r.GioThi).Rooms.RemoveAt(RoomsTemp.Find(m => m.Time == r.GioThi).Rooms.FindIndex(p => p.RoomID == r.MaPhong));

                //return RoomsTemp;
                return(JsonConvert.DeserializeObject <List <RoomList> >(File.ReadAllText(Path)));
            }
            else
            {
                List <RoomList> aRoomList = new List <RoomList>();
                List <Room>     Rooms     = db.phongs.Where(p => p.SucChua > 0).Select(m => new Room()
                {
                    RoomID    = m.MaPhong,
                    Container = (int)m.SucChua,
                    IsBusy    = false
                }).ToList();
                for (int i = 0; i < Options.NumDate; i++)
                {
                    DateTime ShiftTime = Options.StartDate.AddDays(i);
                    for (int j = 0; j < Options.Times.Count; j++)
                    {
                        aRoomList.Add(new RoomList()
                        {
                            Rooms = new List <Room>(Rooms), Time = ShiftTime + Options.Times[j].TimeOfDay
                        });
                    }
                }
                InputHelper.Rooms = aRoomList;
                AlgorithmRunner.SaveOBJ("Rooms", InputHelper.Rooms);
                return(aRoomList);
            }
        }
Пример #8
0
        public static Dictionary <String, Group> InitGroups()
        {
            String GroupFile = AlgorithmRunner.RealPath("Groups");
            Dictionary <String, Group> aGroups = File.Exists(GroupFile) ?
                                                 JsonConvert.DeserializeObject <Dictionary <String, Group> >(File.ReadAllText(GroupFile)) :
                                                 (from m in db.monhocs
                                                  join d in db.pdkmhs on m.MaMonHoc equals d.MaMonHoc
                                                  select new Group()
            {
                MaMonHoc = m.MaMonHoc,
                TenMonHoc = m.TenMonHoc,
                TenBoMon = m.bomon.TenBoMon,
                TenKhoa = m.bomon.khoa.TenKhoa,
                Nhom = d.Nhom,
                SoLuongDK = d.nhom1.SoLuongDK,
                GroupID = 1,
                IsIgnored = false
            })
                                                 .Distinct()
                                                 .ToDictionary(k => (k.MaMonHoc + "_" + k.Nhom), k => k);

            return(aGroups);
        }