public bool AddMissingTestToEvent(long eventId, IEnumerable <long> testIds) { var eventtests = _eventTestRepository.GetTestsForEvent(eventId); var existingtestIds = eventtests.Select(x => x.TestId).ToList(); var toBeAddedTests = testIds.Where(testId => !existingtestIds.Contains(testId)).ToList(); if (toBeAddedTests.Any()) { foreach (var tobeAddedTest in toBeAddedTests) { _eventTestRepository.Save(new EventTest { TestId = tobeAddedTest, EventId = eventId, WithPackagePrice = (decimal)0.0, Price = (decimal)0.0, RefundPrice = (decimal)0.0, ReimbursementRate = 0, ShowInAlaCarte = true, Gender = (long)Gender.Unspecified, GroupId = (long)TestGroupType.None, DateCreated = System.DateTime.Now, DateModified = System.DateTime.Now }); } var theEvent = _eventRepository.GetById(eventId); if (theEvent.IsDynamicScheduling) { var eventPods = _eventPodRepository.GetByEventId(eventId); var eventPodIds = eventPods.Select(x => x.Id); var eventPodRooms = _eventPodRoomRepository.GetByEventPodIds(eventPodIds); foreach (var eventPodRoom in eventPodRooms) { _eventPodRoomRepository.SaveEventPodRoomTests(toBeAddedTests, eventPodRoom.Id); } } } return(true); }
private bool AddMissingTestToEvent(long eventId, IEnumerable <long> testIds, IEnumerable <EventTest> eventtests) { var existingtestIds = eventtests.Select(x => x.TestId).ToList(); var toBeAddedTests = testIds.Where(testId => !existingtestIds.Contains(testId)).ToList(); if (toBeAddedTests.Any()) { var missingTest = _testRepository.GetTestByIds(toBeAddedTests); var account = _corporateAccountRepository.GetbyEventId(eventId); var testNotReviewableIds = new List <long>(); if (account != null) { var testNotReviewable = _accountNotReviewableTestRepository.GetByAccountId(account.Id); if (!testNotReviewable.IsNullOrEmpty()) { testNotReviewableIds.AddRange(testNotReviewable.Select(x => x.TestId)); } } foreach (var test in missingTest) { var isTestNotReviewable = testNotReviewableIds.Any(x => x == test.Id); _eventTestRepository.Save(new EventTest { TestId = test.Id, EventId = eventId, WithPackagePrice = 0, Price = 0, RefundPrice = 0, ReimbursementRate = 0, ShowInAlaCarte = true, Gender = (long)Gender.Unspecified, GroupId = (long)TestGroupType.None, DateCreated = DateTime.Now, DateModified = DateTime.Now, IsTestReviewableByPhysician = isTestNotReviewable ? (bool?)true : null }); } var theEvent = _eventRepository.GetById(eventId); if (theEvent.IsDynamicScheduling) { var podRoomTests = _eventPodRoomRepository.GetEventPodRoomTestsByEventId(eventId); var eventPodRooms = podRoomTests.Select(x => x.EventPodRoomId).Distinct(); foreach (var eventPodRoom in eventPodRooms) { var testAlreadInRoom = podRoomTests.Where(x => x.EventPodRoomId == eventPodRoom).Select(x => x.TestId); if (!testAlreadInRoom.IsNullOrEmpty()) { toBeAddedTests.AddRange(testAlreadInRoom); } toBeAddedTests = toBeAddedTests.Distinct().ToList(); _eventPodRoomRepository.SaveEventPodRoomTests(toBeAddedTests, eventPodRoom); } } return(true); } return(false); }