Ejemplo n.º 1
0
        public void Update_withoutFileId_Test()
        {
            var resultArchive = _resultArchiveUploadRepository.GetById(_validResultArchiveId);

            resultArchive.Id = _validResultArchiveId;

            resultArchive.Status = ResultArchiveUploadStatus.UploadFailed;

            _resultArchiveUploadRepository.Save(resultArchive);
        }
Ejemplo n.º 2
0
        public void Parse()
        {
            long eventId;
            long uploadedBy;

            try
            {
                var resultArchive = _resultArchiveUploadRepository.GetById(_resultArchiveId);
                eventId    = resultArchive.EventId;
                uploadedBy = resultArchive.UploadedByOrgRoleUserId;

                var location = _mediaRepository.GetScannedDocumentStorageFileLocation(eventId);
                _pathforScannedFiles = location.PhysicalPath;
            }
            catch (ObjectNotFoundInPersistenceException <ResultArchive> ex)
            {
                //Put the log file entries here.
                _logger.Error("Invalid record provided for Parsing! Error: " + ex.Message + "\n\t" + ex.StackTrace);
                throw;
            }
            var isNewResultFlow = _eventRepository.IsEventHasNewResultFlow(eventId);

            string corpCode = "";

            try
            {
                var account = _corporateAccountRepository.GetForEventIdWithOrganizationDetail(eventId);
                if (account != null)
                {
                    corpCode = account.Name.Trim();
                }
            }
            catch (Exception ex)
            {
                _logger.Error("Exception while getting corp code. Message: " + ex.Message);
            }

            while (true)
            {
                var bioSoundFolderPath       = GetFolderPathfor(_compressedFolderPath, NameforBiosoundFolder);
                var cardioFolderPath         = GetFolderPathfor(_compressedFolderPath, NameforCardioFolder);
                var bloodworksFolderPath     = GetFolderPathfor(_compressedFolderPath, NameforBloodworksFolder);
                var ekgFolderPath            = GetFolderPathfor(_compressedFolderPath, _nameforEkgFolder);
                var ekgCardioCardFolderPath  = GetFolderPathfor(_compressedFolderPath, _nameforEkgCardioCardFolder);
                var geFolderPath             = GetFolderPathfor(_compressedFolderPath, NameforGeFolder);
                var pftFolderPath            = GetFolderPathfor(_compressedFolderPath, NameforPftFolder);
                var kynFolderPath            = GetFolderPathfor(_compressedFolderPath, NameforKynFolder);
                var eventFilesPath           = GetFolderPathfor(_compressedFolderPath, NameforEventfilesFolder);
                var ultrasoundTransducerPath = GetFolderPathfor(_compressedFolderPath, NameforSonoTransducerFolder);

                var awvPreventionPlanFolderPath = GetFolderPathfor(_compressedFolderPath, NameForAwvPreventionPlanFolder);
                var awvSnapShotFolder           = GetFolderPathfor(_compressedFolderPath, NameForAwvSnapShotFolder);

                var floChecFolderPath   = GetFolderPathfor(_compressedFolderPath, NameforFloChecAbiParser);
                var quantaFloFolderPath = GetFolderPathfor(_compressedFolderPath, NameforQuantaFloABIParser);

                var focAttestationPath = GetFolderPathfor(_compressedFolderPath, NameForFocAttestationParser);

                var SpiroFolderPath = GetFolderPathfor(_compressedFolderPath, nameforSpiroFolder);

                var dpnFolderPath = GetFolderPathfor(_compressedFolderPath, NameForDpnFolder, true);

                if (string.IsNullOrEmpty(ultrasoundTransducerPath))
                {
                    ultrasoundTransducerPath = GetFolderPathfor(_compressedFolderPath, AltNameforSonoTransducerFolder);
                }

                if (string.IsNullOrEmpty(bioSoundFolderPath) && string.IsNullOrEmpty(cardioFolderPath) && string.IsNullOrEmpty(bloodworksFolderPath) && string.IsNullOrEmpty(ekgFolderPath) &&
                    string.IsNullOrEmpty(geFolderPath) && string.IsNullOrEmpty(pftFolderPath) && string.IsNullOrEmpty(kynFolderPath) && string.IsNullOrEmpty(eventFilesPath) &&
                    string.IsNullOrEmpty(ultrasoundTransducerPath) && string.IsNullOrEmpty(awvPreventionPlanFolderPath) && string.IsNullOrEmpty(awvSnapShotFolder) &&
                    string.IsNullOrEmpty(floChecFolderPath) && string.IsNullOrEmpty(focAttestationPath) && string.IsNullOrEmpty(quantaFloFolderPath) && string.IsNullOrEmpty(ekgCardioCardFolderPath) &&
                    string.IsNullOrEmpty(SpiroFolderPath) && string.IsNullOrEmpty(dpnFolderPath)
                    )
                {
                    break;
                }

                if (!string.IsNullOrEmpty(bloodworksFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== Bloodworks Parsing - " + Directory.GetParent(bloodworksFolderPath).Name + "\\" + (new DirectoryInfo(bloodworksFolderPath)).Name + " ===========================================\n");

                        //_bloodworksParser = new BloodworksResultParser(bloodworksFolderPath, eventId, _logger, uploadedBy);
                        //var bloodworksCustomerScreeningData = _bloodworksParser.Parse();
                        //Save(bloodworksCustomerScreeningData, uploadedBy);
                        //SaveResultArchiveLogs(_bloodworksParser.ResultArchiveLogs);

                        _bloodworksParser = new BloodworksResultParser2(eventId, bloodworksFolderPath, _logger, _basicBiometricRepository, _eventCustomerRepository, uploadedBy, _lipidParserHelper);
                        var bloodworksCustomerScreeningData = _bloodworksParser.Parse();
                        Save(bloodworksCustomerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_bloodworksParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Bloodworks parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(bloodworksFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Blood works folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(kynFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== KYN Parsing - " + Directory.GetParent(kynFolderPath).Name + "\\" + (new DirectoryInfo(kynFolderPath)).Name + " ===========================================\n");

                        _kynParser = new KynResultParser(eventId, corpCode, _resultArchiveId, kynFolderPath, _settings, _logger, _customerRepository, _basicBiometricRepository, _eventCustomerRepository, uploadedBy, _lipidParserHelper, _customerService);
                        var testData = _kynParser.Parse();
                        Save(testData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_kynParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("KYN parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(kynFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Kyn folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(eventFilesPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== Moving Event Files - " + Directory.GetParent(eventFilesPath).Name + "\\" + (new DirectoryInfo(eventFilesPath)).Name + " ===========================================\n");
                        MoveEventFiles(eventFilesPath, _pathforScannedFiles);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Event Files: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                    finally
                    {
                        Directory.Delete(eventFilesPath, true);
                    }
                }

                if (!string.IsNullOrEmpty(ultrasoundTransducerPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== Ultrasound Transducer Parsing - " + Directory.GetParent(ultrasoundTransducerPath).Name + "\\" + (new DirectoryInfo(ultrasoundTransducerPath)).Name + " ===========================================\n");

                        var ultrasoundParser = new UltrasoundTransducerResultParser(ultrasoundTransducerPath, eventId, _logger, _settings);
                        var ultrasoundEventCustomerScreeningData = ultrasoundParser.Parse();
                        Save(ultrasoundEventCustomerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(ultrasoundParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Ultrasound Parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(ultrasoundTransducerPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Ultrasound folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(bioSoundFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== BioSound Parsing - " + Directory.GetParent(bioSoundFolderPath).Name + "\\" + (new DirectoryInfo(bioSoundFolderPath)).Name + " ===========================================\n");

                        if (IsNewBiosoundRequired(bioSoundFolderPath, _logger))
                        {
                            _bioSoundResultParser = new BioSound2ResultParser(bioSoundFolderPath, eventId, _logger);
                            var bioSoundEventCustomerScreeningData = _bioSoundResultParser.Parse();
                            Save(bioSoundEventCustomerScreeningData, uploadedBy, isNewResultFlow);
                            SaveResultArchiveLogs(_bioSoundResultParser.ResultArchiveLogs);
                        }
                        else
                        {
                            _bioSoundResultParser = new BioSoundResultParser(bioSoundFolderPath, _settings, eventId, _logger);
                            var bioSoundEventCustomerScreeningData = _bioSoundResultParser.Parse();
                            Save(bioSoundEventCustomerScreeningData, uploadedBy, isNewResultFlow);
                            SaveResultArchiveLogs(_bioSoundResultParser.ResultArchiveLogs);
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("BioSound parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(bioSoundFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Biosound folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(pftFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== PFT Parsing - " + Directory.GetParent(pftFolderPath).Name + "\\" + (new DirectoryInfo(pftFolderPath)).Name + " ===========================================\n");

                        _pftParser = new PftFileParser(pftFolderPath, eventId, _logger);
                        var pftEventCustomerScreeningData = _pftParser.Parse();
                        Save(pftEventCustomerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_pftParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("PFT parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(pftFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting PFT folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(cardioFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== Cardiovision Parsing - " + Directory.GetParent(cardioFolderPath).Name + "\\" + (new DirectoryInfo(cardioFolderPath)).Name + " ===========================================\n");

                        _cardioResultParser = new CardiovisionResultParser(cardioFolderPath, eventId, _logger, isNewResultFlow);
                        var cardioEventCustomerScreeningData = _cardioResultParser.Parse();
                        Save(cardioEventCustomerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_cardioResultParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Cardiovision parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(cardioFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Cardiovision folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }


                if (!string.IsNullOrEmpty(ekgFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== EKG Parsing - " + Directory.GetParent(ekgFolderPath).Name + "\\" + (new DirectoryInfo(ekgFolderPath)).Name + " ===========================================\n");

                        if (_ekgFileParsertoUse.ToLower().Equals("ekgfileparser2"))
                        {
                            _ekgParser = new EkgFileParser2(ekgFolderPath, eventId, _logger, _settings, isNewResultFlow);
                        }
                        else
                        {
                            _ekgParser = new EkgFileParser(ekgFolderPath, eventId, _logger);
                        }

                        var customerScreeningData = _ekgParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_ekgParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Ekg parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(ekgFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting EKG folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(geFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== GE Parsing - " + Directory.GetParent(geFolderPath).Name + "\\" + (new DirectoryInfo(geFolderPath)).Name + " ===========================================\n");

                        _geParser = new GeResultParser(eventId, geFolderPath, _logger, new ExcelReader());
                        var customerScreeningData = _geParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_geParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("GE parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(geFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting GE folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(awvPreventionPlanFolderPath) || !string.IsNullOrEmpty(awvSnapShotFolder))
                {
                    try
                    {
                        if (!string.IsNullOrEmpty(awvSnapShotFolder))
                        {
                            _logger.Info("\n\n\n====================================== AWV Test(s) Parsing - " + Directory.GetParent(awvSnapShotFolder).Name + "\\" + (new DirectoryInfo(awvSnapShotFolder)).Name + " ===========================================\n");
                        }
                        if (!string.IsNullOrEmpty(awvPreventionPlanFolderPath))
                        {
                            _logger.Info("\n\n\n====================================== AWV Test(s) Parsing - " + Directory.GetParent(awvPreventionPlanFolderPath).Name + "\\" + (new DirectoryInfo(awvPreventionPlanFolderPath)).Name + " ===========================================\n");
                        }

                        _awvParser = new AwvParser(awvPreventionPlanFolderPath, awvSnapShotFolder, eventId, _logger);

                        var customerScreeningData = _awvParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_awvParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("AWV Test(s) parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        if (!string.IsNullOrEmpty(awvSnapShotFolder))
                        {
                            Directory.Delete(awvSnapShotFolder, true);
                        }
                        if (!string.IsNullOrEmpty(awvPreventionPlanFolderPath))
                        {
                            Directory.Delete(awvPreventionPlanFolderPath, true);
                        }
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting AWV folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(floChecFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== FloChec-ABI Parsing - " + Directory.GetParent(floChecFolderPath).Name + "\\" + (new DirectoryInfo(floChecFolderPath)).Name + " ===========================================\n");


                        _floChecABIParser = new FloChecABIParser(floChecFolderPath, eventId, _logger, _mediaRepository);

                        var customerScreeningData = _floChecABIParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_floChecABIParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("FloChec-ABI parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(floChecFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting FloChec-ABI folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(quantaFloFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== QuantaFlo-ABI Parsing - " + Directory.GetParent(quantaFloFolderPath).Name + "\\" + (new DirectoryInfo(quantaFloFolderPath)).Name + " ===========================================\n");


                        _quantaFloAbiParser = new QuantaFloABIParser(quantaFloFolderPath, eventId, _logger, _mediaRepository);

                        var customerScreeningData = _quantaFloAbiParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_quantaFloAbiParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("QuantaFlo-ABI parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(quantaFloFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting QuantaFlo-ABI folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(focAttestationPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== FOC-Attestation Parsing - " + Directory.GetParent(focAttestationPath).Name + "\\" + (new DirectoryInfo(focAttestationPath)).Name + " ===========================================\n");

                        _focAttestationParser = new FOCAttestationParser(focAttestationPath, eventId, _logger, _mediaRepository);

                        var customerScreeningData = _focAttestationParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_focAttestationParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("FOC-Attestation Parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                    try
                    {
                        Directory.Delete(focAttestationPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting FOC-Attestation folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }


                if (!string.IsNullOrEmpty(ekgCardioCardFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== EKG Parsing - " + Directory.GetParent(ekgCardioCardFolderPath).Name + "\\" + (new DirectoryInfo(ekgCardioCardFolderPath)).Name + " ===========================================\n");

                        _ekgParser = new EkgCardioCardFileParser(ekgCardioCardFolderPath, eventId, _logger);

                        var customerScreeningData = _ekgParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_ekgParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Ekg parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(ekgCardioCardFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting EKG folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(SpiroFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== Spiro Parsing - " + Directory.GetParent(SpiroFolderPath).Name + "\\" + (new DirectoryInfo(SpiroFolderPath)).Name + " ===========================================\n");

                        _spiroParser = new SpiroParser(SpiroFolderPath, eventId, _logger);

                        var customerScreeningData = _spiroParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_spiroParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Spiro parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(SpiroFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting Spiro folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }

                if (!string.IsNullOrEmpty(dpnFolderPath))
                {
                    try
                    {
                        _logger.Info("\n\n\n====================================== DPN Parsing - " + Directory.GetParent(dpnFolderPath).Name + "\\" + (new DirectoryInfo(dpnFolderPath)).Name + " ===========================================\n");

                        _dpnParser = new DpnParser(dpnFolderPath, eventId, _logger, isNewResultFlow);

                        var customerScreeningData = _dpnParser.Parse();
                        Save(customerScreeningData, uploadedBy, isNewResultFlow);
                        SaveResultArchiveLogs(_dpnParser.ResultArchiveLogs);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("DPN parsing: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }

                    try
                    {
                        Directory.Delete(dpnFolderPath, true);
                    }
                    catch (Exception ex)
                    {
                        _logger.Error("Deleting DPN folder: " + ex.Message + "\n" + ex.StackTrace, ex);
                    }
                }


                if (Directory.GetDirectories(_compressedFolderPath).Length < 1)
                {
                    break;
                }
            }
        }
Ejemplo n.º 3
0
        public ActionResult Detail(long id = 0)
        {
            ResultArchiveUploadLogListModel model = null;

            if (id > 0)
            {
                model = new ResultArchiveUploadLogListModel();
                var resultArchiveLogRecords = _resultArchiveUploadLogRepository.GetbyResultArchiveId(id);

                var resultArchive = _resultArchiveUploadRepository.GetById(id);
                model.ResultArchive = AutoMapper.Mapper.Map <ResultArchive, ResultArchiveUploadViewModel>(resultArchive);

                var theEvent = _eventRepository.GetById(resultArchive.EventId);
                model.ResultArchive.EventDate = theEvent.EventDate;
                model.ResultArchive.EventName = theEvent.Name;

                if (resultArchive.FileId.HasValue)
                {
                    var file = _fileRepository.GetById(resultArchive.FileId.Value);
                    model.ResultArchive.File = file;
                }

                if (resultArchiveLogRecords != null)
                {
                    model.ResultArchiveLogRecords =
                        AutoMapper.Mapper.Map
                        <IEnumerable <ResultArchiveLog>, IEnumerable <ResultArchiveUploadLogViewModel> >(
                            resultArchiveLogRecords);


                    var orgRoleUserIds = resultArchiveLogRecords.Select(r => r.CustomerId).ToArray();
                    orgRoleUserIds = orgRoleUserIds.Concat(new long[] { resultArchive.UploadedByOrgRoleUserId }).ToArray();

                    var userIdNamePairs = _organizationRoleUserRepository.GetNameIdPairofUsers(orgRoleUserIds);
                    var userIdNamepair  =
                        userIdNamePairs.Where(p => p.FirstValue == resultArchive.UploadedByOrgRoleUserId).
                        SingleOrDefault();

                    if (userIdNamepair != null)
                    {
                        model.ResultArchive.UploadedBy = userIdNamepair.SecondValue;
                    }

                    var testIds = resultArchiveLogRecords.Select(r => (long)r.TestId).Distinct().ToArray();
                    var tests   = ((IUniqueItemRepository <Test>)_testRepository).GetByIds(testIds);

                    foreach (var resultArchiveLogRecord in model.ResultArchiveLogRecords)
                    {
                        resultArchiveLogRecord.CustomerName =
                            userIdNamePairs.Where(p => p.FirstValue == resultArchiveLogRecord.CustomerId).
                            SingleOrDefault().
                            SecondValue;

                        resultArchiveLogRecord.TestName =
                            tests.Where(t => t.Id == (long)resultArchiveLogRecord.TestId).Single().Name;
                    }
                }
                else
                {
                    model.ResultArchive.UploadedBy = _organizationRoleUserRepository.GetNameIdPairofUsers(new long[] { resultArchive.UploadedByOrgRoleUserId }).FirstOrDefault().SecondValue;
                }
            }

            return(View(model));
        }