public AppQuery(
            ILabRepository labRepository,
            IProjectRepository projectRepository,
            IListRepository listRepository,
            ISeriesRepository seriesRepository,
            IPointRepository pointRepository)
        {
            #region GetAll
            Field <ListGraphType <LabType> >(
                "labs",
                resolve: context => labRepository.GetAll()
                );

            Field <ListGraphType <ProjectType> >(
                "projects",
                resolve: context => projectRepository.GetAll()
                );

            Field <ListGraphType <ListType> >(
                "lists",
                resolve: context => listRepository.GetAll()
                );

            Field <ListGraphType <SeriesType> >(
                "series",
                resolve: context => seriesRepository.GetAll()
                );

            Field <ListGraphType <PointType> >(
                "points",
                resolve: x => pointRepository.GetAll()
                );
            #endregion
            #region GetById
            Field <LabType>(
                "lab",
                arguments: new QueryArguments(new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idLab"
            }),
                resolve: context =>
            {
                return(labRepository.GetById(context.GetArgument <int>("idLab")));
            }
                );

            Field <ProjectType>(
                "project",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idLab"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idProject"
            }
                    ),
                resolve: context =>
            {
                return(projectRepository.GetById(
                           context.GetArgument <int>("idLab"),
                           context.GetArgument <int>("idProject")));
            }
                );

            Field <SeriesType>(
                "serie",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idLab"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idProject"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idSeries"
            }
                    ),
                resolve: context =>
            {
                return(seriesRepository.GetById(
                           context.GetArgument <int>("idLab"),
                           context.GetArgument <int>("idProject"),
                           context.GetArgument <int>("idSeries")));
            }
                );

            Field <ListType>(
                "list",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idLab"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idProject"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idList"
            }
                    ),
                resolve: context =>
            {
                return(listRepository.GetById(
                           context.GetArgument <int>("idLab"),
                           context.GetArgument <int>("idProject"),
                           context.GetArgument <int>("idList")));
            }
                );

            Field <PointType>(
                "point",
                arguments: new QueryArguments(
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idLab"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idProject"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idSeries"
            },
                    new QueryArgument <NonNullGraphType <IdGraphType> > {
                Name = "idPoint"
            }
                    ),
                resolve: context =>
            {
                return(pointRepository.GetById(
                           context.GetArgument <int>("idLab"),
                           context.GetArgument <int>("idProject"),
                           context.GetArgument <int>("idSeries"),
                           context.GetArgument <int>("idPoint")));
            }
                );
            #endregion
        }
