public ActionResult PreviewUploadMISData(string srData)
        {
            AdjustRefundUploadService   service = new AdjustRefundUploadService();
            AdjustrefundUploadViewModel model   = service.SubmitPreviewUploadData(srData);

            //if (model != null)
            //{
            //    return PartialView("~/Views/Adjustrefund/AdjustrefundPreviewItems.cshtml", model);
            //}
            //else
            //{
            //    return null;
            //}
            return(new JsonResult()
            {
                Data = new
                {
                    success = true,
                    responseText = "",
                    html = UtilityService.RenderPartialView(this, "~/Views/Adjustrefund/AdjustrefundPreviewItems.cshtml", model)
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,

                MaxJsonLength = Int32.MaxValue // Use this value to set your maximum size for all of your Requests
            });
            // return Json(model, JsonRequestBehavior.AllowGet);
        }
        // GET: AdjustRefundUpload to MIS
        public ActionResult SummaryReportList()
        {
            ViewBag.Title = UtilityService.GetPagetTitlePrefix(ConstantVariableService.FormStateList);
            AdjustrefundUploadViewModel model   = new AdjustrefundUploadViewModel();
            AdjustRefundUploadService   service = new AdjustRefundUploadService();

            model = service.InitialListSearch("ALL");
            model.NameFormView = "AdjustrefundDoneAndClose";
            model.UserRequest  = "00003333";
            return(View("~/Views/Adjustrefund/AdjustrefundDoneAndClose.cshtml", model));
        }
        // GET: AdjustRefundMapping
        public ActionResult LastAdjustList()
        {
            ViewBag.Title = UtilityService.GetPagetTitlePrefix(ConstantVariableService.FormStateList);
            //PaymentItemsService service = new PaymentItemsService();
            AdjustrefundUploadViewModel model   = new AdjustrefundUploadViewModel();
            AdjustRefundUploadService   service = new AdjustRefundUploadService();

            model = service.InitialListSearch("ALL");
            model.NameFormView = "AdjustrefundCheckAdjDetail";
            //return View("~/Views/Adjustrefund/Upload.cshtml");
            return(View("~/Views/Adjustrefund/AdjustrefundCheckAdjDetail.cshtml", model));
        }
        public ActionResult SubmitUploadForm(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService service = new AdjustRefundUploadService();

            //AdjustrefundUploadViewModel model = service.SubmitMergeFormData(formData);

            ValidationResult result = service.SubmitForm(formData, ModelState);

            return(Json(
                       new { success = !result.ErrorFlag, responseText = result.Message, errorList = result.ModelStateErrorList },
                       JsonRequestBehavior.AllowGet
                       ));
        }
        // GET: AdjustRefundUpload to MIS
        public ActionResult UploadList()
        {
            ViewBag.Title = UtilityService.GetPagetTitlePrefix(ConstantVariableService.FormStateList);
            //PaymentItemsService service = new PaymentItemsService();
            AdjustrefundUploadViewModel model   = new AdjustrefundUploadViewModel();
            AdjustRefundUploadService   service = new AdjustRefundUploadService();

            model = service.InitialListSearch("ALL");
            model.NameFormView  = "AdjustrefundUploadMISDetail";
            model.UserRequest   = "00003333";
            model.HeaderSummary = "Result Summary Upoload Data of " + DateTime.Now.Date.ToString("dd/MM/yyyy");
            //return View("~/Views/Adjustrefund/Upload.cshtml");
            return(View("~/Views/Adjustrefund/AdjustrefundUploadMISDetail.cshtml", model));
        }
        // return File(new System.Text.UTF8Encoding().GetBytes(csv), "text/csv", "Report123.csv");
        //    System.IO.FileInfo exportFile = //create your ExportFile
        //return File(exportFile.FullName, "text/csv", string.Format("Export-{0}.csv", DateTime.Now.ToString("yyyyMMdd-HHmmss")));
        public PartialViewResult PreviewData(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService   service = new AdjustRefundUploadService();
            AdjustrefundUploadViewModel model   = service.SubmitMergeFormData(formData);

            if (model != null)
            {
                return(PartialView("~/Views/Adjustrefund/AdjustrefundUploadItems.cshtml", model));
            }
            else
            {
                return(null);
            }
        }
        public ActionResult SubmitMappingForm(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService service = new AdjustRefundUploadService();

            byte[] filecontent  = service.SubmitFormFileMappingContent(formData);
            string shotNameTeam = string.Empty;

            shotNameTeam = SettingService.SetShortName(formData.UserRequest);
            if (filecontent == null)
            {
                return(List());
            }
            else
            {
                return(File(filecontent, ExcelExportHelper.ExcelContentType, shotNameTeam + "_Mapping Input_" + DateTime.Now.Date.ToString("yyyyMMdd") + "_MIS format_Convert" + ".xlsx"));
            }
        }
        public ActionResult ImporttoDatabase(AdjustrefundUploadViewModel importExcel)
        {
            if (ModelState.IsValid)
            {
                string path = "";// Server.MapPath("~/Content/Upload/" + importExcel.files.FileName);
                //importExcel.files.SaveAs(path);

                string          excelConnectionString = @"Provider='Microsoft.ACE.OLEDB.12.0';Data Source='" + path + "';Extended Properties='Excel 12.0 Xml;IMEX=1'";
                OleDbConnection excelConnection       = new OleDbConnection(excelConnectionString);

                //Sheet Name
                excelConnection.Open();
                string tableName = excelConnection.GetSchema("Tables").Rows[0]["TABLE_NAME"].ToString();
                excelConnection.Close();
                //End

                OleDbCommand cmd = new OleDbCommand("Select * from [" + tableName + "]", excelConnection);

                excelConnection.Open();

                OleDbDataReader dReader;
                dReader = cmd.ExecuteReader();
                SqlBulkCopy sqlBulk = new SqlBulkCopy(ConfigurationManager.ConnectionStrings["CS"].ConnectionString);

                //Give your Destination table name
                sqlBulk.DestinationTableName = "sale";

                //Mappings
                sqlBulk.ColumnMappings.Add("Date", "AddedOn");
                sqlBulk.ColumnMappings.Add("Region", "Region");
                sqlBulk.ColumnMappings.Add("Person", "Person");
                sqlBulk.ColumnMappings.Add("Item", "Item");
                sqlBulk.ColumnMappings.Add("Units", "Units");
                sqlBulk.ColumnMappings.Add("Unit Cost", "UnitCost");
                sqlBulk.ColumnMappings.Add("Total", "Total");

                sqlBulk.WriteToServer(dReader);
                excelConnection.Close();

                ViewBag.Result = "Successfully Imported";
            }
            return(View());
        }
        public ActionResult Detail(int recordKey)
        {
            AdjustRefundUploadService   service            = new AdjustRefundUploadService();
            AdjustrefundUploadViewModel adjrefundViewModel = new AdjustrefundUploadViewModel();

            //service.InitialDetailView(recordKey, ConstantVariableService.FormStateDisplay);

            if (adjrefundViewModel != null)
            {
                ViewBag.Title = UtilityService.GetPagetTitlePrefix(ConstantVariableService.FormStateDisplay);
                return(View("~/Views/Adjustrefund/AdjustrefundUploadDetail.cshtml", adjrefundViewModel));
            }
            else
            {
                ViewBag.Title = UtilityService.GetPagetTitlePrefix(ConstantVariableService.FormStateList);
                //return to List page
                return(View("~/Views/Adjustrefund/AdjustrefundUploadDetail.cshtml"));
            }
        }
        public ActionResult SubmitMergeForm(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService service = new AdjustRefundUploadService();


            byte[] filecontent = service.SubmitFormFileContent(formData);

            //DataSet getDataset = new DataSet();

            //getDataset = AdjustRefundUploadService.InitialDataFormViewModel(formData);



            //if (getDataset.Tables.Count > 0)
            //{

            //    filecontent = ExcelExportHelper.ExportExcelMutiSheetData(getDataset, "", false);//, columns);
            //}

            //HttpPostedFileBase file = Request.Files[0];
            //if (file.ContentLength > 0)
            //{
            //    var fileName = Path.GetFileName(file.FileName);
            //    assignment.FileLocation = Path.Combine(
            //        Server.MapPath("~/App_Data/uploads"), fileName);
            //    file.SaveAs(assignment.FileLocation);
            //}

            string shotNameTeam = string.Empty;

            shotNameTeam = SettingService.SetShortName(formData.UserRequest);

            if (filecontent == null)
            {
                return(List());
            }
            else
            {
                //DownloadCSV(getDataset.Tables["Fund Transfer Memo"]);
                return(File(filecontent, ExcelExportHelper.ExcelContentType, shotNameTeam + "_Mapping Input_" + DateTime.Now.Date.ToString("yyyyMMdd") + "_MIS format_Adjust" + ".xlsx"));
            }
        }
        public ActionResult ImportExcelGenerateTable(AdjustrefundUploadViewModel formData)
        {
            DataTable uploadViewModel         = new DataTable();
            AdjustRefundUploadService service = new AdjustRefundUploadService();

            var result = service.InitialDataFormUploadViewModel(formData);


            AdjustrefundUploadViewModel model = formData;

            if (!result.ErrorFlag)
            {
                uploadViewModel    = result.ReturnResult;
                model.adjDataTable = result.ReturnResult;

                return(new JsonResult()
                {
                    Data = new
                    {
                        success = !result.ErrorFlag,
                        responseText = result.Message,
                        html = UtilityService.RenderPartialView(this, "~/Views/Adjustrefund/AdjustrefundUploadItems.cshtml", model)
                    },
                    JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                    MaxJsonLength = Int32.MaxValue // Use this value to set your maximum size for all of your Requests
                });
            }
            else
            {
                return(Json(
                           new
                {
                    success = !result.ErrorFlag,
                    responseText = result.Message,
                    html = "",
                    errorList = result.ModelStateErrorList
                },
                           JsonRequestBehavior.AllowGet));
            }
        }
        public ActionResult SubmitForm(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService service = new AdjustRefundUploadService();
            ValidationResult          result  = service.SubmitForm(formData, ModelState);

            //return Json(
            //    new { success = !result.ErrorFlag, responseText = result.Message, errorList = result.ModelStateErrorList },
            //    JsonRequestBehavior.AllowGet
            //);
            return(new JsonResult()
            {
                Data = new
                {
                    success = !result.ErrorFlag,
                    responseText = result.Message,
                    errorList = result.ModelStateErrorList,
                    dataCallback = result.AdditionalInfo1
                },
                JsonRequestBehavior = JsonRequestBehavior.AllowGet,
                //MaxJsonLength = Int32.MaxValue // Use this value to set your maximum size for all of your Requests
            });
        }
        public ActionResult SubmitReportForm(AdjustrefundUploadViewModel formData)
        {
            AdjustRefundUploadService service = new AdjustRefundUploadService();

            byte[] filecontent = service.SubmitFormFileCloseAndSendContent(formData);

            string shotNameTeam = string.Empty;

            shotNameTeam = SettingService.SetShortName(formData.UserRequest);
            string fileName = shotNameTeam + "_Summary Send out_" + DateTime.Now.Date.ToString("dd MMM yyyy") + "_Send Close SR & Done Activity";

            if (formData.UserRequest == "00002222" || formData.UserRequest == "00004444")
            {
                fileName = shotNameTeam + "_Summary Send out_" + DateTime.Now.Date.ToString("dd MMM yyyy") + "_result_Send out";
            }
            if (filecontent == null)
            {
                return(List());
            }
            else
            {
                return(File(filecontent, ExcelExportHelper.ExcelContentType, fileName + ".xlsx"));
            }
        }
        //[ActionName("Index")]
        public ActionResult Index_Post(string fileName, string sheetName)
        {
            //Fill dataset with records
            AdjustRefundUploadService service = new AdjustRefundUploadService();
            string tempFilePath = ConfigurationManager.AppSettings["TempFilePath"];

            tempFilePath = System.Web.HttpContext.Current.Server.MapPath(tempFilePath);
            //DataSet excelDS = ExcelService.ConvertExcelToDataSet(tempFilePath, fileName, 1);
            ValidationWithReturnResult <DataSet> ds = new ValidationWithReturnResult <DataSet>();

            ds = service.ConvertExcelToDataSet(tempFilePath, fileName, sheetName);
            DataSet dataSet = new DataSet();

            dataSet = ds.ReturnResult;
            //DataSet dataSet = GetRecordsFromDatabase();

            StringBuilder sb = new StringBuilder();

            sb.Append("<table>");

            //LINQ to get Column names
            var columnName = dataSet.Tables[0].Columns.Cast <DataColumn>()
                             .Select(x => x.ColumnName)
                             .ToArray();

            sb.Append("<tr>");
            //Looping through the column names
            foreach (var col in columnName)
            {
                sb.Append("<td>" + col + "</td>");
            }
            sb.Append("</tr>");

            //Looping through the records
            foreach (DataRow dr in dataSet.Tables[0].Rows)
            {
                sb.Append("<tr>");
                foreach (DataColumn dc in dataSet.Tables[0].Columns)
                {
                    sb.Append("<td>" + dr[dc] + "</td>");
                }
                sb.Append("</tr>");
            }

            sb.Append("</table>");

            //Writing StringBuilder content to an excel file.
            Response.Clear();
            Response.ClearContent();
            Response.ClearHeaders();
            Response.Charset     = "";
            Response.Buffer      = true;
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("content-disposition", "attachment;filename=UserReport.xls");
            Response.Write(sb.ToString());
            Response.Flush();
            Response.Close();

            AdjustrefundUploadViewModel model = new AdjustrefundUploadViewModel();

            return(View("~/Views/Adjustrefund/AdjustrefundUploadDetail.cshtml", model));
        }