public async Task <ActionResult> AddOrUpdateDormitoryRoom([FromQuery] bool add, [FromQuery] int?dormitoryRoomId) { var students = await _studentService.GetStudentsWithoutRooms(); var selectStudents = _studentSelectModelMapper.Map(students).ToList(); var dormitories = await _dormitoryService.GetAll(); var selectDormitories = _dormitorySelectModelMapper.Map(dormitories).ToList(); selectDormitories.Insert(0, new SelectListItem() { Value = "-1", Text = "None" }); DormitoryRoomPostModel model; if (add) { model = new DormitoryRoomPostModel(); ViewBag.Header = ControllerConstants.AddDormitoryRoomHeader; } else { var dormitoryRoom = await _dormitoryRoomService.GetById(dormitoryRoomId.GetValueOrDefault()); model = _dormitoryRoomPostModelMapper.Map(dormitoryRoom); foreach (var student in selectStudents) { if (model.Students.Contains(student.StudentId)) { student.Checked = true; } } if (dormitoryRoom.DormitoryName == null) { selectDormitories[0].Selected = true; } else { selectDormitories.Single(d => d.Text == dormitoryRoom.DormitoryName).Selected = true; } ViewBag.Header = ControllerConstants.UpdateDormitoryRoomHeader; } ViewBag.Students = selectStudents; ViewBag.Dormitories = selectDormitories; return(View(model)); }
public DormitoryRoom Map(DormitoryRoomPostModel entity) { return(new DormitoryRoom { DormitoryId = entity.DormitoryId, DormitoryRoomName = entity.DormitoryRoomName, MaxCountInRoom = entity.MaxCountInRoom, DormitoryRoomId = entity.DormitoryRoomId, Roomers = entity.Students.Select(s => new Student { StudentId = s }).ToList() }); }
public async Task <IActionResult> AddOrUpdateDormitoryRoom( [FromBody] DormitoryRoomPostModel dormitoryRoomPostModel, [FromQuery] bool add = true) { var dormitoryRoom = _dormitoryRoomMapper.Map(dormitoryRoomPostModel); if (add) { await _dormitoryRoomService.AddAsync(dormitoryRoom); } else { await _dormitoryRoomService.UpdateAsync(dormitoryRoom); } await _dormitoryRoomService.SetDormitoryRoomStudentsAsync(dormitoryRoom.DormitoryRoomId, dormitoryRoomPostModel.Students.AsReadOnlyCollection()); return(RedirectToAction("Index")); }