449 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			449 lines
		
	
	
		
			21 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.IO;
 | |
| using System.Linq;
 | |
| using System.Web;
 | |
| using System.Web.Configuration;
 | |
| using System.Web.Mvc;
 | |
| using Weee.Areas.Admin.Supports;
 | |
| using Weee.Areas.Admin.ViewModels;
 | |
| using Weee.Models.Paramemter;
 | |
| using Weee.DAL;
 | |
| using System.Net;
 | |
| using PagedList;
 | |
| using System.Threading;
 | |
| using Weee.Models;
 | |
| 
 | |
| namespace Weee.Areas.Admin.Controllers
 | |
| {
 | |
| 
 | |
|     public class ParameterDatabaseController : AdminControllerBase
 | |
|     {
 | |
|         private string fileSavedPath = WebConfigurationManager.AppSettings["UploadPath"];
 | |
| 
 | |
|         public ParameterDatabaseController(WeeeDataContext db)
 | |
|             : base(db)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         public ActionResult Index(int simaproVersionID = 0, int simaproCategoryID = 0
 | |
|             , int simaproTypeID = 0, int page = 1, string searchString = null)
 | |
|         {
 | |
|             var simaproViewModel = new SimaproIndexViewModel();
 | |
| 
 | |
|             if (db.SimaproVersions.ToList().Count() == 0)
 | |
|             {
 | |
|                 ViewBag.errorMsg = "Please Import Data";
 | |
|                 return View();
 | |
|             }
 | |
|             simaproViewModel.SimaproVersions = db.SimaproVersions.Where(x => x.IsActive == true)
 | |
|                 .OrderByDescending(x=>x.ID).ToList();
 | |
|             //simaproViewModel.SimaproVersion = simaproVersionID == 0 ? db.SimaproVersions.First() : db.SimaproVersions.Find(simaproVersionID);
 | |
|             simaproViewModel.SimaproVersion = simaproVersionID == 0 ? new SimaproVersion() : db.SimaproVersions.Find(simaproVersionID);
 | |
|             simaproViewModel.SimaproParameterCategories = simaproViewModel.SimaproVersion.Categories.ToList();
 | |
|             //DL-39 begin
 | |
|             //simaproViewModel.SimaproParameterCategory = simaproCategoryID == 0 ? simaproViewModel.SimaproParameterCategories.First() : db.SimaproCategories.Find(simaproCategoryID);//DL-39
 | |
|             if (simaproCategoryID != 0)
 | |
|             {
 | |
|                 var categories = simaproViewModel.SimaproVersion.Categories.ToList();
 | |
|                 foreach (var itm in categories)
 | |
|                 {
 | |
|                     if (itm.ID == simaproCategoryID)
 | |
|                     {
 | |
|                         simaproViewModel.SimaproParameterCategory = db.SimaproCategories.Find(simaproCategoryID);
 | |
|                         break;
 | |
|                     }
 | |
|                 }
 | |
|                 if (simaproViewModel.SimaproParameterCategory == null)
 | |
|                 {
 | |
|                     //DL-77
 | |
|                     if (simaproViewModel.SimaproVersion.Categories.ToList().Count > 0)
 | |
|                     {
 | |
|                         simaproViewModel.SimaproParameterCategory = simaproViewModel.SimaproVersion.Categories.ToList().First();
 | |
|                     }
 | |
|                     else
 | |
|                     {
 | |
|                         simaproViewModel.SimaproParameterCategory = null;
 | |
|                     }
 | |
|                     //simaproViewModel.SimaproParameterCategory = simaproViewModel.SimaproVersion.Categories.ToList().First();
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 simaproViewModel.SimaproParameterCategory = simaproViewModel.SimaproParameterCategories.Count > 0 ? simaproViewModel.SimaproParameterCategories.First() : null; //DL-77
 | |
|                 //simaproViewModel.SimaproParameterCategory = simaproViewModel.SimaproParameterCategories.First();//DL-77
 | |
|             }
 | |
|             //end
 | |
|             simaproViewModel.SimaproParameterTypes = simaproViewModel.SimaproParameterCategory !=null? simaproViewModel.SimaproParameterCategory.SubTypes.ToList() : null; //DL-77
 | |
|             //simaproViewModel.SimaproParameterTypes = simaproViewModel.SimaproParameterCategory.SubTypes.ToList();//DL-77
 | |
|             var count = simaproViewModel.SimaproParameterCategory != null ? simaproViewModel.SimaproParameterCategory.SubTypes.ToList().Count() : 0; //DL-77
 | |
|             //var count = simaproViewModel.SimaproParameterCategory.SubTypes.ToList().Count();  //DL-77
 | |
|             if (simaproTypeID == 0)
 | |
|             {
 | |
|                 if (count > 0)
 | |
|                 {
 | |
|                     //DL-77 begin
 | |
|                     simaproViewModel.SimaproParameterType = simaproViewModel.SimaproParameterCategory != null ? simaproViewModel.SimaproParameterCategory.SubTypes.ToList().First() : null;
 | |
|                     ViewBag.simaproCategoryID = simaproViewModel.SimaproParameterType != null ? simaproViewModel.SimaproParameterType.ID : 0;
 | |
|                     //simaproViewModel.SimaproParameterType = simaproViewModel.SimaproParameterCategory.SubTypes.ToList().First();
 | |
|                     //ViewBag.simaproCategoryID = simaproViewModel.SimaproParameterType.ID;
 | |
|                     //DL-77 end
 | |
|                 }
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 if (count > 0)
 | |
|                 {
 | |
|                     foreach (var type in simaproViewModel.SimaproParameterTypes)
 | |
|                     {
 | |
|                         if (type.ID == simaproTypeID)
 | |
|                         {
 | |
|                             simaproViewModel.SimaproParameterType = type;
 | |
|                             break;
 | |
|                         }
 | |
|                     }
 | |
|                     if (simaproViewModel.SimaproParameterType == null)
 | |
|                     {
 | |
|                         simaproViewModel.SimaproParameterType = simaproViewModel.SimaproParameterCategory != null ? simaproViewModel.SimaproParameterCategory.SubTypes.ToList().FirstOrDefault() : null;//DL-77
 | |
|                         //simaproViewModel.SimaproParameterType = simaproViewModel.SimaproParameterCategory.SubTypes.ToList().FirstOrDefault();//DL-77
 | |
|                     }
 | |
|                 }
 | |
|                 //simaproViewModel.SimaproParameterType = db.SimaproTypes.Find(simaproTypeID);
 | |
|             }
 | |
|             //simaproViewModel.SimaproParameterType = simaproTypeID == 0 ? simaproViewModel.SimaproParameterCategory.SubTypes.ToList().First() : db.SimaproTypes.Find(simaproTypeID);
 | |
|             //end
 | |
| 
 | |
|             if (searchString != null && searchString.Trim()!="")
 | |
|             {
 | |
|                 searchString = searchString.Trim();
 | |
|                 simaproViewModel.parameters = db.SimaproParameters
 | |
|                     .Where(x => x.Remark.Contains(searchString) ||
 | |
|                         x.Encoding.Contains(searchString) ||
 | |
|                         x.Database.Contains(searchString))
 | |
|                     .Where(x=>x.Type.Category.VersionID==simaproVersionID)
 | |
|                     .Where(x=>x.Type.CategoryID == simaproCategoryID)
 | |
|                     .OrderBy(x=>x.Encoding)
 | |
|                     .ToPagedList(page, 10); //DL-39 add categoryid to where clauseS
 | |
|             }
 | |
|             else if (simaproViewModel.SimaproParameterType != null)
 | |
|             {
 | |
|                 simaproViewModel.parameters = simaproViewModel.SimaproParameterType.Parameters
 | |
|                     .OrderBy(x=>x.Encoding)
 | |
|                     .ToPagedList(page, 10);
 | |
|             }
 | |
|             //simaproViewModel.parameters = simaproViewModel.SimaproParameterType.Parameters.ToPagedList(1, 10);//39
 | |
| 
 | |
|             ViewBag.searchString = searchString;
 | |
|             ViewBag.simaproVersionID = simaproVersionID;
 | |
|             ViewBag.simaproCategoryID = simaproCategoryID;
 | |
|             ViewBag.simaproTypeID = simaproTypeID;
 | |
|             ViewBag.page = page;
 | |
|             return View(simaproViewModel);
 | |
|         }
 | |
| 
 | |
|         public ActionResult Edit(int simaproParameterID = 0)
 | |
|         {
 | |
|             if (simaproParameterID == 0) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
 | |
|             var simaproParameter = db.SimaproParameters.Find(simaproParameterID);
 | |
|             if (simaproParameter == null) return HttpNotFound();
 | |
| 
 | |
|             return View(simaproParameter);
 | |
|         }
 | |
| 
 | |
|         [HttpPost]
 | |
|         [Weee.Filter.MvcLog("Edit", "SimaproDatabase")]
 | |
|         public ActionResult Edit(SimaproParameter simaproParameter, int simaproParameterID = 0)
 | |
|         {
 | |
|             var updatedSimaproParameter = db.SimaproParameters.Find(simaproParameterID);
 | |
|             updatedSimaproParameter.DisplayNameTW = simaproParameter.DisplayNameTW;
 | |
|             updatedSimaproParameter.DisplayNameEN = simaproParameter.DisplayNameEN;
 | |
|             updatedSimaproParameter.DisplayNameCN = simaproParameter.DisplayNameCN;
 | |
|             db.SaveChanges();
 | |
| 
 | |
|             return RedirectToAction("Edit", new { simaproParameterID = simaproParameterID });
 | |
|         }
 | |
| 
 | |
|         public ActionResult EditSimaproVersion(int simaproVersionID = 0)
 | |
|         {
 | |
|             if (simaproVersionID == 0) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
 | |
|             var simaproVersion = db.SimaproVersions.Find(simaproVersionID);
 | |
|             if (simaproVersion == null) return HttpNotFound();
 | |
|             var versions = db.SimaproVersions;
 | |
|             var qry = versions
 | |
|                 .Where(x => x.ID == simaproVersionID)
 | |
|                 .Select(x => x.Categories
 | |
|                     .SelectMany(y => y.SubTypes.
 | |
|                         SelectMany(z => z.Parameters)).Count());
 | |
|             ViewBag.ParameterCount = qry.First().ToString();
 | |
|             return View(simaproVersion);
 | |
|         }
 | |
| 
 | |
|         [HttpPost]
 | |
|         [Weee.Filter.MvcLog("EditSimaproVersion", "SimaproDatabase")]
 | |
|         public ActionResult EditSimaproVersion(SimaproVersion simaproVersion, string count)
 | |
|         {
 | |
|             ViewBag.ParameterCount = count;
 | |
|             if (string.IsNullOrWhiteSpace(simaproVersion.Version))
 | |
|             {
 | |
|                 ViewBag.errorMsg = "請填寫版本描述";
 | |
|                 return View("EditSimaproVersion", simaproVersion);
 | |
|             }
 | |
|             var isVersionExist = db.SimaproVersions.Where(x => x.ID != simaproVersion.ID && x.Version == simaproVersion.Version).AsEnumerable().Any();
 | |
|             if (isVersionExist)
 | |
|             {
 | |
|                 ViewBag.errorMsg = "版本描述不得重複";
 | |
|                 return View("EditSimaproVersion", simaproVersion);
 | |
|             }
 | |
|             if (string.IsNullOrWhiteSpace(simaproVersion.paraSource))
 | |
|             {
 | |
|                 ViewBag.errorMsg = "請填寫係數來源";
 | |
|                 return View("EditSimaproVersion", simaproVersion);
 | |
|             }
 | |
|             if (string.IsNullOrWhiteSpace(simaproVersion.Description))
 | |
|             {
 | |
|                 ViewBag.errorMsg = "請填寫描述";
 | |
|                 return View("EditSimaproVersion", simaproVersion);
 | |
|             }
 | |
|             var updatedSimaproVersion = db.SimaproVersions.Find(simaproVersion.ID);
 | |
|             updatedSimaproVersion.Version = simaproVersion.Version;
 | |
|             updatedSimaproVersion.Description = simaproVersion.Description;
 | |
|             updatedSimaproVersion.paraSource = simaproVersion.paraSource;
 | |
|             db.SaveChanges();
 | |
| 
 | |
|             return RedirectToAction("Import");
 | |
|         }
 | |
| 
 | |
|         public ActionResult Detail(int simaproParameterID = 0)
 | |
|         {
 | |
|             if (simaproParameterID == 0) return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
 | |
|             var simaproParameter = db.SimaproParameters.Find(simaproParameterID);
 | |
|             if (simaproParameter == null) return HttpNotFound();
 | |
| 
 | |
|             return View(simaproParameter);
 | |
|         }
 | |
| 
 | |
|         public ActionResult ToggleStatus(int id)
 | |
|         {
 | |
|             var v = db.SimaproVersions.Find(id);
 | |
|             v.IsActive = !v.IsActive;
 | |
|             v.IsDeleteable = false;
 | |
|             db.SaveChanges();
 | |
|             return RedirectToAction("import");
 | |
|         }
 | |
| 
 | |
|         public ActionResult DeleteVersion(int id)
 | |
|         {
 | |
|             //delete lca before delete simapro parameters
 | |
|             //var ids = db.SimaproParameters.Where(x => x.Type.Category.VersionID == id).Select(x=>x.ID).ToList();
 | |
|             //var lcaIDs = db.ProductLCAProductSurveyForm_Material.Where(x => ids.Contains((int)x.ParameterID)).Select(x=>x.LCAID).ToList();
 | |
|             var lcaIDs = db.ProductLCAProductSurveyForm_Material.Join(db.SimaproParameters, x => x.ParameterID, sp => sp.ID, (x, sp) => new { versionID = sp.Type.Category.VersionID, LCAID = x.LCAID }).Where(x => x.versionID == id).Select(x => x.LCAID).Distinct().ToList();
 | |
|             var lcaIDs2 = db.ProductLCAProductSurveyForm_Material.Join(db.SimaproCategories, x => x.ParameterTypeID, sc => sc.ID, (x, sc) => new { versionID = sc.VersionID, LCAID = x.LCAID }).Where(x => x.versionID == id).Select(x => x.LCAID).Distinct().ToList();
 | |
|             var totalLcaIDs = lcaIDs.Union(lcaIDs2).ToList();
 | |
|             for (int i = 0; i < totalLcaIDs.Count; i++)
 | |
|             {
 | |
|                 var lcaID = totalLcaIDs[i];
 | |
|                 LCA lca = db.LCAs.Find(lcaID);
 | |
|                 if (lca is OrganizationLCA)
 | |
|                 {
 | |
|                     OrganizationLCA olca = lca as OrganizationLCA;
 | |
| 
 | |
|                     var qry4 = (from a in db.OrganizationOtherCompound
 | |
|                                 where a.LCAID == olca.ID
 | |
|                                 select a);
 | |
|                     db.OrganizationOtherCompound.RemoveRange(qry4);
 | |
|                     olca = db.OrganizationLCAs.Find(lcaID);
 | |
|                     db.OrganizationLCAs.Remove(olca);
 | |
|                 }
 | |
|                 else if (lca is ProductLCA)
 | |
|                 {
 | |
|                     ProductLCA plca = lca as ProductLCA;
 | |
|                     var qry1 = db.ProductLCAFabSurveyResults.Find(lcaID);
 | |
|                     if (qry1 != null)
 | |
|                         db.ProductLCAFabSurveyResults.Remove(qry1);
 | |
| 
 | |
|                     var qry3 = (from a in db.ProductLCAReplyRequests
 | |
|                                 join b in db.ProductLCAProductSurveyForm_Material on a.ID equals b.ID
 | |
|                                 where b.LCAID == lcaID
 | |
|                                 select a);
 | |
|                     db.ProductLCAReplyRequests.RemoveRange(qry3);
 | |
|                     var qry2 = db.ProductLCAProductSurveyForm_Material.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAProductSurveyForm_Material.RemoveRange(qry2);
 | |
| 
 | |
|                     var qry5 = db.ProductLCAFabSurveyForm_Transport.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAFabSurveyForm_Transport.RemoveRange(qry5);
 | |
|                     var qry6 = db.ProductLCAFabSurveyForm_OtherCompound.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAFabSurveyForm_OtherCompound.RemoveRange(qry6);
 | |
|                     var qry7 = db.ProductLCAFabSurveyForm_Wastes.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAFabSurveyForm_Wastes.RemoveRange(qry7);
 | |
|                     var qry8 = db.ProductLCAFabSurveyForm_WasteTransport.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAFabSurveyForm_WasteTransport.RemoveRange(qry8);
 | |
|                     var qry9 = db.ProductLCAFabSurveyForm_WaterUsage.Where(x => x.LCAID == lcaID);
 | |
|                     db.ProductLCAFabSurveyForm_WaterUsage.RemoveRange(qry9);
 | |
|                     var qry10 = db.ProductLCAAbandonedStages.Where(x => x.ID == lcaID);
 | |
|                     db.ProductLCAAbandonedStages.RemoveRange(qry10);
 | |
|                     var qry11 = db.ProductLCAReplyRequests.Where(x => x.RepliedLCAID == lcaID);
 | |
|                     db.ProductLCAReplyRequests.RemoveRange(qry11);
 | |
| 
 | |
|                     plca = db.ProductLCAs.Find(lcaID);
 | |
|                     db.ProductLCAs.Remove(plca);
 | |
|                 }
 | |
|                 db.LCAs.Remove(lca);
 | |
|                 db.SaveChanges();
 | |
|             }
 | |
| 
 | |
|             var v = db.SimaproVersions.Find(id);
 | |
|             db.SimaproVersions.Remove(v);
 | |
|             db.SaveChanges();
 | |
|             return RedirectToAction("import");
 | |
|         }
 | |
| 
 | |
|         public ActionResult Import()
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 ViewBag.errorMsg = TempData["errorMsg"];
 | |
|                 ViewBag.successMsg = TempData["successMsg"];
 | |
|                 var versions = db.SimaproVersions.OrderByDescending(x=>x.ID);
 | |
|                 var qry = versions
 | |
|                         .Select(x => x.Categories
 | |
|                             .SelectMany(y => y.SubTypes.
 | |
|                                 SelectMany(z => z.Parameters)).Count());
 | |
|                 var versionsList = versions.ToList();
 | |
|                 ViewBag.ParameterCounts = qry.ToList();
 | |
|                 ViewBag.History = versionsList;
 | |
|                 ViewBag.version = DateTime.Now.ToString("yyMMddHHmmss");
 | |
|                 List<int> relatedCount = new List<int>();
 | |
|                 var relatedCountQuery = db.ProductLCAProductSurveyForm_Material.Join(db.SimaproParameters, x => x.ParameterID, sp => sp.ID, (x, sp) => new { versionID = sp.Type.Category.VersionID, LCAID = x.LCAID });
 | |
|                 var relatedCountQuery2 = db.ProductLCAProductSurveyForm_Material.Join(db.SimaproCategories, x => x.ParameterTypeID, sc => sc.ID, (x, sc) => new { versionID = sc.VersionID, LCAID = x.LCAID });
 | |
|                 for (int i = 0; i < versionsList.Count; i++)
 | |
|                 {
 | |
|                     var versionID = versionsList[i].ID;
 | |
|                     var count = relatedCountQuery.Where(x => x.versionID == versionID).Select(x => x.LCAID).Distinct().Count();
 | |
|                     var count2 = relatedCountQuery2.Where(x => x.versionID == versionID).Select(x => x.LCAID).Distinct().Count();
 | |
|                     relatedCount.Add((count + count2));
 | |
|                 }
 | |
|                 ViewBag.relatedCount = relatedCount;
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 string err = ex.Message;
 | |
|                 Thread.Sleep(0);
 | |
|             }
 | |
|             return View();
 | |
|         }
 | |
| 
 | |
|         [HttpPost]
 | |
|         [Weee.Filter.MvcLog("Import", "SimaproDatabase")]
 | |
|         public ActionResult Upload(string description = "", string parasource = "", string version="")
 | |
|         {
 | |
|             if (Request == null)
 | |
|                 return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
 | |
| 
 | |
|             HttpPostedFileBase file = Request.Files["UploadedFile"];
 | |
|             if (!this.UploadFileIsValid(file))
 | |
|                 return RedirectToAction("Import");
 | |
| 
 | |
|             if (version == "")
 | |
|             {
 | |
|                 TempData["errorMsg"] = "請填寫版本描述";
 | |
|                 return RedirectToAction("Import");
 | |
|             }
 | |
|             var isVersionExist = db.SimaproVersions.Where(x =>x.Version == version).AsEnumerable().Any();
 | |
|             if (isVersionExist)
 | |
|             {
 | |
|                 TempData["errorMsg"] = "版本描述不得重複";
 | |
|                 return RedirectToAction("Import");
 | |
|             }
 | |
|             if (parasource == "")
 | |
|             {
 | |
|                 TempData["errorMsg"] = "請填寫係數來源";
 | |
|                 return RedirectToAction("Import");
 | |
|             }
 | |
|             if (description == "")
 | |
|             {
 | |
|                 TempData["errorMsg"] = "請填寫描述";
 | |
|                 return RedirectToAction("Import");
 | |
|             }
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 var fileName = this.FileUploadHandler(file);
 | |
|                 //var version2 = DateTime.Now.ToString("yyyyMMdd_") + Path.GetFileNameWithoutExtension(file.FileName).Substring(0, Math.Min(10, Path.GetFileNameWithoutExtension(file.FileName).Length));
 | |
|                 description += $"\n({Path.GetFileNameWithoutExtension(file.FileName)})";
 | |
|                 this.ImportExcelToDatabase(fileName, version, description, parasource);
 | |
|                 TempData["successMsg"] = "File Import Success!";
 | |
|             }
 | |
|             catch (Exception exception)
 | |
|             {
 | |
|                 if (exception.InnerException != null &&
 | |
|                         exception.InnerException.Message.CompareTo(
 | |
|                         "External table is not in the expected format.")
 | |
|                     == 0)
 | |
|                 {
 | |
|                     TempData["errorMsg"] = "請使用*.xlsx檔案";
 | |
|                 }
 | |
|                 else
 | |
|                     TempData["errorMsg"] = exception.Message;
 | |
|                 return RedirectToAction("Import");
 | |
|             }
 | |
|             return RedirectToAction("Import");
 | |
|         }
 | |
