private void GetLastUploadDetails(UploadAddressBaseModel model) { MetadataUpload dataUpload = db.MetadataUploads.Where(m => m.MetadataUploadTypeId == (Int32)Constants.MetadataUploadType.AddressBase).OrderByDescending(m => m.CreatedDateTimeUtc).FirstOrDefault(); if (dataUpload != null) { if (dataUpload.AspNetUser == null) { AspNetUser user = db.AspNetUsers.Find(dataUpload.CreatedByUserId); if (user != null) { model.LastUploadedBy = user.Name; } } else { model.LastUploadedBy = dataUpload.AspNetUser.Name; } model.LastUploadDateTimeUtc = dataUpload.CreatedDateTimeUtc; DateTime.SpecifyKind(model.LastUploadDateTimeUtc.Value, DateTimeKind.Utc); try { model.LastUploadFileName = String.Join("<br />", dataUpload.FileName.Split(';')); } catch {} } }
public ActionResult Index() { UploadAddressBaseModel model = new UploadAddressBaseModel(); GetViewData(); GetLastUploadDetails(model); return(View(model)); }
public ActionResult Index(UploadAddressBaseModel model) { ViewBag.IsComplete = true; // Check if import is already in progress. ProgressMessage pm = db.ProgressMessages.Find(MessageArea); if (pm != null) { if (!pm.IsComplete) { ViewBag.IsComplete = false; ModelState.AddModelError("", AppGlobal.Language.GetText(this, "ImportInProgress", "Import Already In Progress")); } else { DeleteProgressMessage(); } } if (ModelState.IsValid) { String[] validFileTypes = { ".zip" }; String AddressBaseFolder = Constants.ConfigSettings.AddressBaseUploadVirtualDirectoryName; if (AddressBaseFolder.EndsWith(@"\")) { AddressBaseFolder = AddressBaseFolder.Substring(0, AddressBaseFolder.Length - 1); } // Check if config setting is valid if (String.IsNullOrEmpty(AddressBaseFolder) || !Directory.Exists(AddressBaseFolder)) { ModelState.AddModelError("", AppGlobal.Language.GetText(this, "AddressBaseFolderNotConfigured", "Configuration setting VirtualDirectoryNameForStoringAddressBaseFiles is not set or is incorrect")); DeleteProgressMessage(); } String importErrorMessageText = AppGlobal.Language.GetText(this, "ImportError", "Error Importing Address Base : {0}"); try { for (int i = 0; i < Request.Files.Count; i++) { HttpPostedFileBase uploadedFile = Request.Files[i]; if (uploadedFile == null) { continue; } String ext = Path.GetExtension(uploadedFile.FileName); if (!validFileTypes.Contains(ext ?? "", StringComparer.CurrentCultureIgnoreCase)) { ModelState.AddModelError("File", AppGlobal.Language.GetText(this, "ZIPFilesOnly", "Please upload a ZIP file")); } if (ModelState.IsValid) { String ZIPFile = Path.Combine(AddressBaseFolder, uploadedFile.FileName); // Delete the file if it exists if (System.IO.File.Exists(ZIPFile)) { TryToDeleteFile(ZIPFile); } // Save the zip file uploadedFile.SaveAs(ZIPFile); // Sometimes it uploads the file as zero bytes. // If so log the error and delete the file FileInfo fi = new FileInfo(ZIPFile); if (fi.Length == 0) { ModelState.AddModelError("", String.Format(AppGlobal.Language.GetText("FileUploadFailed", "Error uploading file: {0}"), uploadedFile.FileName)); fi.Delete(); } } } } catch (Exception ex) { // Create an error AddOrReplaceProgressMessage(String.Format(importErrorMessageText, ex.Message), true); } } // No Errors so redirect to index which will show messages if (ModelState.IsValid) { return(RedirectToAction("Index")); } GetViewData(); GetLastUploadDetails(model); return(View(model)); }