コード例 #1
0
        public JsonResult UpdateItem(string itemIds)
        {
            int        count      = 1;
            List <int> itemIdList = new List <int>();

            try
            {
                itemIdList = itemIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
                foreach (var itemId in itemIdList)
                {
                    StoryBlocks block = _db.StoryBlocks.Where(x => x.StoryBlocksId == itemId).FirstOrDefault();
                    block.Position = count;
                    if (ModelState.IsValid)
                    {
                        _db.Update(block);
                        _db.SaveChanges();
                        count++;
                    }
                }
                return(Json(true));
            }
            catch
            {
                return(Json(false));
            }
        }
コード例 #2
0
        public ActionResult UpdateItem(string itemIds)
        {
            int        count      = 1;
            List <int> itemIdList = new List <int>();

            itemIdList = itemIds.Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToList();
            foreach (var itemId in itemIdList)
            {
                try
                {
                    StoryBlocks block = _context.StoryBlocks.Where(x => x.StoryBlocksId == itemId).FirstOrDefault();
                    block.Position = count;
                    if (block == null)
                    {
                        _context.StoryBlocks.Add(block);
                    }
                    else
                    {
                        _context.StoryBlocks.Update(block);
                    }
                    _context.SaveChangesAsync();
                }
                catch (Exception)
                {
                    continue;
                }
                count++;
            }
            return(new JsonResult(true));
        }
コード例 #3
0
        public async Task <ActionResult <StoryBlocks> > PostStoryBlock(StoryBlocks storyBlock)
        {
            try
            {
                // Find the block by id
                var blockFromDb = context_.StoryBlocks.SingleOrDefault(c => c.StoryBlocksId == storyBlock.StoryBlocksId);
                if (blockFromDb == null)
                {
                    return(NotFound());
                }

                // Add Block
                var block = new StoryBlocks
                {
                    Name          = storyBlock.Name,
                    Image         = storyBlock.Image,
                    Content       = storyBlock.Content,
                    StoryBlocksId = storyBlock.StoryBlocksId
                };
                context_.StoryBlocks.Add(block);
                context_.SaveChanges();
            }
            catch
            {
                return(BadRequest());
            }
            return(Ok());
            // context_.StoryBlocks.Add(storyBlock);
            // await context_.SaveChangesAsync();

            // return CreatedAtAction(nameof(GetStoryBlock), new { id = storyBlock.StoryBlockId }, storyBlock);
        }
コード例 #4
0
        public async Task <IActionResult> CreatePost(StoryBlocks storyBlock)
        {
            if (ModelState.IsValid)
            {
                {
                    // set its position as the last block
                    var story = _context.Stories.Where(x => x.Id == storyBlock.StoriesId).FirstOrDefault();
                    story.BlockNumber++;
                    storyBlock.Position = story.BlockNumber;

                    _context.StoryBlocks.Add(storyBlock);
                    await _context.SaveChangesAsync();

                    string webRootPath = _hostingEnvironment.WebRootPath;
                    var    files       = HttpContext.Request.Form.Files;
                    var    blockFromDb = _context.StoryBlocks.Find(storyBlock.StoryBlocksId);


                    if (files.Count != 0)
                    {
                        // if image has been uploaded
                        var curPath   = SD.StoryFolder + @"\" + storyBlock.StoriesId;
                        var uploads   = Path.Combine(webRootPath, curPath);
                        var extension = Path.GetExtension(files[0].FileName);
                        if (ImageFormat.Contains(extension))
                        {
                            using (var filestream = new FileStream(Path.Combine(uploads, storyBlock.StoryBlocksId + extension), FileMode.Create))
                            {
                                files[0].CopyTo(filestream);
                            }
                            blockFromDb.Image = @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + extension;
                        }
                        else
                        {
                            uploads = Path.Combine(webRootPath, SD.StoryFolder + @"\" + SD.DefaultStoryImage);
                            System.IO.File.Copy(uploads, webRootPath + @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + ".png");
                            blockFromDb.Image = @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + ".png";
                        }
                    }
                    else
                    {
                        // when no image uploaded by user, use default image
                        var uploads = Path.Combine(webRootPath, SD.StoryFolder + @"\" + SD.DefaultStoryImage);
                        System.IO.File.Copy(uploads, webRootPath + @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + ".png");
                        blockFromDb.Image = @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + ".png";
                    }
                    await _context.SaveChangesAsync();

                    return(RedirectToAction(nameof(Index)));
                }
            }

            return(View(storyBlock));
        }
コード例 #5
0
        public async Task <IActionResult> Edit(long id, StoryBlocks storyBlock)
        {
            try
            {
                string webRootPath = _hostingEnvironment.WebRootPath;
                var    files       = HttpContext.Request.Form.Files;

                var storyFromDb = _context.StoryBlocks.Where(m => m.StoryBlocksId == storyBlock.StoryBlocksId).FirstOrDefault();

                // if user uploads a new image file
                if (files.Count > 0 && files[0] != null)
                {
                    var curPath       = SD.StoryFolder + @"\" + storyBlock.StoriesId;
                    var uploads       = Path.Combine(webRootPath, curPath);
                    var extension_new = Path.GetExtension(files[0].FileName);
                    var extension_old = Path.GetExtension(storyFromDb.Image);

                    // if the extension of the upload file is valid
                    if (ImageFormat.Contains(extension_new))
                    {
                        if (System.IO.File.Exists(Path.Combine(uploads, storyBlock.StoryBlocksId + extension_old)))
                        {
                            System.IO.File.Delete(Path.Combine(uploads, storyBlock.StoryBlocksId + extension_old));
                        }

                        using (var filestream = new FileStream(Path.Combine(uploads, storyBlock.StoryBlocksId + extension_new), FileMode.Create))
                        {
                            files[0].CopyTo(filestream);
                        }
                        storyBlock.Image = @"\" + SD.StoryFolder + @"\" + storyBlock.StoriesId + @"\" + storyBlock.StoryBlocksId + extension_new;
                    }
                }
                // image uploaded by user
                if (storyBlock.Image != null)
                {
                    storyFromDb.Image = storyBlock.Image;
                }

                storyFromDb.Name      = storyBlock.Name;
                storyFromDb.Content   = storyBlock.Content;
                storyFromDb.StoriesId = storyBlock.StoriesId;

                await _context.SaveChangesAsync();


                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View(storyBlock));
            }
        }