Exemple #1
0
        public UpsellTestEditModel GetUpsellTest(string guid)
        {
            var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(guid);
            var upsellTestEditModel          = new UpsellTestEditModel
            {
                RequestValidationModel = onlineRequestValidationModel
            };

            if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid)
            {
                return(upsellTestEditModel);
            }
            var tempCart = onlineRequestValidationModel.TempCart;

            if (tempCart.EventId.HasValue && tempCart.EventId > 0 && !string.IsNullOrEmpty(tempCart.Gender) && tempCart.EventPackageId.HasValue)
            {
                Gender gender;
                System.Enum.TryParse(tempCart.Gender, out gender);
                var upsellTests = _onlinePackageService.UpsaleTest(tempCart.EventId.Value, tempCart.EventPackageId.Value, gender);
                upsellTestEditModel.EventTestOrderItemList = upsellTests;
            }

            if (tempCart.EventId.HasValue && tempCart.EventId > 0 && tempCart.EventPackageId.HasValue)
            {
                var allAdditionalTests = _onlinePackageService.GetAdditionalTest(tempCart);
                upsellTestEditModel.IsAdditionalTestAvailable = allAdditionalTests != null && allAdditionalTests.Any();
            }

            return(upsellTestEditModel);
        }
        public bool SaveUpsellTestIds(UpsellTestEditModel model)
        {
            var tempCart = model.RequestValidationModel.TempCart;

            if (tempCart.EventId.HasValue && tempCart.EventId > 0 && !string.IsNullOrEmpty(tempCart.Gender) && tempCart.EventPackageId.HasValue)
            {
                Gender gender;
                Enum.TryParse(tempCart.Gender, out gender);
                var upsellTests = UpsaleTest(tempCart.EventId.Value, tempCart.EventPackageId.Value, gender);
                var testIds     = new List <long>();

                if (!string.IsNullOrWhiteSpace(tempCart.TestId))
                {
                    var panelTestId    = (long)(gender == Gender.Male ? TestType.MenBloodPanel : TestType.WomenBloodPanel);
                    var panelTestGroup = (panelTestId == (long)TestType.MenBloodPanel ? TestGroup.MensBloodPanelTestIds : TestGroup.WomenBloodPanelTestIds);

                    var theEvent   = _eventRepository.GetById(tempCart.EventId.Value);
                    var eventTests = theEvent.EnableAlaCarteOnline ? _eventTestRepository.GetTestsForEventByRole(tempCart.EventId.Value, (long)Roles.Customer, (long)gender) : null;

                    testIds = tempCart.TestId.Split(',').Select(long.Parse).ToList();

                    if (!eventTests.IsNullOrEmpty() && !testIds.IsNullOrEmpty())
                    {
                        var panelTest = eventTests.FirstOrDefault(x => x.TestId == panelTestId);

                        if (panelTest != null && model.SelectedEventTestIds.Any(x => x == panelTest.Id))
                        {
                            var panelEventTestGroup = eventTests.Where(et => panelTestGroup.Contains(et.TestId)).Select(x => x.Id).ToList();
                            if (!panelEventTestGroup.IsNullOrEmpty())
                            {
                                testIds = testIds.Where(x => !panelEventTestGroup.Contains(x)).ToList();
                            }
                        }
                    }

                    var upsellTestList = upsellTests.Select(x => x.EventTestId).Distinct().ToList();

                    testIds = testIds.Where(x => !upsellTestList.Contains(x)).ToList();
                }
                if (model.SelectedEventTestIds != null && model.SelectedEventTestIds.Any())
                {
                    testIds.AddRange(model.SelectedEventTestIds);
                }

                tempCart.TestId = null;

                if (testIds.Any())
                {
                    tempCart.TestId = string.Join(",", testIds);
                }

                _tempcartService.SaveTempCart(tempCart);
            }
            return(true);
        }
Exemple #3
0
        public UpsellTestEditModel PostUpsellTest(UpsellTestEditModel model)
        {
            var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(model.Guid);

            model.RequestValidationModel = onlineRequestValidationModel;

            if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid)
            {
                return(model);
            }

            _onlinePackageService.SaveUpsellTestIds(model);

            var tempCart = model.RequestValidationModel.TempCart;

            if (tempCart.AppointmentId > 0)
            {
                _onlinePackageService.ReleaseSlotsOnScreeningtimeChanged(tempCart, tempCart.EventPackageId.Value, tempCart.TestId);
            }

            return(model);
        }
Exemple #4
0
        public OrderPlaceEditModel SaveSelectedTest(UpsellTestEditModel upsellTest)
        {
            var onlineRequestValidationModel = _tempcartService.ValidateOnlineRequest(upsellTest.Guid);
            var model = new OrderPlaceEditModel {
                RequestValidationModel = onlineRequestValidationModel
            };

            if (onlineRequestValidationModel.RequestStatus != OnlineRequestStatus.Valid)
            {
                return(model);
            }
            var tempCart = onlineRequestValidationModel.TempCart;

            var selectedEventTestIds = (upsellTest.SelectedEventTestIds != null && upsellTest.SelectedEventTestIds.Any()) ? string.Join(",", upsellTest.SelectedEventTestIds.ToList()) : string.Empty;

            _onlinePackageService.SaveaAlacarteTestIds(tempCart, selectedEventTestIds, upsellTest.SaveBloodPanelTest);

            if (tempCart.AppointmentId > 0)
            {
                _onlinePackageService.ReleaseSlotsOnScreeningtimeChanged(tempCart, tempCart.EventPackageId.Value, tempCart.TestId);
            }
            return(model);
        }