Example #1
0
        public void Parse()
        {
            _logger.Info("Starting Member Upload Parsing");

            var corporateUploads = _corporateUploadRepository.GetByParseStatus((int)MemberUploadParseStatus.Start);

            if (corporateUploads == null || !corporateUploads.Any())
            {
                _logger.Info("No corporate Upload found to parse");
            }

            foreach (var corporateUpload in corporateUploads)
            {
                try
                {
                    _logger.Info("\n\n--------------------------------------------------------------------------------------------------------------------");
                    _logger.Info("-------------------------------Starting Parsing for corporateUploadId: " + corporateUpload.Id + "----------------------------------");
                    UpdateCorporateUploadStatus(corporateUpload, MemberUploadParseStatus.Parsing);

                    var members = _memberUploadParseDetailRepository.GetByCorporateUploadId(corporateUpload.Id);

                    if (members == null || !members.Any())
                    {
                        _logger.Info("No members found by corporateUploadId: " + corporateUpload.Id);
                        UpdateCorporateUploadStatus(corporateUpload, MemberUploadParseStatus.Parsed);
                        _logger.Info("-------------------------------Parsing completed for corporateUploadId: " + corporateUpload.Id + "----------------------------------\n\n");
                        continue;
                    }

                    foreach (var member in members)
                    {
                        _logger.Info("Parsing for CustomerId: " + member.CustomerId);
                        var eventCustomers = _eventCustomerPreApprovedTestService.GetFutureEventCustomers(member.CustomerId, isTodayIncluded: false);
                        var viewModel      = _memberUploadParseDetailFactory.GetCorporateCustomerModel(member, corporateUpload.Id);
                        if (eventCustomers == null || !eventCustomers.Any())
                        {
                            _corporateCustomerUploadService.UpateCustomerPreApprovedTest(viewModel, corporateUpload.UploadedBy, member.CustomerId);
                            _corporateCustomerUploadService.UpdateCustomerPreApprovedPackges(viewModel, corporateUpload.UploadedBy, member.CustomerId);
                        }
                        else
                        {
                            _eventCustomerPreApprovedTestService.MarkcustomerForAdjustOrder(viewModel, eventCustomers, corporateUpload.UploadedBy, member.CustomerId, corporateUpload.Id);

                            _corporateCustomerUploadService.UpateCustomerPreApprovedTest(viewModel, corporateUpload.UploadedBy, member.CustomerId);
                            _corporateCustomerUploadService.UpdateCustomerPreApprovedPackges(viewModel, corporateUpload.UploadedBy, member.CustomerId);
                            _corporateCustomerUploadService.UpdateCustomerPreApprovedForFutureEvents(eventCustomers, viewModel);
                        }

                        _logger.Info("Parsed for CustomerId: " + member.CustomerId);
                    }

                    UpdateCorporateUploadStatus(corporateUpload, MemberUploadParseStatus.Parsed);
                    _logger.Info("-------------------------------Parsing completed for corporateUploadId: " + corporateUpload.Id + "----------------------------------\n\n");
                }
                catch (Exception ex)
                {
                    _logger.Error("Parsing failed for corporateUploadId" + corporateUpload.Id);
                    _logger.Error("Error: " + ex.Message + ". StackTrace: " + ex.StackTrace);
                    UpdateCorporateUploadStatus(corporateUpload, MemberUploadParseStatus.Failed);
                }
            }
        }