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
        }
예제 #4
0
        public ActionResult ImportTemplateSpreadsheet(string templateType)
        {
            var model = new ImportTemplateViewModel {
                TemplateType = templateType
            };

            return(View(model));
        }
예제 #5
0
        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
        }