vlko.web.Areas.Admin.Controllers.FileBrowserController.Upload C# (CSharp) Method

Upload() private method

private Upload ( System.Web.HttpPostedFileBase file ) : System.Web.Mvc.ActionResult
file System.Web.HttpPostedFileBase
return System.Web.Mvc.ActionResult
        public ActionResult Upload(HttpPostedFileBase file)
        {
            var fileBrowserActions = IoC.Resolve<IFileBrowserCommands>();

            var model = new FileBrowserViewModel
                            {
                                Ident = Request.Form["Ident"]
                            };

            // test content length
            if (file.ContentLength > FileBrowserViewModel.MaxFileSize)
            {
                ModelState.AddModelError<FileBrowserViewModel>(item => item.Ident,
                                                               string.Format(vlko.BlogModule.ModelResources.FileTooBigError, FileBrowserViewModel.MaxFileSize));
            }
            else
            {
                // test if ident specified
                if (string.IsNullOrWhiteSpace(model.Ident))
                {
                    ModelState.AddModelError<FileBrowserViewModel>(item => item.Ident, vlko.BlogModule.ModelResources.FileIdentRequireError);
                }
                else
                {
                    // get new ident based on user ident and uploaded file extension
                    string fileIdent = model.Ident + Path.GetExtension(file.FileName);

                    // check if file exists
                    var existingItem = fileBrowserActions.GetFileInfo(User.Identity.Name, fileIdent);
                    if (existingItem != null)
                    {
                        ModelState.AddModelError<FileBrowserViewModel>(item => item.Ident, string.Format(vlko.BlogModule.ModelResources.FileIdentExistsError, fileIdent));
                    }
                    else
                    {
                        // Save file
                        if (!fileBrowserActions.SaveFile(User.Identity.Name, fileIdent, file.InputStream))
                        {
                            ModelState.AddModelError(string.Empty, vlko.BlogModule.ModelResources.FileUploadFailedError);
                        }
                        else
                        {
                            model.Ident = null;
                        }
                    }
                }
            }

            // load user files
            model.UserFiles = fileBrowserActions.GetAllUserFileInfos(User.Identity.Name);

            // return normal view, for ajax we have iframe technique so normal result is needed
            return View("Index", model);
        }

Usage Example

Ejemplo n.º 1
0
        public void Delete_post_failed()
        {
            // Arrange
            var controller = new FileBrowserController();

            TestControllerBuilder builder = new TestControllerBuilder();
            builder.InitializeController(controller);
            builder.Form["Ident"] = "some_name";
            controller.MockUser("delete_ok");

            // Act
            // Act
            ActionResult createResult = controller.Upload(new HttpPostedFileMock("test.jpg", 40));
            // get first
            var createModel = createResult.AssertViewRendered().WithViewData<FileBrowserViewModel>();
            var item = createModel.UserFiles.First();
            item.Ident += "_not_exists";
            // delete first
            ActionResult result = controller.Delete(item);

            // Assert
            result.AssertViewRendered();

            Assert.IsFalse(controller.ModelState.IsValid);
        }
All Usage Examples Of vlko.web.Areas.Admin.Controllers.FileBrowserController::Upload
FileBrowserController