private void AssignFaculty(List <Faculty> facultiesCache, Room room, Disponent disponent) { var importedFaculties = disponent.Name.Split('/').Select(x => x.Trim()); var lookupFacultyNames = new List <string>(); foreach (var facultyName in importedFaculties) { var faculty = facultiesCache. FirstOrDefault(x => x.Name.Equals(facultyName, StringComparison.OrdinalIgnoreCase) || x.Acronym.Equals(facultyName, StringComparison.OrdinalIgnoreCase)); if (faculty is null) { continue; } var newFacultyRoom = new FacultyRoom() { Faculty = faculty, Room = room }; room.Faculties.Add(newFacultyRoom); lookupFacultyNames.Add(faculty.Acronym); } if (lookupFacultyNames.Any()) { room.FacultyLookup = string.Join(" / ", lookupFacultyNames); } }
private void ImportAll(IEnumerable <Room> importedRooms, List <Building> buildingsCache, List <Disponent> disponentsCache, List <Faculty> facultiesCache) { foreach (var room in importedRooms) { // building should be in database room.Building = buildingsCache.FirstOrDefault(x => x.Number == room.Building.Number) ?? throw new NotFoundException($"{typeof(Building)} with property {nameof(room.Building.Number)}", room.Building.Number); Disponent disponent = AssignDisponent(disponentsCache, room); AssignFaculty(facultiesCache, room, disponent); _context.Rooms.Add(room); } }