Ejemplo n.º 1
0
        public ActionResult Export(InteCategoriesModels model)
        {
            try
            {
                if (model.ListStores == null)
                {
                    ModelState.AddModelError("ListStores", CurrentUser.GetLanguageTextFromKey("Please choose store."));
                    return(View(model));
                }

                XLWorkbook wb = new XLWorkbook();
                var        wsCategoryMerchant = wb.Worksheets.Add("Category Merchant");
                var        wsCategoryStore    = wb.Worksheets.Add("Category Store");

                StatusResponse response = _factory.Export(ref wsCategoryMerchant, ref wsCategoryStore, model.ListStores, CurrentUser.ListOrganizationId);
                if (!response.Status)
                {
                    ModelState.AddModelError("", response.MsgError);
                    return(View(model));
                }

                ViewBag.wb = wb;
                Response.Clear();
                Response.ClearContent();
                Response.ClearHeaders();
                Response.Charset         = UTF8Encoding.UTF8.WebName;
                Response.ContentEncoding = UTF8Encoding.UTF8;
                Response.ContentType     = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                Response.AddHeader("content-disposition", String.Format(@"attachment;filename={0}.xlsx", CommonHelper.GetExportFileName("Categories").Replace(" ", "_")));

                using (var memoryStream = new System.IO.MemoryStream())
                {
                    wb.SaveAs(memoryStream);
                    memoryStream.WriteTo(HttpContext.Response.OutputStream);
                    memoryStream.Close();
                }
                HttpContext.Response.End();
                return(RedirectToAction("Export"));
            }
            catch (Exception e)
            {
                _logger.Error("Categories_Import: " + e);
                return(new HttpStatusCodeResult(400, e.Message));
            }
        }