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); } }
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) } }); } }
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); } }
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"); }
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> >()); } }
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>()); } }
/// <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); } }
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); }