private List<ReviewScannedDocuments> CreateErrorDocumentList(string id)
        {
            DocumentsData documentsData = new DocumentsData();
            ReviewScannedDocuments reviewScannedDocuments = new Models.ReviewScannedDocuments();
            List<ReviewScannedDocuments> reviewScannedDocumentsList = new List<ReviewScannedDocuments>();

            try
            {
                DirectoryInfo directory = new DirectoryInfo(ConfigurationValues.PathToErrorFolder);
                FileInfo[] files = directory.GetFiles("*.pdf");
                foreach (FileInfo file in files)
                {
                        reviewScannedDocuments = new Models.ReviewScannedDocuments();
                        reviewScannedDocuments.CreationDate = file.CreationTime.ToShortDateString()
                            + " " + file.CreationTime.ToShortTimeString();
                        reviewScannedDocuments.DocumentName = file.Name;
                        reviewScannedDocuments.PageCount = Walden.Medical.Library.Pdf.GetPDFPageCount(file.FullName);
                        reviewScannedDocuments.DocumentPath = ConfigurationValues.ViewErrorDocumentPath + file.Name;
                        reviewScannedDocuments.CopierLocation = "None";
                        reviewScannedDocumentsList.Add(reviewScannedDocuments);
                }

                return reviewScannedDocumentsList;
            }
            catch (Exception er)
            {
                string s1 = er.ToString();
                return reviewScannedDocumentsList;
            }
        }
        private List<ReviewScannedDocuments> CreateDocumentList(string id)
        {
            DocumentsData documentsData = new DocumentsData();
            CopierData copierData = new CopierData();
            string serialNumber = copierData.GetSerialNumber(id);
            //string serialNumber = string.Empty;

            ReviewScannedDocuments reviewScannedDocuments = new Models.ReviewScannedDocuments();
            List<ReviewScannedDocuments> reviewScannedDocumentsList = new List<ReviewScannedDocuments>();

            try
            {
                DirectoryInfo directory = new DirectoryInfo(ConfigurationValues.ReviewDocumentPath);
                FileInfo[] files = directory.GetFiles("*.pdf");
                foreach (FileInfo file in files)
                {
                    string[] copierLocation = file.Name.Split('_');
                    if (copierLocation[0] == serialNumber)
                    {
                        reviewScannedDocuments = new Models.ReviewScannedDocuments();
                        reviewScannedDocuments.CreationDate = file.CreationTime.ToShortDateString()
                            + " " + file.CreationTime.ToShortTimeString();
                        reviewScannedDocuments.DocumentName = file.Name;
                        reviewScannedDocuments.PageCount = Walden.Medical.Library.Pdf.GetPDFPageCount(file.FullName);
                        reviewScannedDocuments.DocumentPath = ConfigurationValues.PdfFolder + file.Name;
                        reviewScannedDocuments.CopierLocation = copierData.GetCopierLocationName(copierLocation[0]);
                        reviewScannedDocumentsList.Add(reviewScannedDocuments);
                    }
                }

                List<ReviewScannedDocuments> reviewScannedDocumentsList2 = documentsData.GetArchiveDocumentList(id);

                for (int i = 0; i < reviewScannedDocumentsList2.Count; i++)
                {
                    reviewScannedDocumentsList.Add(reviewScannedDocumentsList2[i]);
                }

                return reviewScannedDocumentsList;
            }
            catch (Exception er)
            {
                string s1 = er.ToString();
                return reviewScannedDocumentsList;
            }
        }
 // Specify what you want to happen when the Elapsed event is 
 // raised.
 private static void OnTimedEvent(object source, ElapsedEventArgs e)
 {
     DocumentsData documentsData = new DocumentsData();
     // documentsData.AddScannedDocument()
 }
 static void HandleTimerElapsed(List<ScannedDocument> barCodeText, int documentArchiveID)
 {
     DocumentsData documentsData = new DocumentsData();
     documentsData.AddScannedDocument(barCodeText, documentArchiveID);
 }
        // PUT: api/TagDocument/5
        public IHttpActionResult Put(string id)
        {
            OperationResult operationResult = new OperationResult();
            OperationResult getDocumentArchiveID = new OperationResult();

            DocumentsData documentsData = new DocumentsData();
            CopierData copierData = new CopierData();

            File.Copy(ConfigurationValues.ReviewDocumentPath + id
                , ConfigurationValues.PathToArchiveFolder + id, true);

            File.Copy(ConfigurationValues.ReviewDocumentPath + id
                , ConfigurationValues.ProcessDocumentPath + id, true);

            File.Delete(ConfigurationValues.ReviewDocumentPath + id);

            //CopierData Location
            //PageCount
            //CreationDate
            ReviewScannedDocuments reviewScannedDocuments = new ReviewScannedDocuments();
            //reviewScannedDocuments.CopierLocation = 
            string[] copierLocation = id.Split('_');

            reviewScannedDocuments = new Models.ReviewScannedDocuments();

            FileInfo fileInfo = new FileInfo(ConfigurationValues.ProcessDocumentPath + id);

            //FileAttributes fileAttributes = File.GetAttributes(ConfigurationValues.ProcessDocumentPath + id);

            reviewScannedDocuments.CreationDate = fileInfo.CreationTime.ToShortDateString()
                + " " + fileInfo.CreationTime.ToShortTimeString();
            reviewScannedDocuments.DocumentName = fileInfo.Name;
            reviewScannedDocuments.PageCount = Walden.Medical.Library.Pdf.GetPDFPageCount(ConfigurationValues.ProcessDocumentPath + id);
            reviewScannedDocuments.DocumentPath = ConfigurationValues.PdfFolder + fileInfo.Name;
            reviewScannedDocuments.CopierLocation = copierData.GetCopierLocationName(copierLocation[0]);

            OperationResult operationResult2 = ValidatePageCounts(ConfigurationValues.ProcessDocumentPath + id);

            if (operationResult2.Success != true)
            {

                getDocumentArchiveID = documentsData.ArchiveScannedDocument(reviewScannedDocuments, "F", operationResult2.ErrorMessage);

                File.Copy(ConfigurationValues.ProcessDocumentPath + id,
                    ConfigurationValues.PathToViewErrorFolder + id, true);

                File.Delete(ConfigurationValues.ProcessDocumentPath + id);

                return BadRequest("Please review your documents and try again");
            }

            getDocumentArchiveID = documentsData.ArchiveScannedDocument(reviewScannedDocuments, "T", operationResult2.ErrorMessage);

            documentArchiveID = int.Parse(getDocumentArchiveID.MessageList[0]);

            System.Timers.Timer timer = new System.Timers.Timer();
            timer.Interval = (3000);
            timer.Elapsed += (sender, e) => { HandleTimerElapsed(barCodeText, documentArchiveID); };
            timer.Enabled = true;
            timer.AutoReset = false;

            return Ok();
        }
        // POST: api/ProcessErrorDocument
        public IHttpActionResult Post([FromBody]ScannedDocument barCodeText)
        {
            //string s1 = value.ArchiveID;
            DocumentTypeData documentTypeData = new DocumentTypeData();
            DocumentsData documentsData = new DocumentsData();
            string[] patientId = barCodeText.PatientID.Split(' ');
            string[] tabId = barCodeText.TabID.Split('~');
            barCodeText.ID = documentsData.GetDocumentIDFromPath(System.Configuration.ConfigurationManager.AppSettings["pathToWatchedFolder"] + barCodeText.FullPath);
            barCodeText.ArchiveID = documentsData.GetArchiveIDFromPath(System.Configuration.ConfigurationManager.AppSettings["pathToWatchedFolder"] + barCodeText.FullPath);

            try
            {
                System.IO.FileStream inFile;
                byte[] binaryData;

                try
                {
                    inFile = new System.IO.FileStream(System.Configuration.ConfigurationManager.AppSettings["pathToErrorFolder"] + barCodeText.FullPath,
                                              System.IO.FileMode.Open,
                                              System.IO.FileAccess.Read);
                    binaryData = new Byte[inFile.Length];
                    long bytesRead = inFile.Read(binaryData, 0,
                                         (int)inFile.Length);
                    inFile.Close();
                }
                catch (Exception er)
                {
                    string[] fileNameArray = barCodeText.FullPath.Split('\\');
                    string fileName = fileNameArray[fileNameArray.Length - 1];
                    return BadRequest(er.ToString());
                }

                string base64String;
                try
                {
                    base64String =
                      System.Convert.ToBase64String(binaryData,
                                             0,
                                             binaryData.Length);
                }
                catch (System.ArgumentNullException)
                {
                    string[] fileNameArray = barCodeText.FullPath.Split('\\');
                    string fileName = fileNameArray[fileNameArray.Length - 1];
                    return BadRequest();
                }

                ContractBuilder oBuilder = new ContractBuilder();
                Greenway.PrimeSuite.DataContracts.Document.DocumentImportChartRequest oRequest = new Greenway.PrimeSuite.DataContracts.Document.DocumentImportChartRequest();
                Greenway.PrimeSuite.DataContracts.Document.DocumentImportChartResponse oResponse = new Greenway.PrimeSuite.DataContracts.Document.DocumentImportChartResponse();

                oRequest = oBuilder.BuildDocumentImportChartRequest(base64String);
                oRequest.PrimeSuitePatientId = int.Parse(patientId[0]);
                oRequest.DocumentTypeID = int.Parse(tabId[0]);
                oRequest.DocumentName = documentTypeData.GetDocumentNameBasedOnDocumentType(tabId[0]);
                oRequest.DocumentSignerID = int.Parse(System.Configuration.ConfigurationManager.AppSettings["providerSignerID"]);
                oRequest.Credentials.PrimeSuiteCredential.PrimeSuiteUserName = System.Configuration.ConfigurationManager.AppSettings["greenwayUserID"];
                oRequest.Credentials.PrimeSuiteCredential.PrimeSuiteUserPassword = System.Configuration.ConfigurationManager.AppSettings["greenwayUserPassword"];
                EmployeeDesktop.API.Document ocall = new EmployeeDesktop.API.Document();
                oResponse = ocall.SendPDF(oRequest, System.Configuration.ConfigurationManager.AppSettings["greenwayServer"]);
                documentTypeData.UpdateScannedDocuments(barCodeText.ID, oResponse.DocumentID.ToString());
                documentTypeData.UpdateDocumentArchive(barCodeText.ArchiveID, "T");
                File.Delete(System.Configuration.ConfigurationManager.AppSettings["pathToErrorFolder"] + barCodeText.FullPath);
                return Ok();
            }
            catch (Exception er)
            {
                return BadRequest(er.ToString());
            }
        }
 // GET: api/DocumentList
 public IEnumerable<Document> Get()
 {
     var repository = new DocumentsData();
     var data = repository.GetDocumentList();
     return data;
 }
 // GET: api/RejectionDocuments
 public IEnumerable<ReviewScannedDocuments> Get()
 {
     DocumentsData documentsData = new DocumentsData();
     List<ReviewScannedDocuments> reviewScannedDocumentsList = new List<ReviewScannedDocuments>();
     return CreateErrorDocumentList(Utility.GetUserName());
 }