コード例 #1
0
        public async Task <ActionResult> Create(AddClassTypeViewModel classType)
        {
            if (ModelState.IsValid)
            {
                // Verify that the user selected a file
                if (classType.ImageFile != null && classType.ImageFile.ContentLength > 0)
                {
                    if (classType.ImageFile.ContentLength > 20000000)
                    {
                        ModelState.AddModelError("", "Please ensure image file is less than 2MB");
                        return(RedirectToAction("Create"));
                    }

                    // extract only the filename
                    var fileName = Path.GetFileName(classType.ImageFile.FileName);

                    if (!fileName.Contains(".jpg") && !fileName.Contains(".png"))
                    {
                        ModelState.AddModelError("", "Please ensure file is in JPG or PNG format");
                        return(RedirectToAction("Create"));
                    }

                    if (fileName.Contains(" "))
                    {
                        ModelState.AddModelError("", "Image filename cannot contain spaces or special characters");
                        return(RedirectToAction("Create"));
                    }

                    var filePath = ConfigurationManager.AppSettings["ClassTypeAssetPath"];

                    // store the file inside ~/App_Data/classtype folder
                    var path = Path.Combine(Server.MapPath(filePath), fileName);
                    classType.ImageFile.SaveAs(path);

                    classType.ImageFileName = fileName;
                }

                // have not populated view yet - need to do that and then test

                var isSuccess = await _classTypeService.AddClassType(classType);

                if (isSuccess)
                {
                    return(RedirectToAction("Index"));
                }
            }

            return(View(classType));
        }
コード例 #2
0
        public async Task <bool> AddClassType(AddClassTypeViewModel viewModel)
        {
            var dto = new ClassTypeDto()
            {
                Id            = Guid.NewGuid().ToString(),
                Name          = viewModel.Name,
                ClassColour   = viewModel.ClassColour,
                Difficulty    = viewModel.Difficulty,
                Description   = viewModel.Description,
                ImageFileName = viewModel.ImageFileName
            };

            var result = _classTypeWriter.AddClassType(dto);

            return(await Task.FromResult(result));
        }