| 
 | |
|         private string FileUploadHandler(HttpPostedFileBase file)
 | |
|         {
 | |
|             string result;
 | |
| 
 | |
|             if (file == null) { throw new ArgumentNullException("file", "Upload failed: No File!"); }
 | |
|             if (file.ContentLength <= 0) { throw new InvalidOperationException("Upload failed: There is no content in this file"); }
 | |
| 
 | |
|             string virtualBaseFilePath = Url.Content(fileSavedPath);
 | |
|             string filePath = HttpContext.Server.MapPath(virtualBaseFilePath);
 | |
| 
 | |
|             if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); }
 | |
| 
 | |
|             string fileName = string.Concat(DateTime.Now.ToString("yyyyMMddHHmmssfff"), Path.GetExtension(file.FileName).ToLower());
 | |
|             string fullFilePath = Path.Combine(Server.MapPath(fileSavedPath), fileName);
 | |
|             file.SaveAs(fullFilePath);
 | |
| 
 | |
|             result = fileName;
 | |
| 
 | |
|             return result;
 | |
|         }
 | |
| 
 | |
|         private void ImportExcelToDatabase(string savedFileName, string version, string description, string parasource)
 | |
|         {
 | |
|             var fileName = string.Concat(Server.MapPath(fileSavedPath), "/", savedFileName);
 | |
|             var excelImporter = new SimaproExcelImporter(fileName);
 | |
| 
 | |
|             excelImporter.InsertSimaproData(version, description, parasource);
 | |
|             excelImporter.DeleteExcelFile(fileName);
 | |
|         }
 | |
| 
 | |
|         private bool UploadFileIsValid(HttpPostedFileBase file)
 | |
|         {
 | |
|             if (file == null)
 | |
|             {
 | |
|                 TempData["errorMsg"] = "Please upload the file";
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             if (file.ContentLength <= 0)
 | |
|             {
 | |
|                 TempData["errorMsg"] = "Please upload the file";
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             string fileExistName = Path.GetExtension(file.FileName).ToLower();
 | |
| 
 | |
|             if (!fileExistName.Equals(".xls", StringComparison.OrdinalIgnoreCase) &&
 | |
|                 !fileExistName.Equals(".xlsx", StringComparison.OrdinalIgnoreCase) &&
 | |
|                 !fileExistName.Equals(".csv", StringComparison.OrdinalIgnoreCase))
 | |
|             {
 | |
|                 TempData["errorMsg"] = "Please upload xls or xlsx format file";
 | |
|                 return false;
 | |
|             }
 | |
| 
 | |
|             return true;
 | |
|         }
 | |
|     }
 | |
| } |