Beispiel #2
0
        public void PollForMemberUploadbyAces()
        {
            try
            {
                if (_stopMemberUploadbyAces)
                {
                    _logger.Info("Customer Eligibility Upload Polling Agent stopped @:" + DateTime.Now);
                    return;
                }

                _logger.Info("Entering Member Upload by Aces Polling Agent @" + DateTime.Now);

                if (!DirectoryOperationsHelper.IsDirectoryExist(_memberUploadbyAcesSourceFolderPath))
                {
                    _logger.Info("Source folder not availble.");
                    return;
                }
                var files = DirectoryOperationsHelper.GetFiles(_memberUploadbyAcesSourceFolderPath, "*.txt");

                if (files.IsNullOrEmpty())
                {
                    _logger.Info("Files not availble in Source Folder.");
                    return;
                }

                var intakeFiles = files.Where(x => x.ToLower().Contains("outtake") && !x.ToLower().Contains("eligibility")).ToList();

                if (intakeFiles.IsNullOrEmpty())
                {
                    _logger.Info("Files not availble in Source Folder after outtake filter.");
                    return;
                }

                var mediaLocation = _mediaRepository.GetMemberUploadbyAcesFolderLocation();

                MoveFileMediaLocation(intakeFiles, mediaLocation);

                var todaysFiles = DirectoryOperationsHelper.GetFiles(Path.Combine(mediaLocation.PhysicalPath, DateTime.Today.ToString("yyyyMMdd")));

                if (todaysFiles.IsNullOrEmpty())
                {
                    _logger.Info("Files not availble in Source Folder.");
                    return;
                }

                var corporateAccount = _corporateAccountRepository.GetAllCorporateAccountAcestoHipInTake();
                if (corporateAccount.IsNullOrEmpty())
                {
                    _logger.Info("Account not found for Aces to Hip upload.");
                    return;
                }

                var languages = _languageRepository.GetAll();
                var labs      = _labRepository.GetAll();

                var sendMail = false;
                foreach (var account in corporateAccount)
                {
                    _logger.Info("Parsing start for Account Tag :" + account.Tag);

                    var acesToHipIntakeShortName = account.AcesToHipIntakeShortName;

                    if (string.IsNullOrWhiteSpace(acesToHipIntakeShortName))
                    {
                        _logger.Info("AcesToHipIntake ShortName is blank for Account Tag :" + account.Tag);
                        continue;
                    }

                    acesToHipIntakeShortName = acesToHipIntakeShortName.ToLower() + "_";
                    var filesAcesToHipIntakeShortName = todaysFiles.Where(x => x.ToLower().Contains(acesToHipIntakeShortName) && x.ToLower().Contains("outtake") && !x.ToLower().Contains("eligibility"));

                    if (filesAcesToHipIntakeShortName.IsNullOrEmpty())
                    {
                        _logger.Info("Files not available for Short name : " + acesToHipIntakeShortName + " and Account Tag :" + account.Tag);
                        continue;
                    }

                    var customerList = new List <long>();

                    foreach (var file in filesAcesToHipIntakeShortName)
                    {
                        var filewithoutExtension = Path.GetFileNameWithoutExtension(file);
                        var acesClientShortName  = filewithoutExtension.Split('_')[0];
                        if (acesClientShortName.ToLower() != account.AcesToHipIntakeShortName.ToLower())
                        {
                            _logger.Info("File Short name : " + acesClientShortName + " and Account Short name :" + account.AcesToHipIntakeShortName.ToLower() + " not matched.");
                            continue;
                        }

                        if (ParseMemberUploadbyAces(file, account, customerList, languages, labs))
                        {
                            if (!sendMail)
                            {
                                sendMail = true;
                            }
                        }
                    }

                    if (customerList.IsNullOrEmpty())
                    {
                        _logger.Info("PatientReportWithnoCustomTag Report not generated because new Customer not found for short name : " + acesToHipIntakeShortName + " and Account Tag :" + account.Tag);
                        continue;
                    }

                    PatientReportWithnoCustomTag(customerList.ToArray(), account.Tag);
                }
                if (sendMail)
                {
                    var listWithoutCustomTagsModel = _emailNotificationModelsFactory.GetListWithoutCustomTagsViewModel(_memberUploadbyAcesSourceFolderPath, Path.Combine(_memberUploadbyAcesSourceFolderPath, "Failed")
                                                                                                                       , Path.Combine(_memberUploadbyAcesSourceFolderPath, "AdjustOrder"));
                    _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.ListWithoutCustomTags, EmailTemplateAlias.ListWithoutCustomTags, listWithoutCustomTagsModel, 0, 1, "MemberUploadbyAcesPollingAgent");
                }
            }
            catch (Exception ex)
            {
                _logger.Error(string.Format("Exception occurred during execution of servcie. \nException Message: {0}\n\tStackTrace:{1}", ex.Message, ex.StackTrace));
                return;
            }
        }
Beispiel #3
0
 public IEnumerable <Lab> Get()
 {
     return(repository.GetAll());
 }
Beispiel #4
0
 public async Task <ActionResult <IEnumerable <LabModel> > > GetLab()
 {
     return(await _labRepository.GetAll());
 }
Beispiel #5
0
 public IEnumerable <Lab> GetLabs()
 {
     return(_labRepository.GetAll().OrderBy(x => x.Id));
 }
