Example #1
0
        public async Task <ActionResult> AddOrUpdateDormitory([FromQuery] bool add, [FromQuery] int?dormitoryId)
        {
            var dormitoryRooms = await _dormitoryRoomService.GetRoomsWithoutDormitory();

            var faculties = await _facultyService.GetAll();

            var selectedDormitoryRooms = _dormitoryRoomSelectModelMapper.Map(dormitoryRooms).ToList();
            var selectedFaculties      = _facultySelectModelMapper.Map(faculties).ToList();

            DormitoryPostModel model;

            if (add)
            {
                model = new DormitoryPostModel();

                ViewBag.Header = ControllerConstants.AddDormitoryHeader;
            }
            else
            {
                var group = await _dormitoryService.GetById(dormitoryId.GetValueOrDefault());

                model = _dormitoryPostModelMapper.Map(group);

                foreach (var dormitoryRoom in selectedDormitoryRooms)
                {
                    if (model.DormitoryRooms.Contains(dormitoryRoom.DormitoryRoomId))
                    {
                        dormitoryRoom.Checked = true;
                    }
                }

                foreach (var faculty in selectedFaculties)
                {
                    if (model.Faculties.Contains(faculty.Id))
                    {
                        faculty.Checked = true;
                    }
                }

                ViewBag.Header = ControllerConstants.UpdateDormitoryHeader;
            }

            ViewBag.Faculties      = selectedFaculties;
            ViewBag.DormitoryRooms = selectedDormitoryRooms;

            return(View(model));
        }