Example #1
0
 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;
 }
Example #2
0
 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;
 }
Example #3
0
 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;
 }
Example #4
0
 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;
 }
Example #5
0
 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;
 }
Example #6
0
        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();
        }