public async Task <ActionResult <RoomDetailsDTO> > GetById(int id)
        {
            var model = await _context.Rooms.Where(x => x.Id == id)
                        .Include(x => x.ClassRoomGroupList).ThenInclude(x => x.Group)
                        .Include(x => x.ClassRoomTeachersList).ThenInclude(x => x.Employee)
                        .Include(x => x.ClassRoomLessonsList).ThenInclude(x => x.Lesson)
                        .FirstOrDefaultAsync();

            if (model == null)
            {
                return(NotFound());
            }

            model.ClassRoomTeachersList = model.ClassRoomTeachersList.OrderBy(x => x.Order).ToList();

            var obj = new RoomDetailsDTO();

            obj.Room      = model;
            obj.Groups    = model.ClassRoomGroupList.Select(x => x.Group).ToList();
            obj.Lessons   = model.ClassRoomLessonsList.Select(x => x.Lesson).ToList();
            obj.Employees = model.ClassRoomTeachersList.Select(x =>
                                                               new Employee
            {
                Id            = x.Employee.Id,
                FirstName     = x.Employee.FirstName,
                MiddleName    = x.Employee.MiddleName,
                LastName      = x.Employee.LastName,
                Age           = x.Employee.Age,
                Profile       = x.Employee.Profile,
                DateOfGotAJob = x.Employee.DateOfGotAJob
            }).ToList();

            return(obj);
        }
示例#2
0
 public RoomEntity MapToEntity(RoomDetailsDTO dto, RoomMapperBag bag)
 {
     return(new RoomEntity()
     {
         Id = dto.Id,
         Name = dto.Name,
         Author = bag.Author,
         ImagePath = dto.ImageUrl,
         Config = _roomConfigMapper.MapToEntity(dto.RoomConfigDTO)
     });
 }
示例#3
0
 public async Task <HttpStatusCode> UpdateAsync(int id, RoomDetailsDTO room)
 {
     return(await PutAsync($"rooms/{id}", room));
 }
示例#4
0
 public async Task <HttpStatusCode> CreateAsync(RoomDetailsDTO room)
 {
     return(await PostAsync("rooms", room));
 }