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); }
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); }
public IEnumerable <ShippingDetailEditModel> GetShippingDetailEditModels(long eventId, long customerId) { var shippingDetails = _shippingDetailRepository.GetShippingDetailsForEventCustomer(eventId, customerId); return(AutoMapper.Mapper.Map <IEnumerable <ShippingDetail>, IEnumerable <ShippingDetailEditModel> >(shippingDetails)); }
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."); } }