public static Boolean importParishes(String filename) { CsvFileDescription inputFileDescription = new CsvFileDescription { SeparatorChar = ',', FirstLineHasColumnNames = true }; CsvContext cc = new CsvContext(); HousingContext hdb = new HousingContext(); IEnumerable<ParishCSV> csvparishes = cc.Read<ParishCSV>(filename, inputFileDescription); List<Parish> parishes = hdb.parishes.ToList(); foreach (ParishCSV parish in csvparishes) { if (!parishes.Where(x => x.name == parish.name && x.city == parish.city && x.state == parish.state).Any()) { hdb.parishes.Add(new Parish { name = parish.name, city = parish.city, state = parish.state, femaleChaperones = parish.femaleChaperones, maleChaperones = parish.maleChaperones, femaleStudents = parish.femaleStudents, maleStudents = parish.maleStudents }); } } hdb.SaveChanges(); return true; }
public static Boolean fitParishes(List<Parish> parishes, List<Campus> campuses, Guid matchIdentifier, Guid runID) { foreach (Parish p in parishes) { foreach (Campus c in campuses) { if (!(c.fitGroup(p, true) && c.fitGroup(p, false))) { break; } } } HousingContext hdb = new HousingContext(); foreach (Campus c in campuses) { foreach (Building b in c.buildings) { foreach (Floor f in b.floors) { foreach (Room r in f.rooms) { if (r.assignedTo == null) { continue; } hdb.temporaryAssignments.Add(new TemporaryAssignment { ParishID = r.assignedTo.ParishID, RoomID = r.RoomID, gender = b.gender, MatchIdentifier = matchIdentifier, runID = runID }); } } } } hdb.SaveChanges(); return true; }
public static Boolean importAdjacentRooms(String filename) { CsvFileDescription inputFileDescription = new CsvFileDescription { SeparatorChar = ',', FirstLineHasColumnNames = true }; CsvContext cc = new CsvContext(); HousingContext hdb = new HousingContext(); List<AdjacentRoomsCSV> csvadjacentRooms = cc.Read<AdjacentRoomsCSV>(filename, inputFileDescription).ToList(); List<Room> rooms = ( from room in hdb.rooms select room ).ToList(); foreach (AdjacentRoomsCSV csvRoom in csvadjacentRooms) { List<Room> adjacentRooms = new List<Room>(); foreach (Room r in rooms.Where( x => x.floor.level == csvRoom.FloorNumber && x.roomNumber == csvRoom.RoomNumber && x.floor.building.name == csvRoom.BuildingName && x.floor.building.campus.campusName == csvRoom.CampusName )) { adjacentRooms = ( from room in hdb.rooms where csvRoom.RoomNumber == r.roomNumber && csvRoom.AdjacentRoomNumber == room.roomNumber && csvRoom.FloorNumber == r.floor.level && room.FloorID == r.FloorID select room ).ToList(); if (adjacentRooms != null && adjacentRooms.Count > 0) { r.adjacentRooms.Add(adjacentRooms.First()); } } } hdb.SaveChanges(); return true; }
public static Boolean useFit(Guid matchID) { HousingContext hdb = new HousingContext(); List<TemporaryAssignment> tempAssignments = ( from t in hdb.temporaryAssignments where t.MatchIdentifier == matchID select t ).ToList(); foreach (Room r in hdb.rooms) { TemporaryAssignment temp = tempAssignments.Where(x => x.RoomID == r.RoomID).FirstOrDefault(); int? parishID = null; if (temp != null) { parishID = temp.ParishID; } Parish p = (from pa in hdb.parishes where parishID == pa.ParishID select pa).FirstOrDefault(); r.assignedTo = p; } hdb.SaveChanges(); return true; }
public static Boolean importRoomFile(String filename) { CsvFileDescription inputFileDescription = new CsvFileDescription { SeparatorChar = ',', FirstLineHasColumnNames = true }; CsvContext cc = new CsvContext(); HousingContext hdb = new HousingContext(); IEnumerable<RoomCSV> csvrooms = cc.Read<RoomCSV>(filename, inputFileDescription); List<String> campusNames = (from rcsv in csvrooms select rcsv.CampusName).Distinct().ToList(); List<Campus> campuses = hdb.campuses.Include(x => x.buildings).ToList(); List<String> buildingNames; List<Int32> floorNumbers; List<RoomCSV> csvRooms; Campus curCampus; Building curBuilding; Floor curFloor; foreach (String campusName in campusNames) { curCampus = campuses.Where(x => x.campusName == campusName).FirstOrDefault(); if (curCampus == null) { curCampus = hdb.campuses.Add(new Campus { campusName = campusName, buildings = new List<Building>() }); } buildingNames = ( from rcsv in csvrooms where rcsv.CampusName == campusName select rcsv.BuildingName ).Distinct().ToList(); foreach (String buildingName in buildingNames) { curBuilding = curCampus.buildings.Where(x => x.name == buildingName).FirstOrDefault(); if (curBuilding == null) { curBuilding = hdb.buildings.Add(new Building { campus = curCampus, floors = new List<Floor>(), name = buildingName }); } floorNumbers = ( from rcsv in csvrooms where rcsv.BuildingName == buildingName && rcsv.CampusName == campusName select rcsv.FloorNumber ).Distinct().ToList(); foreach (int floorNumber in floorNumbers) { curFloor = curBuilding.floors.Where(x => x.level == floorNumber).FirstOrDefault(); if (curFloor == null) { curFloor = hdb.floors.Add(new Floor { building = curBuilding, rooms = new List<Room>(), level = floorNumber }); } csvRooms = ( from rcsv in csvrooms where rcsv.CampusName == campusName && rcsv.BuildingName == buildingName && rcsv.FloorNumber == floorNumber select rcsv ).ToList(); foreach (RoomCSV room in csvRooms) { if (!curFloor.rooms.Where(x => x.roomNumber == room.RoomNumber).Any()) { Room r; if (room.Type == "Suite") { r = new Suite { floor = curFloor, roomNumber = room.RoomNumber, chaperonesAllowed = room.ChaperonesAllowed, studentsAllowed = room.StudentsAllowed }; } else { r = new Room { floor = curFloor, roomNumber = room.RoomNumber, chaperonesAllowed = room.ChaperonesAllowed, studentsAllowed = room.StudentsAllowed }; } hdb.rooms.Add(r); } } } } } hdb.SaveChanges(); List<RoomCSV> SuitesRooms = ( from rcsv in csvrooms where rcsv.SuiteFloorNumber != null select rcsv ).ToList(); foreach (RoomCSV r in SuitesRooms) { Suite curSuite = (Suite) (from suite in hdb.rooms where r.SuiteRoomNumber == suite.roomNumber && suite.floor.level == r.SuiteFloorNumber && suite.floor.building.name == r.SuiteBuildingName && suite.floor.building.campus.campusName == r.SuiteCampusName select suite).FirstOrDefault(); var curRoom = (from room in hdb.rooms where room.floor.level == r.FloorNumber && room.floor.building.name == r.BuildingName && room.floor.building.campus.campusName == r.CampusName && room.roomNumber == r.RoomNumber select room).FirstOrDefault(); if (curSuite.rooms == null) { curSuite.rooms = new List<Room>(); } curSuite.rooms.Add(curRoom); curSuite.chaperonesAllowed = 0; curSuite.studentsAllowed = 0; } hdb.SaveChanges(); return true; }
public void SetAdjacentRooms(List<Int32> roomIDs) { HousingContext db = new HousingContext(); Room curRoom = (from r in db.rooms where r.RoomID == this.RoomID select r).First(); var removedRooms = from r in this.adjacentRooms where !roomIDs.Contains(r.RoomID) select r; foreach (Room r in removedRooms) { Room toRemove = curRoom.adjacentRooms.Where(x => x.RoomID == r.RoomID).First(); toRemove.adjacentRooms.Remove(curRoom); curRoom.adjacentRooms.Remove(toRemove); } List<Int32> adjacentIDs = (from r in this.adjacentRooms select r.RoomID).ToList(); List<Int32> newAdjacentIDs = roomIDs.Except(adjacentIDs).ToList(); List<Room> newAdjacent = (from r in db.rooms where newAdjacentIDs.Contains(r.RoomID) select r ).ToList(); foreach (Room r in newAdjacent) { curRoom.adjacentRooms.Add(r); r.adjacentRooms.Add(curRoom); } db.SaveChanges(); }