public void SavePodRooms(IEnumerable <PodRoomEditModel> podRoomEditModels, long podId) { var podRoomsInDb = _podRoomRepository.GetByPodId(podId); if (podRoomsInDb != null && podRoomsInDb.Any()) { var currentPodRoomIds = podRoomEditModels.Select(pre => pre.PodRoomId).ToArray(); var podRoomIdsToBeDeleted = podRoomsInDb.Where(pr => !currentPodRoomIds.Contains(pr.Id)).Select(pr => pr.Id).ToArray(); if (podRoomIdsToBeDeleted.Any()) { _podRoomRepository.DeletePodRooms(podRoomIdsToBeDeleted); } } var index = 1; foreach (var podRoomEditModel in podRoomEditModels) { var podRoom = new PodRoom { Id = podRoomEditModel.PodRoomId, PodId = podId, Duration = podRoomEditModel.Duration, RoomNo = index }; podRoom = _podRoomRepository.Save(podRoom); var testIds = podRoomEditModel.RoomTests.Where(rt => rt.IsSelected).Select(rt => rt.Test); _podRoomRepository.SavePodRoomTests(testIds, podRoom.Id); index++; } }
public PodRoom Save(PodRoom domain) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var entity = Mapper.Map <PodRoom, PodRoomEntity>(domain); adapter.SaveEntity(entity, true, false); return(Mapper.Map <PodRoomEntity, PodRoom>(entity)); } }