Exemplo n.º 1
0
        public void AddShippingForPcp(long customerId, long eventId, PrimaryCarePhysician pcp)
        {
            // var pcp = _primaryCarePhysicianRepository.Get(customerId);
            if (pcp == null || pcp.Address == null)
            {
                return;
            }

            var shippingOption = _shippingOptionRepository.GetShippingOptionByProductId((long)Product.UltraSoundImages, true);

            if (shippingOption == null)
            {
                return;
            }

            var shippingDetails = _shippingDetailRepository.GetShippingDetailsForEventCustomer(eventId, customerId);

            if (!shippingDetails.IsNullOrEmpty())
            {
                if (shippingDetails.Any(sd => sd.ShippingOption.Id == shippingOption.Id))
                {
                    return;
                }
            }

            var order = _orderRepository.GetOrder(customerId, eventId);

            //added As Admin User Role
            var organizationRoleUser = new OrganizationRoleUser {
                Id = customerId
            };

            AddPcpShipping(order, shippingOption, pcp, organizationRoleUser);
        }
Exemplo n.º 2
0
        public void AddFreeShippingForCustomer(long customerId, long eventId)
        {
            var customer = _customerRepository.GetCustomer(customerId);

            var shippingOptions = _shippingOptionRepository.GetAllShippingOptionsForBuyingProcess();

            if (shippingOptions == null || !shippingOptions.Any())
            {
                return;
            }

            var shippingOption = shippingOptions.FirstOrDefault(x => x.Price == 0);

            if (shippingOption == null)
            {
                return;
            }

            var shippingDetails = _shippingDetailRepository.GetShippingDetailsForEventCustomer(eventId, customerId);

            if (!shippingDetails.IsNullOrEmpty())
            {
                return;
            }

            var order = _orderRepository.GetOrder(customerId, eventId);

            //added As Admin User Role
            var organizationRoleUser = new OrganizationRoleUser {
                Id = customerId
            };

            var shippingDetail = SavePcpShippingDetail(customer.Address, organizationRoleUser, shippingOption);

            AddFreeShippingForCustomer(order, shippingDetail);
        }
Exemplo n.º 3
0
        public IEnumerable <ShippingDetailEditModel> GetShippingDetailEditModels(long eventId, long customerId)
        {
            var shippingDetails = _shippingDetailRepository.GetShippingDetailsForEventCustomer(eventId, customerId);

            return(AutoMapper.Mapper.Map <IEnumerable <ShippingDetail>, IEnumerable <ShippingDetailEditModel> >(shippingDetails));
        }
Exemplo n.º 4
0
        public void PollforResultReadyNotification()
        {
            _logger.Info("Starting the Polling Agent for Second Result Ready Notification.");

            bool sendNotification = Convert.ToBoolean(_configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.EnableResultDeliveryNotification));

            if (!sendNotification)
            {
                return;
            }

            var eventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultsForResultReadyNotification(_setting.DaysAfterResultReady);

            if (eventCustomerResults != null && eventCustomerResults.Any())
            {
                foreach (var eventCustomerResult in eventCustomerResults)
                {
                    try
                    {
                        var isResultAccessed = _digitalAssetAccessLogRepository.IsDigitalAssetAccessed(eventCustomerResult.CustomerId, eventCustomerResult.DataRecorderMetaData.DateModified.Value);
                        if (isResultAccessed)
                        {
                            continue;
                        }

                        var  shippingDetails      = _shippingDetailRepository.GetShippingDetailsForEventCustomer(eventCustomerResult.EventId, eventCustomerResult.CustomerId);
                        bool isPaperCopyPurchased = shippingDetails != null && shippingDetails.Any();

                        if (isPaperCopyPurchased)
                        {
                            continue;
                        }

                        var account = _corporateAccountRepository.GetbyEventId(eventCustomerResult.EventId);
                        if (account != null && !(account.SendResultReadyMail && account.ResultReadyMailTemplateId > 0))
                        {
                            continue;
                        }

                        var eventData = _eventRepository.GetById(eventCustomerResult.EventId);

                        if (eventData.NotifyResultReady)
                        {
                            string emailTemplateAlias = EmailTemplateAlias.ResultsReady;

                            if (account != null && account.ResultReadyMailTemplateId > 0)
                            {
                                var emailTemplate = ((IUniqueItemRepository <EmailTemplate>)_emailTemplateRepository).GetById(account.ResultReadyMailTemplateId);
                                emailTemplateAlias = emailTemplate.Alias;
                            }

                            var customer = _customerRepository.GetCustomer(eventCustomerResult.CustomerId);

                            _logger.Info("\n Sending Notification at " + (customer.Email != null ? customer.Email.ToString() : ""));

                            if (emailTemplateAlias == EmailTemplateAlias.ResultsReady)
                            {
                                var resultReadyViewModel = _emailNotificationModelsFactory.GetResultReadyModel(customer.Name.FullName, customer.UserLogin.UserName, isPaperCopyPurchased, eventCustomerResult.EventId);
                                _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.ResultsReady, emailTemplateAlias, resultReadyViewModel, customer.Id, customer.CustomerId, "Result Notification");
                            }
                            else
                            {
                                var primaryCarePhysician = _primaryCarePhysicianRepository.Get(customer.CustomerId);

                                if (primaryCarePhysician == null)
                                {
                                    _logger.Error(string.Format("No primary Care Physician found for Customer Id: {0} \n", customer.CustomerId));
                                    continue;
                                }

                                var resultReadyViewModel = _emailNotificationModelsFactory.GetPpCustomerResultNotificationModel(customer, primaryCarePhysician);
                                _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.ResultsReady, emailTemplateAlias, resultReadyViewModel, customer.Id, customer.CustomerId, "Result Notification");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Info(String.Format("\n System failure: For EventId:{0} and CustomerId:{1} \n Message{2}", eventCustomerResult.EventId, eventCustomerResult.CustomerId, ex.Message));
                    }
                }
            }
            else
            {
                _logger.Info("No records found result found for Second Result Ready Notification.");
            }
        }