public void UndoCancelShippingRequest(RefundRequest refundRequest) { var order = _orderRepository.GetOrder(refundRequest.OrderId); var activeOrderDetail = _orderController.GetActiveOrderDetail(order); var cancelledShippingDetails = _shippingDetailRepository.GetAllCancelledShippingForOrder(order.Id).OrderByDescending(sd => sd.Id).ToArray(); var shippingDetail = cancelledShippingDetails.FirstOrDefault(cd => cd.ActualPrice == refundRequest.RequestedRefundAmount); if (shippingDetail == null) { throw new Exception("No cancelled shipping item found in the order for requested amount."); } var eventCustomer = _eventCustomerRepository.GetById(activeOrderDetail.EventCustomerOrderDetail.EventCustomerId); var isExclusivelyRequested = _shippingDetailService.CheckShippingIsExclusivelyRequested(eventCustomer.EventId, eventCustomer.CustomerId); var address = _addressRepository.GetAddress(shippingDetail.ShippingAddress.Id); address.Id = 0; shippingDetail.Id = 0; shippingDetail.ShippingAddress = address; shippingDetail.Status = ShipmentStatus.Processing; shippingDetail.IsExclusivelyRequested = isExclusivelyRequested; shippingDetail.DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = _organizationRoleUserRepository.GetOrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId), DateCreated = DateTime.Now, DateModified = DateTime.Now }; IShippingController shippingController = new ShippingController(); shippingDetail = shippingController.OrderShipping(shippingDetail); IRepository <ShippingDetailOrderDetail> shippingDetailOrderDetailRepository = new ShippingDetailOrderDetailRepository(); var shippingDetailOrderDetail = new ShippingDetailOrderDetail { Amount = shippingDetail.ActualPrice, IsActive = true, OrderDetailId = activeOrderDetail.Id, ShippingDetailId = shippingDetail.Id }; shippingDetailOrderDetailRepository.Save(shippingDetailOrderDetail); var productDetail = order.OrderDetails.Where(od => od.DetailType == OrderItemType.ProductItem && od.IsCompleted).Select(od => od).OrderByDescending(od => od.Id).FirstOrDefault(); SaveProductShipping(productDetail, activeOrderDetail, isExclusivelyRequested); var repository = ((IRepository <RefundRequest>)_refundRequestRepository); refundRequest.RequestStatus = (long)RequestStatus.Reverted; refundRequest.RefundRequestResult = new RefundRequestResult { ProcessedOn = DateTime.Now, ProcessedByOrgRoleUserId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId }; repository.Save(refundRequest); }
public List <SalesRepTerritory> GetTerritoriesForSalesRep(long salesRepId) { long organizationRoleUserId = _organizationRoleUserRepository. GetOrganizationRoleUser(salesRepId).Id; Expression <Func <TerritoryEntity, bool> > filter = te => te.OrganizationRoleUserTerritory. Select(orut => orut.OrganizationRoleUserId).Contains(organizationRoleUserId); IEnumerable <TerritoryEntity> territoryEntities = FetchTerritoryEntities(filter); return(territoryEntities.Select(te => GetSalesRepTerritory(te)).ToList()); }
public ShippingDetail GetShippingDetailData(CustomerOrderDetail customerOrderDetail) { var option = customerOrderDetail.ShippingOptions.FirstOrDefault(); if (option == null) { return(null); } var shippingDetail = new ShippingDetail { ShippingOption = new ShippingOption(option.Id), DataRecorderMetaData = new DataRecorderMetaData { DataRecorderCreator = _organizationRoleUserRepository.GetOrganizationRoleUser(_creatorOrganizationRoleUser), DateCreated = DateTime.Now, DateModified = DateTime.Now }, Status = ShipmentStatus.Processing, ShippingAddress = GetShippinAddress(customerOrderDetail), ActualPrice = option.Price }; return(shippingDetail); }
private OrderedPair <OrganizationRoleUser, string> GetOrganizationRoleUser <T>(T data, Func <T, long> organizationRoleUserId) { var organizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(organizationRoleUserId(data)); var user = _userRepository.GetUser(organizationRoleUser.UserId); return(new OrderedPair <OrganizationRoleUser, string>(organizationRoleUser, user.NameAsString)); }
private OrderedPair <OrganizationRoleUser, OrderedPair <string, string> > GetOrganizationRoleUser <T>(T data, Func <T, long> organizationRoleUserId) { var organizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(organizationRoleUserId(data)); var user = _userRepository.GetUser(organizationRoleUser.UserId); var role = _roleRepository.GetByRoleId(organizationRoleUser.RoleId); return(new OrderedPair <OrganizationRoleUser, OrderedPair <string, string> >(organizationRoleUser, new OrderedPair <string, string>(user.NameAsString, role.DisplayName))); }
public void AddItem(IOrderable itemToOrder, int quantity, long forOrganizationRoleUserId, long dataRecorderCreatorId, SourceCode sourceCode, EventCustomer eventCustomer, ShippingDetail shippingDetail, OrderStatusState orderStatusState, long?sourceId = null) { if (sourceId == null && (itemToOrder is EventPackage || itemToOrder is EventTest)) { var customerId = forOrganizationRoleUserId; if (itemToOrder is EventTest) { var preApprovedTestList = _preApprovedTestRepository.GetByCustomerId(customerId).Select(x => x.TestId); if (preApprovedTestList.Contains(((EventTest)itemToOrder).TestId)) { sourceId = (long)OrderSource.PreApproved; } } else if (itemToOrder is EventPackage) { var preApprovedPackageList = _preApprovedPackageRepository.GetByCustomerId(customerId).Select(x => x.PackageId); if (preApprovedPackageList.Contains(((EventPackage)itemToOrder).PackageId)) { sourceId = (long)OrderSource.PreApproved; } } if (sourceId == null) { var oru = _organizationRoleUserRepository.GetOrganizationRoleUser(dataRecorderCreatorId); if (oru.RoleId == (long)Roles.FranchiseeAdmin) { sourceId = (long)OrderSource.Admin; } else if (oru.RoleId == (long)Roles.CallCenterRep) { sourceId = (long)OrderSource.CallCenter; } else if (oru.RoleId == (long)Roles.Technician) { sourceId = (long)OrderSource.Technician; } else if (oru.RoleId == (long)Roles.NursePractitioner) { sourceId = (long)OrderSource.NursePractioner; } } } OrderDetail orderDetail = _orderDetailFactory.CreateNewOrderDetail(itemToOrder, quantity, forOrganizationRoleUserId, dataRecorderCreatorId, sourceCode, eventCustomer, shippingDetail, sourceId); orderDetail.OrderItemStatus = _orderItemStatusFactory.CreateOrderItemStatus(itemToOrder.OrderItemType, (int)orderStatusState); var pair = new OrderedPair <OrderDetail, IOrderable>(orderDetail, itemToOrder); _lineItems.Add(pair); }
public User GetUser(long organizationRoleUserId) { var orgRoleUser = _orgRoleUserRepository.GetOrganizationRoleUser(organizationRoleUserId); if (orgRoleUser == null) { return(null); } return(_userRepository.GetUser(orgRoleUser.UserId)); }
private OrganizationRoleUser GetForOrganizationRoleUser(long customerId) { var orgRolesUser = _organizationRoleUserRepository.GetOrganizationRoleUser(customerId); if (orgRolesUser != null && orgRolesUser.RoleId == (long)Roles.Customer) { return(orgRolesUser); } return(null); }
private OrganizationRoleUser GetForOrganizationRoleUser(long customerId) { var orgRolesUsers = _organizationRoleUserRepository.GetOrganizationRoleUser(customerId); if (orgRolesUsers != null) { return(orgRolesUsers); } return(null); }
public PrimaryCarePhysicianEditModel GetPrimaryCarePhysicianEditModel(long customerId) { PrimaryCarePhysicianEditModel pcpEditModel = null; var pcp = _primaryCarePhysicianRepository.Get(customerId); if (pcp != null) { pcpEditModel = Mapper.Map <PrimaryCarePhysician, PrimaryCarePhysicianEditModel>(pcp); pcpEditModel.Address = Mapper.Map <Address, AddressEditModel>(pcp.Address); pcpEditModel.MailingAddress = pcp.MailingAddress != null?Mapper.Map <Address, AddressEditModel>(pcp.MailingAddress) : pcpEditModel.Address; if (pcpEditModel.IsPcpAddressVerified.HasValue) { pcpEditModel.IsPcpAddressVerified = pcp.IsPcpAddressVerified; pcpEditModel.PcpAddressVerifiedOn = pcp.PcpAddressVerifiedOn; if (pcp.PcpAddressVerifiedBy.HasValue) { var orgRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(pcp.PcpAddressVerifiedBy.Value); if (orgRoleUser != null) { if (orgRoleUser.RoleId > 0) { var role = _roleRepository.GetByRoleId(orgRoleUser.RoleId); if (role != null) { pcpEditModel.PcpAddresVarifiedByRole = role.DisplayName; } } if (orgRoleUser.UserId > 0) { var user = _userRepository.GetUser(orgRoleUser.UserId); if (user != null) { pcpEditModel.PcpAddresVarifiedByUserName = user.Name.ToString(); } } } } } } else { pcpEditModel = new PrimaryCarePhysicianEditModel { Address = new AddressEditModel(), PhoneNumber = new PhoneNumber { CountryCode = CountryCode.UnitedStatesAndCanada }, MailingAddress = new AddressEditModel(), HasSameAddress = true }; } pcpEditModel.HasSameAddress = IsMailingAddressSame(pcpEditModel); return(pcpEditModel); }
private Name GetOrganizationRoleUserName(long orgRoleUserId) { var name = new Name { FirstName = string.Empty, LastName = string.Empty }; if (orgRoleUserId <= 0) { return(name); } var user = _repositoryOrganizationRoleUser.GetOrganizationRoleUser(orgRoleUserId); if (user == null) { return(name); } var person = _repositoryUser.GetUser(user.UserId); return(person != null ? person.Name : name); }
public void PollForEvaluationReminderNotification() { _logger.Info("Starting the Polling Agent for Evaluation Reminder Notification."); var value = _configurationSettingRepository.GetConfigurationValue(ConfigurationSettingName.SendEmptyQueueEvaluationReminder); var physicians = _organizationRoleUserRepository.GetIdNamePairofUsersByRole(Roles.MedicalVendorUser); foreach (var orderedPair in physicians) { var overReadEvaluationPair = _physicianRepository.GetEventCustomerIdForOverReadPhysicianEvaluation(orderedPair.FirstValue); var evaluationPair = _physicianRepository.GetEventCustomerIdForPhysicianEvaluation(orderedPair.FirstValue); if ((value.ToLower() == bool.TrueString.ToLower()) || (evaluationPair.ItemsAvailable > 0 || overReadEvaluationPair.ItemsAvailable > 0)) { try { var createdByOrgRoleUserId = _organizationRoleUserRepository.GetOrganizationRoleUserIdsForRole((long)Roles.FranchisorAdmin).First(); var orgRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(orderedPair.FirstValue); var evaluationReminderNotificationModel = _emailNotificationModelsFactory.GetEvaluationReminderNotificationModel(orderedPair.FirstValue); _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.EvaluationReminder, EmailTemplateAlias.EvaluationReminder, evaluationReminderNotificationModel, orgRoleUser.UserId, createdByOrgRoleUserId, "Evaluation Reminder Notification"); } catch (Exception ex) { _logger.Info( String.Format("\n System failure: For Physician:{0} \n Message{1}", orderedPair.SecondValue, ex.Message)); } } else { _logger.Info(String.Format("\n No Evaluation Pending For Physician:{0}", orderedPair.SecondValue)); } } }
//TODO: SRE //TODO: Not to use callCenterCallCenterRepId public List <Core.Finance.Domain.Order> GetAllOrdersCreatedByCallCenterRep(long callCenterRepId, DateTime startDate, DateTime endDate) { var callCenterRepOrganizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(callCenterRepId); var orders = new List <Core.Finance.Domain.Order>(); using (var myAdapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(myAdapter); var orderIds = linqMetaData.EventCustomers.Join(linqMetaData.EventCustomerOrderDetail, ec => ec.EventCustomerId, ecod => ecod.EventCustomerId, (ec, ecod) => new { ec, ecod.OrderDetailId, ecod.IsActive }).Join( linqMetaData.OrderDetail, @t => @t.OrderDetailId, od => od.OrderDetailId, (@t, od) => new { @t, od.OrderId }).Join(linqMetaData.Order, @t => @t.OrderId, o => o.OrderId, (@t, o) => new { @t, o }).Where( @t => @t.t.t.ec.CreatedByOrgRoleUserId == callCenterRepOrganizationRoleUser.Id && @t.t.t.ec.DateCreated >= startDate && @t.t.t.ec.DateCreated <= endDate && @t.o.OrganizationRoleUserCreatorId == callCenterRepOrganizationRoleUser.Id && @t.o.DateCreated >= startDate && @t.o.DateCreated <= endDate).Select(@t => @t.o.OrderId). Distinct(); foreach (var orderId in orderIds) { var order = GetOrder(orderId); orders.Add(order); } return(orders); } }
private void CreateChangeOrderMetrics(EventMetricsViewData eventMetricsViewData, Core.Finance.Domain.Order order, OrganizationRoleUser organizationRoleUser) { // It means the order has been changed, so either downgrade or upgrade will occur for such cases only. if (order.DiscountedTotal == order.TotalAmountPaid && order.OrderDetails.Count > 1) { order.OrderDetails.ForEach(od => { od.DataRecorderMetaData.DateCreated = od.DataRecorderMetaData.DateCreated.GetDateWithDifferentTime( od.DataRecorderMetaData.DateCreated.Hour, od.DataRecorderMetaData.DateCreated.Minute, od.DataRecorderMetaData.DateCreated.Second); if (od.Price < 0) { od.Price = 0; } }); Func <OrderDetail, decimal> amountOfDiscount = od => od.SourceCodeOrderDetail == null ? 0 : od.SourceCodeOrderDetail.Amount; var dateCreatedGroups = order.OrderDetails.GroupBy(od => od.DataRecorderMetaData.DateCreated).Select( g => new { g.Key, TotalValue = g.Sum(od => (od.Price * od.Quantity) - (amountOfDiscount(od))), AvailedValue = g.Where(od => od.OrderItemStatus.OrderStatusState == OrderStatusState.FinalSuccess //EventPackageItemStatus.Availed || od.OrderItemStatus == EventTestItemStatus.Availed ).Sum( od => ((od.Price * od.Quantity) - amountOfDiscount(od))), CreatorId = g.Select(od => od.DataRecorderMetaData.DataRecorderCreator.Id).ToList() }).ToList(); var availedPriceToBeAddedToNextGroup = 0m; for (int counter = 0; counter < (dateCreatedGroups.Count - 1); counter++) { var changedOrderDetailOrganizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser( dateCreatedGroups[counter + 1].CreatorId.LastOrDefault()); var originalOrderDetailSum = dateCreatedGroups[counter].TotalValue + availedPriceToBeAddedToNextGroup; availedPriceToBeAddedToNextGroup += dateCreatedGroups[counter].AvailedValue; var changedOrderDetailSum = dateCreatedGroups[counter + 1].TotalValue + availedPriceToBeAddedToNextGroup; if (changedOrderDetailSum == 0) { continue; } var roleId = GetParentRoleIdByRoleId(organizationRoleUser.RoleId); if (roleId == (int)Roles.Technician) { if (GetParentRoleIdByRoleId(changedOrderDetailOrganizationRoleUser.RoleId) == (int)Roles.Technician) { if (originalOrderDetailSum > changedOrderDetailSum) { eventMetricsViewData.DownGradePaymentCount++; eventMetricsViewData.DownGradePayments += originalOrderDetailSum - changedOrderDetailSum; } if (originalOrderDetailSum < changedOrderDetailSum) { eventMetricsViewData.UpGradePaymentCount++; eventMetricsViewData.UpGradePayments += changedOrderDetailSum - originalOrderDetailSum; } } } else { if (originalOrderDetailSum > changedOrderDetailSum) { eventMetricsViewData.DownGradePaymentCount++; eventMetricsViewData.DownGradePayments += originalOrderDetailSum - changedOrderDetailSum; } if (originalOrderDetailSum < changedOrderDetailSum) { eventMetricsViewData.UpGradePaymentCount++; eventMetricsViewData.UpGradePayments += changedOrderDetailSum - originalOrderDetailSum; } } } } }
public bool RegisterCustomer(MassRegistrationEditModel model, long eventId, EventType eventType) { var createdByOrgRoleUser = Mapper.Map <OrganizationRoleUserModel, OrganizationRoleUser>(_sessionContext.UserSession.CurrentOrganizationRole); if (model.Address != null && string.IsNullOrEmpty(model.Address.StreetAddressLine1) && string.IsNullOrEmpty(model.Address.City) && string.IsNullOrEmpty(model.Address.ZipCode)) { var state = _stateRepository.GetStatebyCode(_settings.State) ?? _stateRepository.GetState(_settings.State); model.Address.StreetAddressLine1 = _settings.Address1; model.Address.StreetAddressLine2 = _settings.Address2; model.Address.City = _settings.City; model.Address.StateId = state != null ? state.Id : model.Address.StateId; model.Address.ZipCode = _settings.ZipCode; } var customer = _massRegistrationEditModelFactory.CreateCustomer(model, createdByOrgRoleUser); _customerService.SaveCustomer(customer, createdByOrgRoleUser.Id); var forOrgRoleUser = _orgRoleUserRepository.GetOrganizationRoleUser(customer.CustomerId); var orderables = new List <IOrderable>(); if (model.PackageId > 0) { orderables.Add(_eventPackageRepository.GetByEventAndPackageIds(eventId, model.PackageId)); } if (orderables.IsNullOrEmpty()) { return(false); } var screeningTime = _eventPackageSelectorService.GetScreeningTime(eventId, model.PackageId, null); var slots = _eventSchedulingSlotService.BookSlotTemporarily(model.AppointmentId, screeningTime, model.PackageId, null); if (slots.IsNullOrEmpty()) { throw new InvalidOperationException("Slot is booked by some other customer."); } var eventCustomer = SaveEventCustomer(createdByOrgRoleUser, model.AppointmentId, eventId, customer.CustomerId); ShippingDetail shippingDetail = null; if (model.AddFreeShipping) { var shippingAddress = Mapper.Map <AddressEditModel, Address>(model.Address); shippingDetail = SaveShippingDetail(shippingAddress, createdByOrgRoleUser); } PlaceOrder(forOrgRoleUser, createdByOrgRoleUser, orderables, eventCustomer, null, shippingDetail); if (model.SendNotification) { var eventData = _eventRepository.GetById(eventId); SendNotification(customer, eventData, createdByOrgRoleUser, "/Scheduling/MassRegistration/Create"); } try { _eventSchedulingSlotService.SendEventFillingNotification(eventId, createdByOrgRoleUser.Id); } catch (Exception) { } return(true); }
public void PollForUpdate() { var files = DirectoryOperationsHelper.GetFiles(_settings.MediaLocation + "\\PreAppprovedTest", "*PreAppprovedTest*.csv"); var createdBy = _organizationRoleUserRepository.GetOrganizationRoleUser(1); foreach (var file in files) { _logger.Info("Parsing file : " + file); DataTable table = _csvReader.ReadWithTextQualifier(file); if (table.Rows.Count <= 0) { _logger.Info("No records found."); continue; } foreach (DataRow row in table.Rows) { var clientId = GetRowValue(row, "Client_Id"); //var contractNumber = GetRowValue(row, "Contract_Number"); var preApprovedTests = GetPreApprovedTests(row, "Pre-approved tests"); if (string.IsNullOrEmpty(clientId)) // || string.IsNullOrEmpty(contractNumber) { _logger.Info("Skipping row : Client Id blank."); //or Contract Number continue; } var chaseOutbound = _chaseOutboundRepository.GetByClientId(clientId); if (chaseOutbound == null) { _logger.Info(string.Format("Chase data not found for Client Id : {0}", clientId)); continue; } if (preApprovedTests != null && preApprovedTests.Any()) { var pairs = TestType.A1C.GetNameValuePairs(); var preApprovedTestExists = pairs.Where(x => preApprovedTests.Contains(x.SecondValue.ToLower())).Select(x => x.SecondValue.ToLower()); var testNotExist = string.Empty; if (preApprovedTestExists != null && preApprovedTestExists.Any() && (preApprovedTestExists.Count() != preApprovedTests.Count())) { var testNotExistInSystem = preApprovedTests.Where(x => !preApprovedTestExists.Contains(x.ToLower())).Select(x => x).ToArray(); testNotExist = string.Join(",", testNotExistInSystem); } else if (preApprovedTestExists == null || !preApprovedTestExists.Any()) { testNotExist = string.Join(",", preApprovedTests); } if (!string.IsNullOrEmpty(testNotExist)) { _logger.Info(testNotExist + " test alias name does not exist in HIP"); continue; } var preApprovedTestIds = pairs.Where(x => preApprovedTests.Contains(x.SecondValue.ToLower())).Select(x => (long)x.FirstValue); if (preApprovedTestIds != null && preApprovedTestIds.Any()) { _preApprovedTestRepository.SavePreApprovedTests(chaseOutbound.CustomerId, preApprovedTestIds, createdBy.Id); _logger.Info(string.Format("Pre-approved tests updated for Client Id : {0}", clientId)); } } } _logger.Info("Parsed file : " + file); } }
public void PollForExportableRequest() { ExportableReportsQueue exportableReportsQueue = null; try { var timeOfDay = DateTime.Now.TimeOfDay; if (_isDevEnvironment || (timeOfDay > new TimeSpan(4, 0, 0))) { _logger.Info("Exportable Report Generation Started"); exportableReportsQueue = _exportableReportsQueueRepository.GetExportableReportsQueueForService(); if (exportableReportsQueue == null) { _logger.Info("No Request pending in queue for generation"); return; } var orgRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(exportableReportsQueue.RequestedBy); var user = _userRepository.GetUser(orgRoleUser.UserId); var reportType = (ExportableReportType)exportableReportsQueue.ReportId; _logger.Info("Generating Report :" + reportType.GetDescription() + " Requested by " + user.NameAsString); UpdateExportReportStartTimeAndStaus(exportableReportsQueue); var fileName = string.Empty; switch (reportType) { case ExportableReportType.AppointmentsBooked: var appointmentsBookedListModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <AppointmentsBookedListModelFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.AppointmentBookedReportExport(appointmentsBookedListModelFilter, orgRoleUser.UserId); break; case ExportableReportType.CustomerExport: var customerExportListModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CustomerExportListModelFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.CustomerReportExport(customerExportListModelFilter, orgRoleUser.UserId); break; case ExportableReportType.TestPerformed: var testPerformedFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <TestPerformedListModelFilter>(exportableReportsQueue.FilterData); fileName = _medicalExportableReportHelper.TestPerformedReportExport(testPerformedFilter, orgRoleUser.UserId); break; case ExportableReportType.OutreachCallReport: var outreachCallReportModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <OutreachCallReportModelFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.OutreachCallReportExport(outreachCallReportModelFilter, orgRoleUser.UserId); break; case ExportableReportType.MemberStatusReport: var memberStatusListModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <MemberStatusListModelFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.MemberStatusReportExport(memberStatusListModelFilter, orgRoleUser.UserId); break; case ExportableReportType.TestNotPerformed: var testNotPerformedFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <TestNotPerformedListModelFilter>(exportableReportsQueue.FilterData); fileName = _medicalExportableReportHelper.TestNotPerformedReportExport(testNotPerformedFilter, orgRoleUser.UserId); break; case ExportableReportType.GapsClosure: var gapsClosureFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <GapsClosureModelFilter>(exportableReportsQueue.FilterData); fileName = _medicalExportableReportHelper.GapsReportExport(gapsClosureFilter, orgRoleUser.UserId); break; case ExportableReportType.GiftCertificate: var giftCertificateFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <GiftCertificateReportFilter>(exportableReportsQueue.FilterData); fileName = _financeReportHelper.GiftCerificateExport(giftCertificateFilter, orgRoleUser.UserId); break; case ExportableReportType.EventArchiveStats: var eventArchiveStatsFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <EventArchiveStatsFilter>(exportableReportsQueue.FilterData); fileName = _medicalExportableReportHelper.EventArchiveStatsExport(eventArchiveStatsFilter, orgRoleUser.UserId); break; case ExportableReportType.CallQueueSchedulingReport: var callQueueCustomerReportFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CallQueueSchedulingReportFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CallQueueSchedulingReportExport(callQueueCustomerReportFilter, orgRoleUser.UserId); break; case ExportableReportType.TestBooked: var testBookedListModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <TestsBookedListModelFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.TestBookedReportExport(testBookedListModelFilter, orgRoleUser.UserId); break; case ExportableReportType.CallQueueExcludedCustomerReport: var callQueueExcludedCustomerReportModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CallQueueExcludedCustomerReportModelFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CallQueueExcludedCustomerReportExport(callQueueExcludedCustomerReportModelFilter, orgRoleUser.UserId); break; case ExportableReportType.CallQueueCustomerReport: var outboundCallQueueFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <OutboundCallQueueFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CallQueueCustomersReportExport(outboundCallQueueFilter, orgRoleUser.UserId); break; case ExportableReportType.CustomerWithNoEventsInAreaReport: var customerWithNoEventsInAreaReportModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CustomerWithNoEventsInAreaReportModelFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CustomerWithNoEventsInAreaReportExport(customerWithNoEventsInAreaReportModelFilter, orgRoleUser.UserId); break; case ExportableReportType.CallCenterCallReport: var callCenterCallReportModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CallCenterCallReportModelFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CallCenterCallReportExport(callCenterCallReportModelFilter, orgRoleUser.UserId); break; case ExportableReportType.ConfirmationReport: var confirmationReportFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <ConfirmationReportFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.ConfirmationReportExport(confirmationReportFilter, orgRoleUser.UserId); break; case ExportableReportType.CallSkippedReport: var callSkippedFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CallSkippedReportFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.CallSkippedReportExport(callSkippedFilter, orgRoleUser.UserId); break; case ExportableReportType.PcpTrackingReport: var pcpTrackingReportFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <PcpTrackingReportFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.PcpTrackingReportExport(pcpTrackingReportFilter, orgRoleUser.UserId); break; case ExportableReportType.CustomerSchedule: var customerScheduleModelFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <CustomerScheduleModelFilter>(exportableReportsQueue.FilterData); fileName = _schedulingExportableReportHelper.CustomerScheduleExport(customerScheduleModelFilter, orgRoleUser.UserId); break; case ExportableReportType.ExcludedCustomerReport: var excludedCustomerReport = Newtonsoft.Json.JsonConvert.DeserializeObject <OutboundCallQueueFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.ExcludedCusomerReportExport(excludedCustomerReport, orgRoleUser.UserId); break; case ExportableReportType.DisqualifiedTestReport: var disqualifiedTestReportFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <DisqualifiedTestReportFilter>(exportableReportsQueue.FilterData); fileName = _medicalExportableReportHelper.DisqualifiedTestReportExport(disqualifiedTestReportFilter, orgRoleUser.UserId); break; case ExportableReportType.PreAssessmentReport: var preAssessmentReportFilter = Newtonsoft.Json.JsonConvert.DeserializeObject <PreAssessmentReportFilter>(exportableReportsQueue.FilterData); fileName = _callCenterExportableReportHelper.PreAssessmentReportExport(preAssessmentReportFilter, orgRoleUser.UserId); break; } SaveFile(exportableReportsQueue, fileName); SendNotification(user, reportType.GetDescription(), orgRoleUser.UserId, exportableReportsQueue.RequestedBy); _logger.Info("Report :" + reportType.GetDescription() + " Requested by " + user.NameAsString + " Generated Successfully."); } else { _logger.Info(string.Format("Call Upload Parser can not be called as time of day is {0}", timeOfDay)); } } catch (Exception ex) { if (exportableReportsQueue != null) { UpdateExportReportEndTimeAndStaus(exportableReportsQueue, (long)ExportableReportStatus.Failed); } _logger.Error("ex " + ex.Message + " stack trace: " + ex.StackTrace); } }
protected void PaymentDetailsGrid_RowDataBound(object sender, GridViewRowEventArgs e) { switch (e.Row.RowType) { case DataControlRowType.DataRow: { var data = e.Row.DataItem as EventHostDepositViewData; if (data != null) { var eventAddress = e.Row.FindControl("eventAddress") as HtmlContainerControl; var deliverToAddress = e.Row.FindControl("deliverToAddress") as HtmlContainerControl; var paymentType = e.Row.FindControl("paymentType") as HtmlContainerControl; var paymentMode = e.Row.FindControl("paymentMode") as HtmlContainerControl; var paymentStatusDropDown = e.Row.FindControl("paymentStatusDropDown") as DropDownList; var cancellationDate = e.Row.FindControl("cancellationDate") as Literal; var dueDate = e.Row.FindControl("dueDate") as Literal; var eventDateIcon = e.Row.FindControl("_eventDateIcon") as HtmlContainerControl; var lastModifiedDate = e.Row.FindControl("_lastModifiedDate") as HtmlContainerControl; var eventStatus = e.Row.FindControl("_eventStatus") as HtmlContainerControl; var paymentStatus = e.Row.FindControl("_paymentStatus") as HtmlContainerControl; long organizationRoleUserId = 0; DateTime?paymentRequested = null; if (dueDate != null && data.DueDate.HasValue) { dueDate.Text = data.DueDate.Value.ToShortDateString(); } if (cancellationDate != null && data.IsDeposit && data.DepositFullRefundDueDate != null) { cancellationDate.Text = data.DepositFullRefundDueDate.Value.ToShortDateString(); } if (eventAddress != null) { eventAddress.InnerHtml = CommonCode.AddressMultiLine(data.EventStreetAddressLine1, data.EventStreetAddressLine2, data.EventCity, data.EventState, data.EventZip); } if (deliverToAddress != null) { deliverToAddress.InnerHtml = CommonCode.AddressMultiLine(data.StreetAddressLine1, data.StreetAddressLine2, data.City, data.State, data.Zip); } if (paymentStatusDropDown != null) { var status = data.Status.ToString(); BindPaymentStatus(status, paymentStatusDropDown); } var amountSpan = e.Row.FindControl("_amount") as HtmlContainerControl; string paymentToolTip = string.Empty; decimal amount = 0m; if (eventStatus != null && data.EventStatus != EventStatus.Active) { eventStatus.InnerHtml = "<strong>Event Status:</strong><br />" + data.EventStatus.ToString(); } if (amountSpan != null) { if (!data.IsDeposit) { bool isAppliedToCost = false; try { var hostDeposit = _hostDeositRepository.GetById(data.EventId); if (hostDeposit != null && hostDeposit.DepositApplicablityMode == DepositType.AppliedToCost) { isAppliedToCost = true; amount = hostDeposit.IsActive ? data.Amount - hostDeposit.Amount : data.Amount - 0; organizationRoleUserId = hostDeposit.PaymentRecordedBy != null ? hostDeposit.PaymentRecordedBy.Id : 0; paymentRequested = hostDeposit.CreatedDate; } else { amount = data.Amount; } if (isAppliedToCost) { paymentToolTip = "<a class=\"jtip\" href=\"#\" title=\"Details|Room Rent = $" + data.Amount.ToString("#.##"); if (hostDeposit.IsActive) { paymentToolTip += "<br /> Deposit = $" + hostDeposit.Amount.ToString("#.##"); } paymentToolTip += "<br /> Amount Payable = $" + amount.ToString("#.##") + "\">" + amount.ToString("#.##") + "</a>"; amountSpan.InnerHtml = paymentToolTip; } else { paymentToolTip = "<a class=\"jtip\" href=\"#\" title=\"Details|Room Rent = $" + data.Amount.ToString("#.##"); if (hostDeposit.IsActive) { paymentToolTip += "<br /> Deposit = Refundable"; } paymentToolTip += "<br />Amount Payable = $" + amount.ToString("#.##") + "\">" + amount.ToString("#.##") + "</a>"; amountSpan.InnerHtml = paymentToolTip; } } catch { amount = data.Amount; paymentToolTip = "<a class=\"jtip\" href=\"#\" title=\"Details|Room Rent = $" + data.Amount.ToString("#.##") + "<br /> Deposit = Refundable <br /> Amount Payable = $" + amount.ToString("#.##") + "\">" + amount.ToString("#.##") + "</a>"; amountSpan.InnerHtml = paymentToolTip; } } else { paymentToolTip = "<a class=\"jtip\" href=\"#\" title=\"Details|This is deposit amount $" + data.Amount.ToString("#0.00") + "\">" + data.Amount.ToString("#0.00") + "</a>"; amountSpan.InnerHtml = paymentToolTip; var hostPayment = _hostPaymentRepository.GetById(data.EventId); organizationRoleUserId = hostPayment.PaymentRecordedBy != null ? hostPayment.PaymentRecordedBy.Id : 0; paymentRequested = hostPayment.CreatedDate; } } // Payment Recorded By if (organizationRoleUserId > 0 && data.EventStatus != EventStatus.Active) { var organizationRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(organizationRoleUserId); if (organizationRoleUser != null) { ICustomerRepository customerRepository = new CustomerRepository(); var userDetails = customerRepository.GetCustomerByUserId(organizationRoleUser.UserId); if (userDetails != null && paymentStatus != null) { paymentStatus.InnerHtml = "Payment Recorded By:" + userDetails.Name.FullName; if (paymentRequested != null) { paymentStatus.InnerHtml = paymentStatus.InnerHtml + "<br />" + "Payment Date:" + paymentRequested.Value.ToShortDateString(); } } } } if (paymentType != null) { paymentType.InnerHtml = data.IsDeposit ? "Deposit" : "Room Rent"; } if (paymentMode != null) { var payment = data.PaymentMode.ToString(); paymentMode.InnerHtml = Enum.Parse(typeof(HostPaymentType), payment).ToString(); if (paymentMode.InnerText == HostPaymentType.Both.ToString()) { paymentMode.InnerText = "Check/CC"; } } var eventWizardAnchor = e.Row.FindControl("EventWizardAnchor") as HtmlAnchor; if (eventWizardAnchor != null) { eventWizardAnchor.HRef = "/App/Common/CreateEventWizard/Step1.aspx?EventID=" + data.EventId; } //var updateButton = e.Row.FindControl("UpdateButton") as Button; //if (data.Status == HostPaymentStatus.Paid || data.Status == HostPaymentStatus.Refunded) ////if (data.Status == HostPaymentStatus.Refunded) ////{ //// e.Row.Enabled = false; //// updateButton.Enabled = false; ////} // Past,Cussrent,Future event date icon if (eventDateIcon != null) { if (data.EventDate.ToString("MM/dd/yyyy").Equals(DateTime.Now.ToString("MM/dd/yyyy"))) { eventDateIcon.InnerHtml = "<img src=\"/App/Images/icon-todays-event.gif\" title=\"Today Event\" alt=\"Today Event\"/>"; } else if (data.EventDate > DateTime.Now) { eventDateIcon.InnerHtml = "<img src=\"/App/Images/icon-future-event.gif\" title=\"Future Event\" alt=\"Future Event\"/>"; } else if (data.EventDate < DateTime.Now) { eventDateIcon.InnerHtml = "<img src=\"/App/Images/icon-past-event.gif\" title=\"Past Event\" alt=\"Past Event\"/>"; } } // Last Modified Date if (data.HostPaymentTransactions != null && data.HostPaymentTransactions.Count > 0) { lastModifiedDate.InnerHtml = data.HostPaymentTransactions.LastOrDefault().TransactionDate.ToString("MM/dd/yyyy"); } var _spanPrintButton = e.Row.FindControl("_spanPrintButton") as HtmlContainerControl; if (data.Status == HostPaymentStatus.Pending) { _spanPrintButton.Style.Add(HtmlTextWriterStyle.Display, "none"); } else { _spanPrintButton.Style.Add(HtmlTextWriterStyle.Display, "block"); } } } break; } }
public void PollForSendNotification() { try { _logger.Info("Starting the Polling Agent to Send Notification to Nurse Practitioner after evaluation."); var eventCustomerResults = _eventCustomerResultRepository.GetEventCustomerResultByResultState((int)NewTestResultStateNumber.Evaluated, false, _settings.ResultFlowChangeDate); if (eventCustomerResults.IsNullOrEmpty()) { _logger.Info("No record found to send notification."); return; } var cryptographyService = new DigitalDeliveryCryptographyService(); _logger.Info("Total Customer: " + eventCustomerResults.Count()); var appUrl = _settings.AppUrl; var medicareAppUrl = _settings.MedicareAppUrl; foreach (var eventCustomerResult in eventCustomerResults) { try { _logger.Info("sending Notification to Np customer Id: " + eventCustomerResult.CustomerId + "event Id: " + eventCustomerResult.EventId); var eventCustomer = _eventCustomerRepository.GetRegisteredEventForUser(eventCustomerResult.CustomerId, eventCustomerResult.EventId); if (eventCustomer.AwvVisitId.HasValue) { var model = new EhrReadyForReEvaluation { EventId = eventCustomerResult.EventId, HfCustomerId = eventCustomerResult.CustomerId, Message = "", ReadyForReEvaluation = true }; _logger.Info(string.Format("Sending for Sync ready for Reevaluation to HRA for NursePractitionerId: {0} for CustomerId: {1} and EventId: {2}", eventCustomerResult.SignedOffBy.Value, eventCustomerResult.CustomerId, eventCustomerResult.EventId)); var isSynced = _newResultFlowStateService.SyncReadyForEvaluation(model, eventCustomerResult.DataRecorderMetaData.DataRecorderModifier.Id, "Calling from polling agent PollForSendNotification"); if (isSynced) { _logger.Info(string.Format(" Synced Notification send To NP and HRA has been updated NursePractitionerId: {0} for CustomerId: {1} and EventId: {2}", eventCustomerResult.SignedOffBy.Value, eventCustomerResult.CustomerId, eventCustomerResult.EventId)); var orgRoleUser = _organizationRoleUserRepository.GetOrganizationRoleUser(eventCustomerResult.SignedOffBy.Value); var urlTestDocumentation = appUrl + string.Format("/App/Common/Results.aspx?key={0}", cryptographyService.Encrypt(eventCustomerResult.EventId + "~" + eventCustomerResult.CustomerId)); var urlUnlockAssessment = medicareAppUrl + string.Format("/mailauth/{0}", eventCustomer.AwvVisitId); var urlTriggersReadyForCodingStatus = ""; // need to write code for this url variables var notificationModel = _emailNotificationModelsFactory.GetNPfordiagnosingwithlinkNotificationViewModel(eventCustomerResult.CustomerId, eventCustomerResult.EventId, urlTestDocumentation, urlUnlockAssessment, urlTriggersReadyForCodingStatus); _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.NPfordiagnosingwithlinkNotification, EmailTemplateAlias.NPfordiagnosingwithlinkNotification, notificationModel, orgRoleUser.UserId, _RequestedByOrgRoleUserId, "SendNotiificationToNursePractitionerPollingAgent"); _logger.Info(string.Format("Notification sent to NursePractitionerId: {0} for CustomerId: {1} and EventId: {2}", eventCustomerResult.SignedOffBy.Value, eventCustomerResult.CustomerId, eventCustomerResult.EventId)); _testResultService.SetResultstoState(eventCustomerResult.EventId, eventCustomerResult.CustomerId, (int)NewTestResultStateNumber.NpNotificationSent, false, eventCustomerResult.DataRecorderMetaData.DataRecorderModifier.Id); _logger.Info(string.Format(" Result State has been update for CustomerId: {0} and EventId: {1}", eventCustomerResult.CustomerId, eventCustomerResult.EventId)); } _logger.Info(string.Format("Synced To NP and HRA NursePractitionerId: {0} for CustomerId: {1} and EventId: {2} and hra Result {3}", eventCustomerResult.SignedOffBy.Value, eventCustomerResult.CustomerId, eventCustomerResult.EventId, isSynced)); } else { _logger.Error(string.Format("AwvVisitId is null for CustomerId: {0} and EventId: {1}", eventCustomerResult.CustomerId, eventCustomerResult.EventId)); } } catch (Exception ex) { _logger.Error(string.Format("System failure: For NursePractitionerId: {0}, CustomerId: {1} and EventId: {2}", eventCustomerResult.SignedOffBy.Value, eventCustomerResult.CustomerId, eventCustomerResult.EventId)); _logger.Error("Error Message: " + ex.Message); } } } catch (Exception ex) { _logger.Error("Exception occurred on execution of SendNotiificationToNursePractitionerPollingAgent."); _logger.Error("Error Message: " + ex.Message); } }
public void PollForOutboundChase() { var outboundUploads = _outboundUploadRepository.GetAllUploadedFilesByType((long)OutboundUploadType.ChaseOutbound); if (outboundUploads == null || !outboundUploads.Any()) { _logger.Info("No new files uploaded."); return; } var accountIds = _accountIds.Split(','); //var activityTypes = _activityTypeRepository.GetAll(); foreach (var accountId in accountIds) { var account = _corporateAccountRepository.GetById(Convert.ToInt32(accountId)); var fileLocation = _mediaRepository.GetOutboundUploadMediaFileLocation(account.FolderName, "Chase"); var archivedFileLocation = _mediaRepository.GetOutboundUploadMediaFileLocation(account.FolderName, "ChaseArchived"); foreach (var outboundUpload in outboundUploads) { try { var file = GetFile(outboundUpload.FileId); if (!System.IO.File.Exists(fileLocation.PhysicalPath + file.Path)) { _logger.Info("File not found : " + fileLocation.PhysicalPath + file.Path); continue; } _logger.Info("Importing File : " + file.Path); outboundUpload.StatusId = (long)OutboundUploadStatus.Parsing; outboundUpload.ParseStartTime = DateTime.Now; _outboundUploadRepository.Save(outboundUpload); DataTable table = _pipeDelimitedReportHelper.Read(fileLocation.PhysicalPath + file.Path); if (table.Rows.Count <= 0) { _logger.Info("No rows found."); outboundUpload.ParseEndTime = DateTime.Now; outboundUpload.StatusId = (long)OutboundUploadStatus.Parsed; _outboundUploadRepository.Save(outboundUpload); continue; } var csvStringBuilder = new StringBuilder(); csvStringBuilder.Append(LogHeader + Environment.NewLine); var languages = _languageRepository.GetAll(); var labs = _labRepository.GetAll(); var successRows = 0; foreach (DataRow row in table.Rows) { var model = GetChaseOutboundModel(row); var errorRow = model.TenantId + "|" + model.ClientId + "|" + model.CampaignId + "|" + model.IndividualId + "|" + model.ContractNumber + "|" + model.ContractPersonNumber + "|" + model.ConsumerId; try { if (!string.IsNullOrEmpty(model.HomeAddressState)) { try { var state = _stateRepository.GetStatebyCode(model.HomeAddressState) ?? _stateRepository.GetState(model.HomeAddressState); if (state != null) { model.HomeAddressState = state.Name; } else { csvStringBuilder.Append(errorRow + "|" + "Invalid Home_Addr_State" + Environment.NewLine); continue; } } catch (Exception ex) { _logger.Error("Error importing data."); _logger.Error("Message: " + ex.Message + "\nStack Trace; " + ex.StackTrace); csvStringBuilder.Append(errorRow + "|" + ex.Message + Environment.NewLine); continue; } } if (!string.IsNullOrEmpty(model.AddressState)) { try { var state = _stateRepository.GetStatebyCode(model.AddressState) ?? _stateRepository.GetState(model.AddressState); if (state != null) { model.AddressState = state.Name; } else { csvStringBuilder.Append(errorRow + "|" + "Invalid Addr_State" + Environment.NewLine); continue; } } catch (Exception ex) { _logger.Error("Error importing data."); _logger.Error("Message: " + ex.Message + "\nStack Trace; " + ex.StackTrace); csvStringBuilder.Append(errorRow + "|" + ex.Message + Environment.NewLine); continue; } } if (!string.IsNullOrEmpty(model.ProviderOfRecordAddressState)) { try { var state = _stateRepository.GetStatebyCode(model.ProviderOfRecordAddressState) ?? _stateRepository.GetState(model.ProviderOfRecordAddressState); if (state != null) { model.ProviderOfRecordAddressState = state.Name; } else { csvStringBuilder.Append(errorRow + "|" + "Invalid Provider_Addr_State" + Environment.NewLine); continue; } } catch (Exception ex) { _logger.Error("Error importing data."); _logger.Error("Message: " + ex.Message + "\nStack Trace; " + ex.StackTrace); csvStringBuilder.Append(errorRow + "|" + ex.Message + Environment.NewLine); continue; } } var chaseOutbound = _chaseOutboundFactory.Create(model); var corporateCustomerEditModel = _chaseOutboundFactory.CreateCorporateCustomerEditModel(model); var createdBy = _organizationRoleUserRepository.GetOrganizationRoleUser(1); StringBuilder sb = new StringBuilder(); //var activityType = activityTypes.FirstOrDefault(x => x.Alias == corporateCustomerEditModel.Activity); bool isNewCustomer = false; DateTime?dob = null; if (!string.IsNullOrEmpty(corporateCustomerEditModel.Dob)) { try { dob = Convert.ToDateTime(corporateCustomerEditModel.Dob); } catch (Exception ex) { throw new Exception("DOB is not in correct format. Please Provide in MM/DD/YYYY", ex); } } var customer = _customerRepository.GetCustomerForCorporate(corporateCustomerEditModel.FirstName, corporateCustomerEditModel.MiddleName, corporateCustomerEditModel.LastName, corporateCustomerEditModel.Email, PhoneNumber.ToNumber(corporateCustomerEditModel.PhoneHome), PhoneNumber.ToNumber(corporateCustomerEditModel.PhoneCell), dob, account.Tag, sb); var updatedCustomer = _customerRegistrationService.RegisterCorporateCustomer(customer, corporateCustomerEditModel, account.Tag, createdBy, languages, labs, sb, (long)UploadActivityType.BothMailAndCall, null, out isNewCustomer); chaseOutbound.CustomerId = updatedCustomer.CustomerId; var address = new Address(model.AddressLine1, model.AddressLine2, model.AddressCity, model.AddressState, model.AddressZipCode, "USA"); address = _addressService.SaveAfterSanitizing(address); if (address.Id > 0) { _customerRepository.UpdateBillingAddress(updatedCustomer.CustomerId, address.Id); } var customTags = model.CustomTags.Split(','); if (customTags != null && customTags.Any() && updatedCustomer != null) { foreach (var customTag in customTags) { _corporateCustomerCustomTagService.Save(new CorporateCustomerCustomTag { CustomerId = updatedCustomer.CustomerId, IsActive = true, Tag = customTag, DataRecorderMetaData = new DataRecorderMetaData(new OrganizationRoleUser(createdBy.Id), DateTime.Now, null) }); } } if (!string.IsNullOrEmpty(model.RelationshipCode) || !string.IsNullOrEmpty(model.RelationshipDescription)) { var relationship = GetRelationship(model.RelationshipCode, model.RelationshipDescription); chaseOutbound.RelationshipId = relationship.Id; } chaseOutbound = _chaseOutboundRepository.Save(chaseOutbound); // _chaseProductRepository.DeleteByCustomerId(chaseOutbound.CustomerId); if (!string.IsNullOrEmpty(model.ProductLevel1)) { SaveChaseProduct(model.ProductLevel1, 1, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ProductLevel2)) { SaveChaseProduct(model.ProductLevel2, 2, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ProductLevel3)) { SaveChaseProduct(model.ProductLevel3, 3, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ProductLevel4)) { SaveChaseProduct(model.ProductLevel4, 4, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ProductLevel5)) { SaveChaseProduct(model.ProductLevel5, 5, chaseOutbound.CustomerId, chaseOutbound.Id); } // _chaseChannelLevelRepository.DeleteByCustomerId(chaseOutbound.CustomerId); if (!string.IsNullOrEmpty(model.ChannelLevel2)) { SaveChaseChannel(model.ChannelLevel2, 2, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ChannelLevel3)) { SaveChaseChannel(model.ChannelLevel3, 3, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.GroupName) || !string.IsNullOrEmpty(model.GroupNumber) || !string.IsNullOrEmpty(model.GroupDivision)) { var chaseGroup = GetChaseGroup(model.GroupName, model.GroupNumber, model.GroupDivision); chaseOutbound.ChaseGroupId = chaseGroup.Id; } if (string.IsNullOrEmpty(model.CampaignId) || string.IsNullOrEmpty(model.CampaignName)) { _logger.Info("Campaign Id/Name missing. Incomplete Data"); /*csvStringBuilder.Append(errorRow + "|" + "Campaign Id/Name missing. Incomplete Data." + Environment.NewLine); * continue;*/ } else { SaveCampaign(model, chaseOutbound.CustomerId, chaseOutbound.Id); } if (!string.IsNullOrEmpty(model.ForecastedOutreachDate)) { try { chaseOutbound.ForecastedOutreachDate = Convert.ToDateTime(model.ForecastedOutreachDate); } catch (Exception) { csvStringBuilder.Append(errorRow + "|" + "Forecasted_Outreach_Date is not in correct format. Please Provide in MM/DD/YYYY" + Environment.NewLine); continue; } } if (!string.IsNullOrEmpty(model.RecordProcessDate)) { try { chaseOutbound.RecordProcessDate = Convert.ToDateTime(model.RecordProcessDate); } catch (Exception) { csvStringBuilder.Append(errorRow + "|" + "Record_Process_Date is not in correct format. Please Provide in MM/DD/YYYY" + Environment.NewLine); continue; } } successRows++; } catch (Exception ex) { _logger.Error("Error importing data."); _logger.Error("Message: " + ex.Message + "\nStack Trace; " + ex.StackTrace); csvStringBuilder.Append(errorRow + "|" + ex.Message + Environment.NewLine); } } if (successRows < table.Rows.Count) { var logFileName = _pipeDelimitedReportHelper.GetReportName(ReportType.Exception); var logFile = SaveLogFile(fileLocation.PhysicalPath + logFileName + ".txt", csvStringBuilder); outboundUpload.LogFileId = logFile.Id; } outboundUpload.SuccessUploadCount = successRows; outboundUpload.FailedUploadCount = table.Rows.Count - successRows; outboundUpload.ParseEndTime = DateTime.Now; outboundUpload.StatusId = successRows > 0 ? (long)OutboundUploadStatus.Parsed : (long)OutboundUploadStatus.ParseFailed; _outboundUploadRepository.Save(outboundUpload); if (successRows > 1) { System.IO.File.Move(fileLocation.PhysicalPath + file.Path, archivedFileLocation.PhysicalPath + file.Path); ((IFileRepository)_fileRepository).MarkasArchived(file.Id); } } catch (Exception ex) { outboundUpload.StatusId = (long)OutboundUploadStatus.ParseFailed; _outboundUploadRepository.Save(outboundUpload); _logger.Error(string.Format("while Parsing File")); _logger.Error("Ex Message" + ex.Message); _logger.Error("Ex Stack Trace " + ex.StackTrace); } } } }