public void ImportTemplateViewModelValidator_Validate_FileHasNoContent_ReturnsNoFileContentError() { #region Arrange var emptyTestFile = new Mock <HttpPostedFileBase>(); var model = new ImportTemplateViewModel { TemplateType = TemplateTypeNames.SORT, SpreadsheetFile = emptyTestFile.Object }; #endregion #region Act var result = _validator.Validate(model); #endregion #region Assert Assert.IsFalse(result.IsValid); Assert.AreEqual(WebResources.NoFileContent, result.Errors[0].ErrorMessage); #endregion }
public void ImportTemplateViewModelValidator_Validate_FileHasContentAndValidContentType_IsValid() { #region Arrange var testFile = new Mock <HttpPostedFileBase>(); testFile.Setup(x => x.ContentLength).Returns(30); testFile.Setup(x => x.ContentType).Returns(@"application/msexcel"); var model = new ImportTemplateViewModel { TemplateType = TemplateTypeNames.SORT, SpreadsheetFile = testFile.Object }; #endregion #region Act var result = _validator.Validate(model); #endregion #region Assert Assert.IsTrue(result.IsValid); #endregion }
public void ImportTemplateViewModelValidator_Validate_FileHasInvalidContentType_ReturnsInvalidContentTypeError() { #region Arrange var testFile = new Mock <HttpPostedFileBase>(); testFile.Setup(x => x.ContentLength).Returns(30); testFile.Setup(x => x.ContentType).Returns(@"application/msword"); var model = new ImportTemplateViewModel { TemplateType = TemplateTypeNames.SLM, SpreadsheetFile = testFile.Object }; #endregion #region Act var result = _validator.Validate(model); #endregion #region Assert Assert.IsFalse(result.IsValid); Assert.AreEqual(WebResources.InvalidContentType, result.Errors[0].ErrorMessage); #endregion }
public ActionResult ImportTemplateSpreadsheet(string templateType) { var model = new ImportTemplateViewModel { TemplateType = templateType }; return(View(model)); }
public ActionResult ImportTemplateSpreadsheet(ImportTemplateViewModel model) { if (ModelState.IsValid) { var folder = SettingsHelper.ImportSpreadsheetFileLocation; // If the folder doesn't exist then create if (!Directory.Exists(folder)) { Directory.CreateDirectory(folder); } var originalFullFileName = model.SpreadsheetFile.FileName; var newFileName = Guid.NewGuid() + Path.GetExtension(originalFullFileName); var newfullFileName = Path.Combine(folder, newFileName); try { // Save the file to the file location, need to do it here rather than in the Process method (below) otherwise we get a file not found exception. model.SpreadsheetFile.SaveAs(newfullFileName); _serviceDecompositionTemplateDataImportProcessor.Execute(newfullFileName, originalFullFileName, model.TemplateType.GetEnumIntFromText <TemplateType>()); // Success redirect back to the Templates return(RedirectToAction("Index")); } catch (Exception ex) { Guid errorGuid; ModelState.AddModelError(key: ModelStateErrorKey, errorMessage: Guid.TryParse(ex.Message, out errorGuid) ? string.Format(WebResources.ErrorMessage, errorGuid) : ex.Message); } finally { // Tidy up the file if it has not been deleted if (System.IO.File.Exists(newfullFileName)) { System.IO.File.Delete(newfullFileName); } } } return(View(model)); }
public void ImportTemplateViewModelValidator_Validate_NoTemplateType_ReturnsNoTemplateTypeSelectedError() { #region Arrange var model = new ImportTemplateViewModel(); #endregion #region Act var result = _validator.Validate(model); #endregion #region Assert Assert.IsFalse(result.IsValid); Assert.AreEqual(WebResources.NoTemplateTypeSelected, result.Errors[0].ErrorMessage); #endregion }