public void Update(ILearningRoom learningRoom) { _roomPersistor.Update(learningRoom); var participantCodesExist = _learningRoomGateway.Load(learningRoom.Reference).Participants.Select(p => p.Reference.Code); var participantsToAdd = learningRoom.Participants.Where(p => !participantCodesExist.Contains(p.Reference.Code)).ToList(); var participantsToUpdate = learningRoom.Participants.Where(p => participantCodesExist.Contains(p.Reference.Code)).ToList(); participantsToUpdate.ForEach(p => _participantPersistor.Update(p)); participantsToAdd.ForEach(p => _participantPersistor.Add(p)); _persistence.Complete(); _memoryCache.Remove(learningRoom.Reference.CacheCode); }
public void Add(ILearningRoom learningRoom) { _roomPersistor.Add(learningRoom); learningRoom.Participants.ToList().ForEach(p => _participantPersistor.Add(p)); _persistence.Complete(); }