/// <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>
        /// Letters the template.
        /// </summary>
        /// <param name="letterTemplateId">The letter template identifier.</param>
        /// <returns></returns>
        public ActionResult LetterTemplate(int letterTemplateId)
        {
            LetterTemplateViewModel letterTemplateViewModel = new LetterTemplateViewModel();

            if (letterTemplateId > 0)
            {
                LetterTemplate letterTemplate = new LetterTemplate {
                    LetterTemplateId = letterTemplateId, UserName = GetCurrentUserName()
                };
                letterTemplate = PostApiResponse <LetterTemplate>(Constants.LetterTemplate, Constants.Get,
                                                                  letterTemplate);


                if (letterTemplate != null && letterTemplate.TemplateText != null)
                {
                    letterTemplate = LetterReportUtil.UpdateImageUrl(letterTemplate, Request.ApplicationPath);

                    letterTemplateViewModel = Mapper.Map <LetterTemplate, LetterTemplateViewModel>(letterTemplate);
                }
            }
            return(View(letterTemplateViewModel));
        }
        public ActionResult Save(LetterTemplateViewModel letterTemplateViewModel)
        {
            JsonResult jsonResult;

            if (letterTemplateViewModel == null)
            {
                jsonResult = Json(new { isSuccess = false }, JsonRequestBehavior.AllowGet);
            }
            else
            {
                LetterTemplate letterTemplate =
                    Mapper.Map <LetterTemplateViewModel, LetterTemplate>(letterTemplateViewModel);
                letterTemplate.UserName   = GetCurrentUserName();
                letterTemplate.FacilityId = GetCurrentFacilityId();
                bool isLetterTemplateNameExists = false;

                //Check duplicate unique name
                if (letterTemplateViewModel.LetterTemplateId == 0)
                {
                    //Check letter is already exist in DB
                    isLetterTemplateNameExists = PostApiResponse <bool>(Constants.LetterTemplate, Constants.IsLetterNameExists,
                                                                        letterTemplate);
                }
                if (!isLetterTemplateNameExists)
                {
                    long letterTemplateTypeId = PostApiResponse <long>(Constants.LetterTemplate, Constants.Save,
                                                                       letterTemplate);
                    jsonResult = Json(new { isSuccess = true, letterTemplateTypeId });
                }
                else
                {
                    jsonResult = Json(new { isSuccess = false, isExists = true });
                }
            }
            return(jsonResult);
        }
        public ActionResult Preview(LetterTemplateViewModel letterTemplateViewModel)
        {
            if (letterTemplateViewModel.LetterTemplateId > 0 && letterTemplateViewModel.TemplateText == null)
            {
                LetterTemplate letterTemplate = new LetterTemplate
                {
                    UserName         = GetCurrentUserName(),
                    LetterTemplateId = letterTemplateViewModel.LetterTemplateId
                };
                letterTemplate = PostApiResponse <LetterTemplate>(Constants.LetterTemplate, Constants.Get,
                                                                  letterTemplate);
                if (letterTemplate != null)
                {
                    letterTemplateViewModel = Mapper.Map <LetterTemplate, LetterTemplateViewModel>(letterTemplate);
                }
            }
            else
            {
                letterTemplateViewModel.UserName = GetCurrentUserName();
                PostApiResponse <bool>(Constants.LetterTemplate, Constants.InsertAuditLog,
                                       letterTemplateViewModel);
            }
            var serializer = new JavaScriptSerializer {
                MaxJsonLength = Int32.MaxValue
            };

            string[] fileName = LetterReportUtil.RtfPreview(letterTemplateViewModel,
                                                            GlobalConfigVariable.ReportsFilePath);
            var result = new ContentResult
            {
                Content     = serializer.Serialize(new { fileNameData = fileName }),
                ContentType = Constants.ContentTypeApplication
            };

            return(result);
        }