Ejemplo n.º 1
0
        public IActionResult AddAlbum(AddAlbumModel model)
        {
            if (ModelState.IsValid)
            {
                int albumId = albumService.AddAlbum(model.Name);
                return(RedirectToAction("Album", "Profile", new { albumId }));
            }
            var             albums    = albumService.GetAll(currentUser.Id);
            AlbumsViewModel modelEdit = new AlbumsViewModel()
            {
                CanEdit       = true,
                Album         = albums.Select(e => mapper.Map <AlbumDomainModel>(e)).ToList(),
                AddAlbumModel = model
            };

            return(View("Albums", modelEdit));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddAlbum(AddAlbumModel model, string returnUrl = null)
        {
            if (string.IsNullOrEmpty(model.Name))              //这里应该是要前端检查的。
            {
                return(View(model));
            }

            if (ModelState.IsValid)
            {
                ViewData["ReturnUrl"] = returnUrl;
                var user = await _userManager.GetUserAsync(User);

                if (user == null)
                {
                    return(View(model));                     //失败,因为用户不存在
                }
                //查看是否有重名Album
                var query = _context.Albums.Where(q => q.BelongerId == user.Id && q.Name == model.Name);
                if (query.Any())
                {
                    return(View(model));                     //有重名,失败
                }

                //创建album

                var album = new UserAlbum()
                {
                    Name = model.Name, BelongerId = user.Id
                };
                _context.Albums.Add(album);
                _context.SaveChanges();

                //为该相册创建目录
                var webRootPath = _hostingEnvironment.WebRootPath;
                var albumPath   = $"{webRootPath}/images/Albums/{album.Id}";
                Directory.CreateDirectory(albumPath);

                album.AlbumPath = $"/images/Albums/{album.Id}";
                _context.SaveChanges();                  //之所以访问两遍数据库时,是因为第一次访问数据库后,album.Id才能确定。
                return(Redirect(returnUrl));
            }

            return(View(model));             //失败
        }