/// <summary>
        /// RTFs the preview.
        /// </summary>
        /// <param name="letterTemplateViewModel">The letter template view model.</param>
        /// <param name="reportVirtualPath">The report virtual path.</param>
        /// <returns></returns>
        public static string[] RtfPreview(LetterTemplateViewModel letterTemplateViewModel, string reportVirtualPath)
        {
            AppealLetter letterReportContainer = new AppealLetter
            {
                LetterTemplaterText = letterTemplateViewModel.TemplateText,
                AppealLetterClaims  = new List <AppealLetterClaim>(),
                IsPreview           = true
            };

            //Create default letter data / claim data
            AppealLetterClaim appealLetterClaim = new AppealLetterClaim
            {
                BillDate             = LetterBillDate,
                BillType             = LetterBillType,
                ContractName         = LetterContractName,
                Drg                  = LetterDrg,
                ExpectedAllowed      = LetterExpectedAllowed,
                Ftn                  = LetterFtn,
                MedRecNumber         = LetterMedRecNumber,
                PrimaryGroupNumber   = PrimaryGroupNumber,
                SecondaryGroupNumber = SecondaryGroupNumber,
                TertiaryGroupNumber  = TertiaryGroupNumber,

                PrimaryMemberId   = PrimaryMemberId,
                SecondaryMemberId = SecondaryMemberId,
                TertiaryMemberId  = TertiaryMemberId,

                Npi = LetterNpi,
                PatientAccountNumber  = LetterPatientAccountNumber,
                PatientDob            = LetterPatientDateOfBirth,
                PatientFirstName      = LetterPatientFirstName,
                PatientLastName       = LetterPatientLastName,
                PatientMiddleName     = LetterPatientMiddleName,
                PatientResponsibility = LetterPatientResponsibility,
                PayerName             = LetterPayerName,
                ProviderName          = LetterProviderName,
                RemitCheckDate        = LetterRemitCheckDate,
                RemitPayment          = LetterRemitPayment,
                StatementFrom         = LetterStatementFrom,
                StatementThru         = LetterStatementThru,
                ClaimTotal            = LetterClaimTotal,
                Icn = LetterIcn,
                Los = LetterLos,
                Age = LetterAge
            };

            letterReportContainer.AppealLetterClaims.Add(appealLetterClaim);
            string[] test = GetExportedFileName(letterReportContainer, reportVirtualPath, Constants.AppealLetterPreviewFileBaseName);
            return(test);
        }
        /// <summary>
        /// Replaces the claim data.
        /// </summary>
        /// <param name="templateText">The template text.</param>
        /// <param name="appealLetterClaim">The appeal letter claim.</param>
        /// <returns></returns>
        private static string ReplaceClaimData(string templateText, AppealLetterClaim appealLetterClaim)
        {
            //Creating Field and Value pair for ClaimData
            Dictionary <string, string> claimColumns =
                new Dictionary <string, string>
            {
                {
                    Constants.BillDate,
                    appealLetterClaim.BillDate.HasValue
                        ? (appealLetterClaim.BillDate.Value.ToString("MM/dd/yyyy") == "01/01/1900" ? string.Empty : appealLetterClaim.BillDate.Value.ToString("MM/dd/yyyy"))
                            : string.Empty
                },
                { Constants.BillType, appealLetterClaim.BillType },
                { Constants.ContractName, appealLetterClaim.ContractName },
                { Constants.Drg, appealLetterClaim.Drg },
                {
                    Constants.ExpectedAllowed,
                    appealLetterClaim.ExpectedAllowed.HasValue
                            ? "$" + appealLetterClaim.ExpectedAllowed.Value.ToString("0.00")
                            : string.Empty
                },
                { Constants.Ftn, appealLetterClaim.Ftn },
                { Constants.PrimaryGroupNumber, appealLetterClaim.PrimaryGroupNumber },
                { Constants.SecondaryGroupNumber, appealLetterClaim.SecondaryGroupNumber },
                { Constants.TertiaryGroupNumber, appealLetterClaim.TertiaryGroupNumber },

                { Constants.PrimaryMemberId, appealLetterClaim.PrimaryMemberId },
                //{Constants.SecondaryMemberId, appealLetterClaim.SecondaryMemberId},
                //{Constants.TertiaryMemberId, appealLetterClaim.TertiaryMemberId},

                { Constants.MedRecNumber, appealLetterClaim.MedRecNumber },
                { Constants.Npi, appealLetterClaim.Npi },
                { Constants.PatientAccountNumber, appealLetterClaim.PatientAccountNumber },
                {
                    Constants.PatientDob,
                    appealLetterClaim.PatientDob.HasValue
                        ? (appealLetterClaim.PatientDob.Value.ToString("MM/dd/yyyy") == "01/01/1900" ? string.Empty : appealLetterClaim.PatientDob.Value.ToString("MM/dd/yyyy"))
                            : string.Empty
                },
                { Constants.PatientFirstName, appealLetterClaim.PatientFirstName },
                { Constants.PatientLastName, appealLetterClaim.PatientLastName },
                { Constants.PatientMiddleName, appealLetterClaim.PatientMiddleName },
                {
                    Constants.PatientResponsibility,
                    appealLetterClaim.PatientResponsibility.HasValue
                            ? "$" + appealLetterClaim.PatientResponsibility.Value.ToString("0.00")
                            : string.Empty
                },
                { Constants.PayerName, appealLetterClaim.PayerName },
                { Constants.ProviderName, appealLetterClaim.ProviderName },

                {
                    Constants.RemitCheckDate,
                    appealLetterClaim.RemitCheckDate.HasValue
                        ? (appealLetterClaim.RemitCheckDate.Value.ToString("MM/dd/yyyy") == "01/01/1900" ? string.Empty : appealLetterClaim.RemitCheckDate.Value.ToString("MM/dd/yyyy"))
                            : string.Empty
                },
                {
                    Constants.RemitPayment,
                    appealLetterClaim.RemitPayment.HasValue
                            ? "$" + appealLetterClaim.RemitPayment.Value.ToString("0.00")
                            : string.Empty
                },

                {
                    Constants.StatementFrom,
                    appealLetterClaim.StatementFrom.HasValue
                        ? (appealLetterClaim.StatementFrom.Value.ToString("MM/dd/yyyy") == "01/01/1900" ? string.Empty : appealLetterClaim.StatementFrom.Value.ToString("MM/dd/yyyy"))
                            : string.Empty
                },
                {
                    Constants.StatementThru,
                    appealLetterClaim.StatementThru.HasValue
                            ? (appealLetterClaim.StatementThru.Value.ToString("MM/dd/yyyy") == "01/01/1900" ? string.Empty : appealLetterClaim.StatementThru.Value.ToString("MM/dd/yyyy"))
                            : string.Empty
                },
                {
                    Constants.ClaimTotal,
                    appealLetterClaim.ClaimTotal.HasValue
                            ? "$" + appealLetterClaim.ClaimTotal.Value.ToString("0.00")
                            : string.Empty
                },
                {
                    Constants.CurrentDate,
                    DateTime.Now.ToString("MM/dd/yyyy")
                },
                { Constants.Icn, appealLetterClaim.Icn },
                { Constants.Los, Convert.ToString(appealLetterClaim.Los) },
                { Constants.Age, Convert.ToString(appealLetterClaim.Age) }
            };

            //Replace claim data in template text
            string templateClaimText = claimColumns.Aggregate(templateText,
                                                              (result, s) => result.Replace(s.Key, s.Value));

            return(templateClaimText);
        }