public FaxTelephoneNumber GetFaxNumbers(string careProviderIDs)
        {
            FaxTelephoneNumber faxTelephoneNumber = new FaxTelephoneNumber();
            string faxNumber = string.Empty;
            int count = 0;

            try
            {
                using (IDbConnection db = new SqlConnection(ConfigurationValues.GreenwayConnection))
                {
                    string query = "select count(CareProvView.CareProviderId)"
                    + " from CareProvView"
                    + " inner JOIN CareProviderDetails"
                    + " on CareProviderDetails.CareProviderID = CareProvView.CareProviderID"
                    + " where CareProviderDetails.CareProviderID IN (" + careProviderIDs + ")";
                    count = db.Query<int>(query).Single();
                    //return faxTelephoneNumber;
                }
            }
            catch (Exception er)
            {
                Utility.LogErrors(ConfigurationValues.ErrorLogPath, er.ToString());

                faxTelephoneNumber.AddressLine1 = string.Empty;
                faxTelephoneNumber.AddressLine2 = string.Empty;
                faxTelephoneNumber.City = string.Empty;
                faxTelephoneNumber.CredentialsDescription = string.Empty;
                faxTelephoneNumber.FaxNumber = string.Empty;
                faxTelephoneNumber.FullName = string.Empty;
                faxTelephoneNumber.Name = string.Empty;
                faxTelephoneNumber.PostalCode = string.Empty;
                faxTelephoneNumber.State = string.Empty;
                return faxTelephoneNumber;
            }


            if (count > 0)
            {
                try
                {
                    using (IDbConnection db = new SqlConnection(ConfigurationValues.GreenwayConnection))
                    {
                        string query = "select CareProvView.CareProviderId as ProviderID, CareProvView.FirstName + ' ' + CareProvView.LastName as Name,"
                        + " CareProvView.resAddressLine1 as AddressLine1, CareProvView.resAddressLine2 as AddressLine2,"
                        + " CareProvView.resCity as City , CareProvView.resState as State,CareProvView.resZip as PostalCode,"
                        + " CareProvView.FaxNumber,CareProvView.CredentialsDescription,CareProviderDetails.FullName as FullName "
                        + " from CareProvView"
                        + " inner JOIN CareProviderDetails"
                        + " on CareProviderDetails.CareProviderID = CareProvView.CareProviderID"
                        + " where CareProviderDetails.CareProviderID IN (" + careProviderIDs + ")";
                        faxTelephoneNumber = db.Query<FaxTelephoneNumber>(query).Single();
                        return faxTelephoneNumber;
                    }
                }
                catch (Exception er)
                {
                    Utility.LogErrors(ConfigurationValues.ErrorLogPath, er.ToString());

                    faxTelephoneNumber.AddressLine1 = string.Empty;
                    faxTelephoneNumber.AddressLine2 = string.Empty;
                    faxTelephoneNumber.City = string.Empty;
                    faxTelephoneNumber.CredentialsDescription = string.Empty;
                    faxTelephoneNumber.FaxNumber = string.Empty;
                    faxTelephoneNumber.FullName = string.Empty;
                    faxTelephoneNumber.Name = string.Empty;
                    faxTelephoneNumber.PostalCode = string.Empty;
                    faxTelephoneNumber.State = string.Empty;
                    return faxTelephoneNumber;
                }
            }
            else
            {
                faxTelephoneNumber.AddressLine1 = string.Empty;
                faxTelephoneNumber.AddressLine2 = string.Empty;
                faxTelephoneNumber.City = string.Empty;
                faxTelephoneNumber.CredentialsDescription = string.Empty;
                faxTelephoneNumber.FaxNumber = string.Empty;
                faxTelephoneNumber.FullName = string.Empty;
                faxTelephoneNumber.Name = string.Empty;
                faxTelephoneNumber.PostalCode = string.Empty;
                faxTelephoneNumber.State = string.Empty;
                return faxTelephoneNumber;
            }
        }
        private void RunAutomatedFaxesForConnecticutOrtho()
        {
            faxRepository = new FaxRepository();
            createLetters = new AutomatedFaxBL.Letters.CreateLetters();

            documentsList = faxRepository.GetListOfDocumentssToSendViaFax();
            faxRepository.InsertSignedDocumentsFromGreenway(documentsList);
            faxTelephoneNumberList = new List<FaxTelephoneNumber>();
            faxTelephoneNumber = new FaxTelephoneNumber();
            sendFaxesReporting = new SendFaxesReporting();
            string faxPathWithCoverLetterAndNote = string.Empty;
            
            for (int i = 0; i < documentsList.Count; i++)
            {
                if (documentsList[i].Proccess == "Y")
                {
                    if (faxRepository.CheckToSeeIfProviderThatSignedDocumentIsCareProvider(documentsList[i].CareProviderID,
                        documentsList[i].SignerID))
                    {
                        if (GetDocumentFromGreenway(documentsList[i].DocumentID))
                        {
                            sendFaxesReporting = new SendFaxesReporting();

                            faxRepository.InsertAllSignedNotes(documentsList[i]);

                            sendFaxesReporting = new SendFaxesReporting();
                            sendFaxesReporting.DocumentID = documentsList[i].DocumentID;
                            sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID;
                            sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName;
                            sendFaxesReporting.PatientID = documentsList[i].PatientID;
                            sendFaxesReporting.PatientName = documentsList[i].PatientName;
                            sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID;
                            sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider;
                            sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID;
                            sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider;

                            faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].PrimaryCareProviderID.ToString());

                            if (documentsList[i].PrimaryCareProviderID > 0)
                            {
                                if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false)
                                {
                                    faxPathWithCoverLetterAndNote = string.Empty;

                                    if (documentsList[i].DocTypeName == "History and Physical")
                                    {
                                        faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);
                                    }
                                    else if (documentsList[i].DocTypeName == "Progress Note")
                                    {
                                        string newDocumentName = Guid.NewGuid().ToString() + ".pdf";
                                        faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName;
                                        File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName);
                                    }

                                    if (Utility.GetPDFPageCount(faxPathWithCoverLetterAndNote) < 15)
                                    {
                                        sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.PrimaryCareFaxSent = "Y";
                                        sendFaxesReporting.PrimaryCareReason = "Approved Provider and has fax number";

                                        OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName,
                                            faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber),
                                            faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote);

                                        sendFaxesReporting.PrimaryCareSendID = int.Parse(operationResult.MessageList[0]);

                                        if (operationResult.Success)
                                        {
                                            AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech();

                                            faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "")
                                                .Replace(")", "")
                                                .Replace("-", "")
                                                .Replace(" ", "");
                                            sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], "");
                                        }
                                    }
                                    else
                                    {
                                        sendFaxesReporting.PrimaryCareFaxSent = "N";
                                        sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.PrimaryCareReason = "Number of pages greater than 14";
                                    }
                                }
                                else
                                {
                                    whyFaxWasNotSent = string.Empty;
                                    if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider and Primary Care Provider is in the Practice";
                                    }
                                    else if (faxTelephoneNumber.FaxNumber.Length < 1)
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider";
                                    }
                                    else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "Primary Care Provider is in the Practice";
                                    }

                                    sendFaxesReporting.PrimaryCareFaxSent = "N";
                                    sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                    sendFaxesReporting.PrimaryCareReason = whyFaxWasNotSent;
                                }
                            }
                            else
                            {
                                sendFaxesReporting.PrimaryCareFaxSent = "N";
                                sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.PrimaryCareReason = "No Primary Care Provider";
                            }

                            faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].ReferringCareProviderID.ToString());

                            if (documentsList[i].ReferringCareProviderID == documentsList[i].PrimaryCareProviderID)
                            {
                                sendFaxesReporting.ReferringCareFaxSent = "N";
                                sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.ReferringCareReason = "Primary Care Provider and Referring Care Provider are the same";
                            }
                            else if (documentsList[i].ReferringCareProviderID > 0)
                            {
                                if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false)
                                {
                                    faxPathWithCoverLetterAndNote = string.Empty;

                                    if (documentsList[i].DocTypeName == "History and Physical")
                                    {
                                        faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);
                                    }
                                    else if (documentsList[i].DocTypeName == "Progress Note")
                                    {
                                        string newDocumentName = Guid.NewGuid().ToString() + ".pdf";
                                        faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName;
                                        File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName);
                                    }
                                    if (Utility.GetPDFPageCount(faxPathWithCoverLetterAndNote) < 15)
                                    {
                                        sendFaxesReporting.ReferringCareFaxSent = "Y";
                                        sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.ReferringCareReason = "Approved Provider and has fax number";

                                        OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName,
                                            faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber),
                                            faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote);

                                        sendFaxesReporting.ReferringCareSendID = int.Parse(operationResult.MessageList[0]);

                                        if (operationResult.Success)
                                        {
                                            AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech();

                                            faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "")
                                                .Replace(")", "")
                                                .Replace("-", "")
                                                .Replace(" ", "");

                                            sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], "");
                                        }
                                    }
                                    else
                                    {
                                        sendFaxesReporting.ReferringCareFaxSent = "N";
                                        sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.ReferringCareReason = "Number of pages greater than 14";
                                    }
                                }
                                else
                                {
                                    whyFaxWasNotSent = string.Empty;
                                    if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider and Referring Care Provider is in the Practice";
                                    }
                                    else if (faxTelephoneNumber.FaxNumber.Length < 1)
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider";
                                    }
                                    else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "Referring Care Provider is in the Practice";
                                    }

                                    sendFaxesReporting.ReferringCareFaxSent = "N";
                                    sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                    sendFaxesReporting.ReferringCareReason = whyFaxWasNotSent;
                                }
                            }
                            else
                            {
                                sendFaxesReporting.ReferringCareFaxSent = "N";
                                sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.ReferringCareReason = "No Referring Care Provider";
                            }
                            SendFaxesReporting sendFaxesReporting2 = sendFaxesReporting;
                            faxRepository.AddReportingRecord(sendFaxesReporting);
                        }
                    }
                    else
                    {
                        //Care Provider who signed note is not Care Provider of record for visit
                        faxRepository.InsertAllSignedNotes(documentsList[i]);

                        sendFaxesReporting = new SendFaxesReporting();
                        sendFaxesReporting.DocumentID = documentsList[i].DocumentID;
                        sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID;
                        sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName;
                        sendFaxesReporting.PatientID = documentsList[i].PatientID;
                        sendFaxesReporting.PatientName = documentsList[i].PatientName;
                        sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID;
                        sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider;
                        sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID;
                        sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider;
                        sendFaxesReporting.PrimaryCareFaxSent = "N";
                        sendFaxesReporting.PrimaryCareFaxNumber = string.Empty;
                        sendFaxesReporting.PrimaryCareReason = "Care Provider who signed note is not Care Provider of record for visit";
                        sendFaxesReporting.ReferringCareFaxSent = "N";
                        sendFaxesReporting.ReferringCareFaxNumber = string.Empty;
                        sendFaxesReporting.ReferringCareReason = "Care Provider who signed note is not Care Provider of record for visit";
                        faxRepository.AddReportingRecord(sendFaxesReporting);
                        //Do nothing for this record
                    }
                }
                else
                {
                    //Document not set to Y to process
                    //Either the document had already been sent 
                    //or it has been signed more than one time on the same day by the same provider
                    faxRepository.InsertAllSignedNotes(documentsList[i]);

                    sendFaxesReporting = new SendFaxesReporting();
                    sendFaxesReporting.DocumentID = documentsList[i].DocumentID;
                    sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID;
                    sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName;
                    sendFaxesReporting.PatientID = documentsList[i].PatientID;
                    sendFaxesReporting.PatientName = documentsList[i].PatientName;
                    sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID;
                    sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider;
                    sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID;
                    sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider;
                    sendFaxesReporting.PrimaryCareFaxSent = "N";
                    sendFaxesReporting.PrimaryCareFaxNumber = string.Empty;
                    sendFaxesReporting.PrimaryCareReason = "Either document has already been sent or duplicate signature on the same day";
                    sendFaxesReporting.ReferringCareFaxSent = "N";
                    sendFaxesReporting.ReferringCareFaxNumber = string.Empty;
                    sendFaxesReporting.ReferringCareReason = "Either document has already been sent or duplicate signature on the same day";
                    faxRepository.AddReportingRecord(sendFaxesReporting);
                }
                System.Threading.Thread.Sleep(20000);
            }

            System.Threading.Thread.Sleep(30000);

            for (int i = 0; i <= 3; i++)
            {
                try
                {
                    Console.WriteLine(DateTime.Now.ToShortTimeString());
                    faxRepository.UpdateCompletionTimes();
                    faxRepository.UpdateStatusOfSentFaxes();
                    System.Threading.Thread.Sleep(300000);
                    Console.WriteLine(DateTime.Now.ToShortTimeString());
                }
                catch (Exception er)
                {
                    Logging.LogErrors(ConfigurationValues.ErrorLogPath, er.ToString());
                }
            }
        }
        public string CreateLetterToPutInFrontOfNote(FaxTelephoneNumber faxTelephoneNumber, SignedDocument document)
        {
            Correspondence letter = new Correspondence();
            letter.TodaysDate = DateTime.Now.ToLongDateString();
            letter.MessageFrom = "A patient communications update from the office of " + document.CareProviderName;

            if (string.IsNullOrEmpty(faxTelephoneNumber.AddressLine1))
            {
                faxTelephoneNumber.AddressLine1 = string.Empty;
            }

            if (string.IsNullOrEmpty(faxTelephoneNumber.AddressLine2))
            {
                faxTelephoneNumber.AddressLine2 = string.Empty;
            }

            if (string.IsNullOrEmpty(faxTelephoneNumber.City))
            {
                faxTelephoneNumber.City = string.Empty;
            }
            else
            {
                faxTelephoneNumber.City = faxTelephoneNumber.City + ", ";
            }

            if (string.IsNullOrEmpty(faxTelephoneNumber.State))
            {
                faxTelephoneNumber.State = string.Empty;
            }
            else
            {
                faxTelephoneNumber.State = faxTelephoneNumber.State + " ";
            }

            if (string.IsNullOrEmpty(faxTelephoneNumber.PostalCode))
            {
                faxTelephoneNumber.PostalCode = string.Empty;
            }

            if (faxTelephoneNumber.AddressLine2.Length > 0)
            {
                letter.HeaderText = faxTelephoneNumber.Name + Environment.NewLine
                    + faxTelephoneNumber.AddressLine1 + Environment.NewLine
                    + faxTelephoneNumber.AddressLine2 + Environment.NewLine
                    + faxTelephoneNumber.City
                    + faxTelephoneNumber.State + faxTelephoneNumber.PostalCode;
            }
            else
            {
                string[] credential = faxTelephoneNumber.FullName.Split(' ');
                faxTelephoneNumber.Name = credential[1] + " " + credential[0] + " " + credential[credential.Length - 1];

                letter.HeaderText = credential[1] + " " + credential[0] + " " + credential[credential.Length - 1] + Environment.NewLine
                     + faxTelephoneNumber.AddressLine1 + Environment.NewLine
                     + faxTelephoneNumber.City
                     + faxTelephoneNumber.State + faxTelephoneNumber.PostalCode;
            }

            letter.BodyText = "I saw your patient " + document.PatientName
                + " at your request in consultation regarding the patient’s  orthopedic problem.  "
                + " Thank you for your kind referral." + Environment.NewLine + Environment.NewLine
                + "I’ve enclosed a copy of our office notes which includes "
                + "the diagnosis and treatment plan.  I will continue to keep you updated in the future with "
                + "regard to our patient’s progress .  Please let me know if I can answer any further questions "
                + "regarding our patient’s care." + Environment.NewLine + Environment.NewLine + Environment.NewLine
                + "All the Best,"
                + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine + Environment.NewLine
                + document.CareProviderName
                + Environment.NewLine + Environment.NewLine
                + "Enclosure"
            ;

            AutomatedFaxReports.Letter report1 = new AutomatedFaxReports.Letter(letter);
            Telerik.Reporting.Processing.ReportProcessor reportProcessor = new Telerik.Reporting.Processing.ReportProcessor();
            Telerik.Reporting.InstanceReportSource instanceReportSource = new Telerik.Reporting.InstanceReportSource();
            instanceReportSource.ReportDocument = report1;
            Telerik.Reporting.Processing.RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, null);
            using (var pdfStream = new MemoryStream(result.DocumentBytes))
            using (var reportFile = new FileStream(ConfigurationValues.CorrespondensePath, FileMode.Create))
            {
                pdfStream.CopyTo(reportFile);
            }

            PdfFileEditor pdfEditor = new PdfFileEditor();
            string newDocumentName = Guid.NewGuid().ToString() + ".pdf";

            //ConfigurationValues.FinalFaxPath = ConfigurationValues.FinalFaxPath + Guid.NewGuid().ToString() + ".pdf";
            pdfEditor.Concatenate(ConfigurationValues.CorrespondensePath, ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName);
            return ConfigurationValues.FinalFaxPath + newDocumentName;
        }
        private void RunAutomatedFaxesForConnecticutOrtho()
        {

            faxRepository = new FaxRepository();
            createLetters = new AutomatedFaxBL.Letters.CreateLetters();

            //        //ResendFaxesThatHaveFailed();
            PeformActionOnFaxesThatHaveFailedThreeTimes();
            documentsList = faxRepository.GetListOfDocumentssToSendViaFax(faxRepository.GetListOfCarProviderIDs(),
                faxRepository.GetLocationsList());
            faxTelephoneNumberList = new List<FaxTelephoneNumber>();
            faxTelephoneNumber = new FaxTelephoneNumber();
            sendFaxesReporting = new SendFaxesReporting();
            string faxPathWithCoverLetterAndNote = string.Empty;

            for (int i = 0; i < documentsList.Count; i++)
            {
                if (documentsList[i].Proccess == "Y")
                {
                    if (faxRepository.CheckToSeeIfProviderThatSignedDocumentIsCareProvider(documentsList[i].CareProviderID,
                        documentsList[i].SignerID))
                    {
                        if (GetDocumentFromGreenway(documentsList[i].DocumentID))
                        {
                            sendFaxesReporting = new SendFaxesReporting();

                            faxRepository.InsertAllSignedNotes(documentsList[i]);

                            sendFaxesReporting = new SendFaxesReporting();
                            sendFaxesReporting.DocumentID = documentsList[i].DocumentID;
                            sendFaxesReporting.CareProviderID = documentsList[i].CareProviderID;
                            sendFaxesReporting.CareProviderName = documentsList[i].CareProviderName;
                            sendFaxesReporting.PatientID = documentsList[i].PatientID;
                            sendFaxesReporting.PatientName = documentsList[i].PatientName;
                            sendFaxesReporting.PrimaryCareProviderID = documentsList[i].PrimaryCareProviderID;
                            sendFaxesReporting.PrimaryCareProvider = documentsList[i].PrimaryCareProvider;
                            sendFaxesReporting.ReferringCareProviderID = documentsList[i].ReferringCareProviderID;
                            sendFaxesReporting.ReferringCareProvider = documentsList[i].ReferringCareProvider;

                            faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].PrimaryCareProviderID.ToString());

                            if (documentsList[i].PrimaryCareProviderID > 0)
                            {
                                if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false)
                                {
                                    faxPathWithCoverLetterAndNote = string.Empty;

                                    if (documentsList[i].DocTypeName == "History and Physical")
                                    {
                                        faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);
                                    }
                                    else if (documentsList[i].DocTypeName == "Progress Note")
                                    {
                                        string newDocumentName = Guid.NewGuid().ToString() + ".pdf";
                                        faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName;
                                        File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName);
                                        // ConfigurationValues.FinalFaxPath + newDocumentName
                                    }

                                    if (Utility.GetPageCount(faxPathWithCoverLetterAndNote) < 15)
                                    {
                                        sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.PrimaryCareFaxSent = "Y";
                                        sendFaxesReporting.PrimaryCareReason = "Approved Provider and has fax number";

                                        OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName,
                                            faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber),
                                            faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote);

                                        sendFaxesReporting.PrimaryCareSendID = int.Parse(operationResult.MessageList[0]);

                                        if (operationResult.Success)
                                        {
                                            AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech();

                                            faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "")
                                                .Replace(")", "")
                                                .Replace("-", "")
                                                .Replace(" ", "");
                                            sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], "");
                                        }
                                    }
                                    else
                                    {
                                        sendFaxesReporting.PrimaryCareFaxSent = "N";
                                        sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.PrimaryCareReason = "Number of pages greater than 14";
                                    }
                                }// end 
                                else
                                {
                                    whyFaxWasNotSent = string.Empty;
                                    if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider and Primary Care Provider is in the Practice";
                                    }
                                    else if (faxTelephoneNumber.FaxNumber.Length < 1)
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider";
                                    }
                                    else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "Primary Care Provider is in the Practice";
                                    }

                                    sendFaxesReporting.PrimaryCareFaxSent = "N";
                                    sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                    sendFaxesReporting.PrimaryCareReason = whyFaxWasNotSent;
                                }
                            }
                            else
                            {
                                sendFaxesReporting.PrimaryCareFaxSent = "N";
                                sendFaxesReporting.PrimaryCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.PrimaryCareReason = "No Primary Care Provider";
                            }

                            faxTelephoneNumber = faxRepository.GetFaxNumbers(documentsList[i].ReferringCareProviderID.ToString());

                            if (documentsList[i].ReferringCareProviderID == documentsList[i].PrimaryCareProviderID)
                            {
                                sendFaxesReporting.ReferringCareFaxSent = "N";
                                sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.ReferringCareReason = "No Delivery Requested";
                            }
                            else if (documentsList[i].ReferringCareProviderID > 0)
                            {
                                if (faxTelephoneNumber.FaxNumber.Length > 0 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID) == false)
                                {

                                    faxPathWithCoverLetterAndNote = string.Empty;

                                    if (documentsList[i].DocTypeName == "History and Physical")
                                    {
                                        faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);
                                    }
                                    else if (documentsList[i].DocTypeName == "Progress Note")
                                    {
                                        string newDocumentName = Guid.NewGuid().ToString() + ".pdf";
                                        faxPathWithCoverLetterAndNote = ConfigurationValues.FinalFaxPath + newDocumentName;
                                        File.Copy(ConfigurationValues.CreatePdfPath, ConfigurationValues.FinalFaxPath + newDocumentName);
                                    }
                                    //faxPathWithCoverLetterAndNote = createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);
                                    if (Utility.GetPageCount(faxPathWithCoverLetterAndNote) < 15)
                                    {


                                        //createLetters.CreateLetterToPutInFrontOfNote(faxTelephoneNumber, documentsList[i]);

                                        sendFaxesReporting.ReferringCareFaxSent = "Y";
                                        sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.ReferringCareReason = "Approved Provider and has fax number";

                                        OperationResult operationResult = CreateFaxRecord(documentsList[i].CareProviderName,
                                            faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber),
                                            faxTelephoneNumber.Name, faxPathWithCoverLetterAndNote);

                                        sendFaxesReporting.ReferringCareSendID = int.Parse(operationResult.MessageList[0]);

                                        if (operationResult.Success)
                                        {
                                            AutomatedFaxBL.Multitech.SendFaxMultitech sendFax = new AutomatedFaxBL.Multitech.SendFaxMultitech();

                                            faxTelephoneNumber.FaxNumber = faxTelephoneNumber.FaxNumber.Replace("(", "")
                                                .Replace(")", "")
                                                .Replace("-", "")
                                                .Replace(" ", "");

                                            sendFax.SendTheFax(documentsList[i].PatientName, faxPathWithCoverLetterAndNote, faxTelephoneNumber.Name, faxRepository.UpdatedFaxNumber(faxTelephoneNumber.FaxNumber), operationResult.MessageList[0], "");
                                        }
                                    }
                                    else
                                    {
                                        sendFaxesReporting.ReferringCareFaxSent = "N";
                                        sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                        sendFaxesReporting.ReferringCareReason = "Number of pages greater than 14";
                                    }
                                }// end 
                                else
                                {
                                    whyFaxWasNotSent = string.Empty;
                                    if (faxTelephoneNumber.FaxNumber.Length < 1 && faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider and Referring Care Provider is in the Practice";
                                    }
                                    else if (faxTelephoneNumber.FaxNumber.Length < 1)
                                    {
                                        whyFaxWasNotSent = "No Fax Number for Provider";
                                    }
                                    else if (faxRepository.CheckToseeIfProviderWorksForPractice(faxTelephoneNumber.ProviderID))
                                    {
                                        whyFaxWasNotSent = "Referring Care Provider is in the Practice";
                                    }

                                    sendFaxesReporting.ReferringCareFaxSent = "N";
                                    sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                    sendFaxesReporting.ReferringCareReason = whyFaxWasNotSent;
                                }
                            }
                            else
                            {
                                sendFaxesReporting.ReferringCareFaxSent = "N";
                                sendFaxesReporting.ReferringCareFaxNumber = faxTelephoneNumber.FaxNumber;
                                sendFaxesReporting.ReferringCareReason = "No Referring Care Provider";
                            }
                            SendFaxesReporting sendFaxesReporting2 = sendFaxesReporting;
                            faxRepository.AddReportingRecord(sendFaxesReporting);
                        }
                    }
                    else
                    {
                        //Care Provider who signed note is not Care Provider of record for visit
                    }
                }
                else
                {
                    //Document not have a Yes to process
                }
                System.Threading.Thread.Sleep(30000);
            }

            System.Threading.Thread.Sleep(30000);
            //}
            //    faxRepository.UpdateCompletionTimes();
            //    faxRepository.UpdateStatusOfSentFaxes();

        }