Ejemplo n.º 1
0
        public ActionResult Import(IngredientModel model)
        {
            try
            {
                if (model.ListCompany.Count == 0)
                {
                    ModelState.AddModelError("ListCompany", _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Please choose company."));
                    return(View(model));
                }
                if (model.ExcelUpload == null || model.ExcelUpload.ContentLength <= 0)
                {
                    ModelState.AddModelError("ExcelUpload", _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Excel filename cannot be null"));
                    return(View(model));
                }
                string fileName = Path.GetFileName(model.ExcelUpload.FileName);
                string filePath = string.Format("{0}/{1}", System.Web.HttpContext.Current.Server.MapPath("~/Uploads"), fileName);

                IngredientImportResultModels importModel = new IngredientImportResultModels();
                string msg = "";

                //upload file to server
                if (System.IO.File.Exists(filePath))
                {
                    System.IO.File.Delete(filePath);
                }

                model.ExcelUpload.SaveAs(filePath);
                int totalRowExcel;
                importModel.ListImport    = _factory.Import(filePath, CurrentUser.UserName, CurrentUser.ListOrganizationId, out totalRowExcel, model.ListCompany, CurrentUser.ListStoreID, ref msg);
                importModel.TotalRowExcel = totalRowExcel;

                //delete file excel after insert to database
                if (System.IO.File.Exists(filePath))
                {
                    System.IO.File.Delete(filePath);
                }

                //return View("DetailStatus", result);
                if (msg.Equals(""))
                {
                    return(View("ImportDetail", importModel));
                }
                else
                {
                    _logger.Error("IngredientImport: " + msg);
                    ModelState.AddModelError("ListCompany", _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey(msg));
                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                //_logger.Error(ex);
                //return new HttpStatusCodeResult(400, ex.Message);
                _logger.Error("Ingredient_Import: " + ex);
                ModelState.AddModelError("ExcelUpload", _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey(ex.Message));
                return(View(model));
            }
        }