Beispiel #6
0
        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);
                    }
                }
            }
        }
        public JsonResult UploadCustomers(UploadCorporateCustomers model)
        {
            var fileName          = model.FileName;
            var pageSize          = model.PageSize;
            var tag               = model.Tag;
            var failedRecordsFile = model.FailedRecordsFile;
            var adjustOrderFile   = model.AdjustOrderRecordsFile;
            var pageNumber        = model.PageNumber;
            var customTags        = model.CustomTags;

            if (customTags != null)
            {
                customTags = customTags.Where(s => !string.IsNullOrEmpty(s)).Select(s => s).ToList();
            }
            var corporateModel = new CorporateUploadEditModel {
                Tag = tag, FileName = fileName, UploadCorporateId = model.UploadCorporateId
            };

            var mediaLocation = _mediaRepository.GetUploadCsvMediaFileLocation();
            var file          = mediaLocation.PhysicalPath + corporateModel.FileName;

            var csvReader = IoC.Resolve <ICsvReader>();

            var languages = _languageRepository.GetAll();
            var labs      = _labRepository.GetAll();

            var failureRecords         = mediaLocation.PhysicalPath + failedRecordsFile;
            var adjustOrderRecordsFile = mediaLocation.PhysicalPath + model.AdjustOrderRecordsFile;

            var customerTable        = csvReader.ReadWithTextQualifier(file);
            var createdByOrgRoleUser = Mapper.Map <OrganizationRoleUserModel, OrganizationRoleUser>(_sessionContext.UserSession.CurrentOrganizationRole);

            var customerIdWithSameAcesId = new List <CustomerWithDuplicateAcesModel>();

            try
            {
                //var failedCustomers = new List<CorporateCustomerEditModel>();
                var adjustOrderForCustomerEditModel = new List <EventCusomerAdjustOrderViewModel>();

                var query = customerTable.AsEnumerable();

                var rows                    = query.Skip(pageSize * (pageNumber - 1)).Take(pageSize);
                var customerToRender        = rows.Count();
                var corporateAccount        = _corporateAccountRepository.GetByTag(tag);
                var accountAdditionalFields = _accountAdditionalFieldRepository.GetAccountAdditionalFieldsEditModelByAccountId(corporateAccount.Id);
                var customerEditModel       = new CorporateCustomerEditModel();

                foreach (DataRow row in rows)
                {
                    var sb = new StringBuilder();
                    try
                    {
                        customerEditModel = _corporateUploadHelper.GetCorporateCustomerEditModel(row);

                        var customerWithDuplicateAcesModel = new CustomerWithDuplicateAcesModel();
                        _corporateUploadService.CorporateUploadDataRow(customerEditModel, languages, labs, customTags, corporateModel,
                                                                       accountAdditionalFields, adjustOrderForCustomerEditModel, createdByOrgRoleUser,
                                                                       _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId, null,
                                                                       (long)MemberUploadSource.CorporateUplaod, sb, model.UploadCorporateId.Value, out customerWithDuplicateAcesModel);

                        if (customerWithDuplicateAcesModel != null && customerWithDuplicateAcesModel.CustomerId > 0)
                        {
                            customerIdWithSameAcesId.Add(customerWithDuplicateAcesModel);
                        }
                    }
                    catch (Exception ex)
                    {
                        customerEditModel.ErrorMessage = sb.ToString();
                        if (!string.IsNullOrEmpty(ex.Message))
                        {
                            customerEditModel.ErrorMessage += " Error Message: " + ex.Message;
                        }
                        //failedCustomers.Add(customerEditModel);
                    }

                    var memberUploadParseDetail = _memberUploadParseDetailFactory.GetDomain(customerEditModel, model.UploadCorporateId.Value);
                    _memberUploadParseDetailRepository.Save(memberUploadParseDetail);
                }

                if (!customerIdWithSameAcesId.IsNullOrEmpty())
                {
                    _customerWithDuplicateAcesIdFileGenerator.GenerateCsvFile(model.UploadCorporateId.Value, customerIdWithSameAcesId);
                }

                corporateModel.TotalCustomers = customerTable.Rows.Count;

                var totalPages      = corporateModel.TotalCustomers / pageSize + (corporateModel.TotalCustomers % pageSize != 0 ? 1 : 0);
                var failedCustomers = _memberUploadParseDetailRepository.GetByCorporateUploadId(model.UploadCorporateId.Value, false);
                corporateModel.FailedCustomers = failedCustomers != null?failedCustomers.Count() : 0;

                corporateModel.UploadedCustomers = customerToRender - corporateModel.FailedCustomers;
                corporateModel.IsParseSucceded   = totalPages == pageNumber;

                if (corporateModel.IsParseSucceded)
                {
                    var corporateUploadedBy = _sessionContext.UserSession.FullName;

                    string corporateName = string.Empty;
                    if (corporateAccount != null)
                    {
                        var organization = _organizationRepository.GetOrganizationbyId(corporateAccount.Id);
                        if (organization != null)
                        {
                            corporateName = organization.Name;
                        }
                    }

                    var corporateUploadNotificationModel = _emailNotificationModelsFactory.GetCorporateUploadNotificationViewModel(corporateName, corporateUploadedBy, corporateModel.TotalCustomers, (corporateModel.TotalCustomers - corporateModel.FailedCustomers), corporateModel.FailedCustomers);

                    _notifier.NotifySubscribersViaEmail(NotificationTypeAlias.CorporateUploadNotification, EmailTemplateAlias.CorporateUploadNotification, corporateUploadNotificationModel, 0, 1, "System: Corporate Upload Notification");
                    _logger.Info("Corporate Upload Notification:Mail Send for upload corporate :" + tag + " UploadedBy:  " + corporateUploadedBy + " on : " + DateTime.Now);
                }

                corporateModel.FailedRecordsFile = failedRecordsFile;

                if (failedCustomers != null && failedCustomers.Any())
                {
                    var failedMember = _memberUploadParseDetailFactory.GetCorporateCustomerListModel(failedCustomers, model.UploadCorporateId.Value);
                    _corporateUploadHelper.UpdateFailedRecords(failureRecords, failedMember);

                    if (model.LogFileId < 1)
                    {
                        var fileInfo = new FileInfo(failureRecords);

                        var files = new Core.Application.Domain.File
                        {
                            Path       = fileInfo.Name,
                            FileSize   = fileInfo.Length,
                            Type       = FileType.Csv,
                            UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId),
                            UploadedOn = DateTime.Now
                        };

                        files = _fileRepository.Save(files);

                        model.LogFileId = files.Id;
                    }
                }

                if (adjustOrderForCustomerEditModel.Any())
                {
                    _corporateUploadHelper.UpdateAdjustOrderRecords(adjustOrderRecordsFile, adjustOrderForCustomerEditModel);
                    if (model.AdjustOrderLogFileId < 1)
                    {
                        var fileInfo = new FileInfo(adjustOrderRecordsFile);
                        var files    = new Core.Application.Domain.File
                        {
                            Path       = fileInfo.Name,
                            FileSize   = fileInfo.Length,
                            Type       = FileType.Csv,
                            UploadedBy = new OrganizationRoleUser(_sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId),
                            UploadedOn = DateTime.Now
                        };

                        files = _fileRepository.Save(files);

                        model.AdjustOrderLogFileId = files.Id;
                    }
                }

                if (model.UploadCorporateId.HasValue && corporateModel.IsParseSucceded)
                {
                    var count = _corporateUploadHelper.FailedCustomerCount(failedRecordsFile, mediaLocation);

                    var uploadCorporate = _corporateUploadRepository.GetById(model.UploadCorporateId.Value);
                    uploadCorporate.SuccessfullUploadCount = (corporateModel.TotalCustomers - count);
                    uploadCorporate.FailedUploadCount      = count;

                    if (model.LogFileId > 0)
                    {
                        uploadCorporate.LogFileId = model.LogFileId;
                    }

                    if (model.AdjustOrderLogFileId > 0)
                    {
                        uploadCorporate.AdjustOrderLogFileId = model.AdjustOrderLogFileId;
                    }

                    uploadCorporate.ParseStatus = (int)MemberUploadParseStatus.Start;
                    _corporateUploadRepository.Save(uploadCorporate);
                }

                corporateModel.FailedCustomersListPath = _corporateUploadHelper.CheckIsFileContainsRecord(corporateModel.IsParseSucceded, mediaLocation, failedRecordsFile);
                corporateModel.AdjustOrderRecordsFile  = _corporateUploadHelper.CheckIsFileContainsRecord(corporateModel.IsParseSucceded, mediaLocation, adjustOrderFile);
            }
            catch (Exception ex)
            {
                corporateModel.FeedbackMessage = FeedbackMessageModel.CreateFailureMessage(ex.Message);
            }

            return(Json(new
            {
                corporateModel.FileName,
                corporateModel.UploadedCustomers,
                corporateModel.Tag,
                corporateModel.FailedCustomers,
                corporateModel.IsParseSucceded,
                PageNumber = pageNumber + 1,
                corporateModel.FailedCustomersListPath,
                LogFileId = model.LogFileId,
                corporateModel.AdjustOrderRecordsFile,
                model.AdjustOrderLogFileId
            }, JsonRequestBehavior.AllowGet));
        }
Beispiel #8
0
        public LabMaster getLastInserted()
        {
            var lastinserted = _labRepository.GetAll().LastOrDefault();

            return(lastinserted);
        }