コード例 #1
0
        public int Execute(CreatePostImageDto request)
        {
            if (_context.PostImages.Any(r => r.ImageName.Contains(request.ImageName)))
            {
                throw new EntityAlreadyExistsException("This image ");
            }


            _context.PostImages.Add(new PostImage
            {
                ImageName  = request.ImageName,
                ModifiedOn = null,
                IsDeleted  = false
            });



            _context.SaveChanges();

            var currentImage = _context.PostImages.Where(c => c.ImageName == request.ImageName).First();


            int id = currentImage.Id;


            return(id);
        }
コード例 #2
0
        public ActionResult Edit(int id, [FromForm] PostDto dto)
        {
            dto.Id = id;
            var imgId = _getImage.Execute(id);

            var ext = Path.GetExtension(dto.PostImage.FileName);

            if (!ImageFormatCheck.AllowedExtensions.Contains(ext))
            {
                return(UnprocessableEntity("Image extension is not allowed."));
            }

            try
            {
                var newFileName = Guid.NewGuid().ToString() + "_" + dto.PostImage.FileName;

                var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "PostImages", newFileName);

                dto.PostImage.CopyTo(new FileStream(filePath, FileMode.Create));

                var image = new CreatePostImageDto
                {
                    ImageName = newFileName,
                    Id        = imgId
                };


                try
                {
                    _editImage.Execute(image);
                }
                catch (EntityAlreadyExistsException e) { TempData["Error"] = e.Message; }
                catch (Exception e) { TempData["Error"] = e.Message; }



                var post = new CreatePostDto
                {
                    Id          = dto.Id,
                    Description = dto.Description,
                    Rating      = dto.Rating,
                    Title       = dto.Title
                };


                _editPost.Execute(post);
                return(RedirectToAction(nameof(Index)));
            }
            catch (EntityNotFoundException e) { TempData["Error"] = e.Message; }
            catch (Exception e) { TempData["Error"] = e.Message; }
            return(View());
        }
コード例 #3
0
        public ActionResult <CreatePostDto> Post([FromForm] PostDto dto)
        {
            var ext = Path.GetExtension(dto.PostImage.FileName);

            if (!ImageFormatCheck.AllowedExtensions.Contains(ext))
            {
                return(UnprocessableEntity("Image extension is not allowed."));
            }

            try
            {
                var newFileName = Guid.NewGuid().ToString() + "_" + dto.PostImage.FileName;

                var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "PostImages", newFileName);

                dto.PostImage.CopyTo(new FileStream(filePath, FileMode.Create));

                var image = new CreatePostImageDto
                {
                    ImageName = newFileName
                };


                try
                {
                    this.imageId = _image.Execute(image);
                }
                catch (EntityAlreadyExistsException e) { return(UnprocessableEntity(e.Message)); }
                catch (Exception e) { return(StatusCode(500, e.Message)); }



                var post = new CreatePostDto
                {
                    Description = dto.Description,
                    Rating      = dto.Rating,
                    Title       = dto.Title,
                    UserId      = dto.UserId,
                    PostImageId = this.imageId
                };


                _postCreate.Execute(post);
                return(StatusCode(201));
            }
            catch (EntityAlreadyExistsException e) { return(UnprocessableEntity(e.Message)); }
            catch (Exception e) { return(StatusCode(500, e.Message)); }
        }
コード例 #4
0
        public void Execute(CreatePostImageDto request)
        {
            var image = _context.PostImages.Find(request.Id);

            if (image == null)
            {
                throw new EntityNotFoundException("Post image");
            }


            image.ImageName  = request.ImageName;
            image.ModifiedOn = DateTime.Now;



            _context.SaveChanges();
        }