Exemplo n.º 1
0
            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);
                }
            }
Exemplo n.º 2
0
            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);
                }
            }