Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }