public void UploadCustomerFileViewModelValidator_Validate_FileHasInvalidContentType_ReturnsInvalidContentTypeError()
        {
            #region Arrange

            var testFile = new Mock <HttpPostedFileBase>();
            testFile.Setup(x => x.ContentLength).Returns(30);
            testFile.Setup(x => x.ContentType).Returns(@"application/vnd.openxmlformats-officedocument.presentationml.presentation");

            var model = new UploadCustomerFileViewModel
            {
                CustomerFile = 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 void UploadCustomerFileViewModelValidator_Validate_WordFileHasContentAndValidContentType_IsValid()
        {
            #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 UploadCustomerFileViewModel
            {
                EditLevel    = "Level One",
                CustomerFile = testFile.Object
            };

            #endregion

            #region Act

            var result = _validator.Validate(model);

            #endregion

            #region Assert

            Assert.IsTrue(result.IsValid);

            #endregion
        }
        public void UploadCustomerFileViewModelValidator_Validate_FileHasNoContent_ReturnsNoFileContentError()
        {
            #region Arrange

            var emptyTestFile = new Mock <HttpPostedFileBase>();
            emptyTestFile.Setup(x => x.ContentLength).Returns(0);
            emptyTestFile.Setup(x => x.ContentType).Returns(@"application/msword");


            var model = new UploadCustomerFileViewModel
            {
                CustomerFile = 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
        }
Beispiel #4
0
        public ActionResult UploadCustomerFile(string level)
        {
            var vm = new UploadCustomerFileViewModel
            {
                EditLevel    = level,
                Levels       = EnumExtensions.AsSelectListItems <LevelName>(),
                DisplayLevel = string.IsNullOrEmpty(level)
            };

            return(PartialView("_UploadCustomerFile", vm));
        }
Beispiel #5
0
        public ActionResult UploadCustomerFile(UploadCustomerFileViewModel model)
        {
            var result = GetJsonSuccessResponse();

            if (ModelState.IsValid)
            {
                try
                {
                    if (_appUserContext.Current.CurrentCustomer != null)
                    {
                        var userName    = _contextManager.UserManager.Name;
                        var dateTimeNow = DateTime.Now;

                        var diagram = new Model.Diagram
                        {
                            Level        = model.EditLevel.GetEnumIntFromText <LevelName>(),
                            CustomerId   = _appUserContext.Current.CurrentCustomer.Id,
                            Filename     = Path.GetFileName(model.CustomerFile.FileName),
                            DiagramNotes = model.Notes,
                            MimeType     = model.CustomerFile.ContentType,
                            UpdatedDate  = dateTimeNow,
                            UpdatedBy    = userName,
                            InsertedDate = dateTimeNow,
                            InsertedBy   = userName
                        };

                        using (var reader = new BinaryReader(model.CustomerFile.InputStream))
                        {
                            diagram.DiagramData = reader.ReadBytes(model.CustomerFile.ContentLength);
                        }

                        _diagramService.Create(diagram);
                    }
                }
                catch (Exception ex)
                {
                    result = GetJsonErrorResponse(ex.Message);
                    ExceptionPolicy.HandleException(ex, ExceptionPolicies.General);
                }
            }
            else
            {
                _contextManager.ResponseManager.StatusCode = 500;
                return(Json(new DataSourceResult {
                    Errors = ModelState.GetModelStateMesssages().FirstOrDefault()
                }));
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }