public IActionResult FileLoad(FileLoadViewModel lvm) { FarmData fd; if (lvm.unsavedData) { ModelState.Clear(); lvm.unsavedData = false; return(View(lvm)); } string fileContents = ""; if (Request.Form.Files.Count > 0) { if (Request.Form.Files.Count > 1) { ModelState.AddModelError("", "Only one file may be selected."); } else { try { foreach (var file in Request.Form.Files) { var fileBytes = new byte[file.Length]; file.OpenReadStream().Read(fileBytes, 0, (int)file.Length); fileContents = System.Text.Encoding.Default.GetString(fileBytes); } try { fd = JsonConvert.DeserializeObject <FarmData>(fileContents); } catch (Exception ex) { ModelState.AddModelError("", "File does not appear to be a valid NMP data file."); return(View(lvm)); } // Returns message that successfully uploaded _ud.SaveFarmData(fd); HttpContext.Session.SetObject("Farm", _ud.FarmDetails().farmName + " " + _ud.FarmDetails().year); string url = Url.Action("Farm", "Farm"); return(Json(new { success = true, url = url })); } catch (Exception ex) { return(Json("Error occurred. Error details: " + ex.Message)); } } } else { ModelState.AddModelError("", "A file has not been selected."); } return(View(lvm)); }
public IActionResult FileLoad() { FileLoadViewModel lvm = new FileLoadViewModel(); lvm.warningMsg = _sd.GetUserPrompt("fileoverwritewarning"); FarmData farmData = _ud.FarmData(); if (farmData != null && farmData.unsaved) { lvm.unsavedData = true; } return(View(lvm)); }
public FileViewModelTest() { sut = new FileLoadViewModel(fileDlg.Object, startUp.Object, modelFact.Object, r => new RootViewModel(r), nav.Object); }