Пример #1
0
 public async Task <long> CreateNewAsync(BlogCreateDto newBlog)
 {
     try
     {
         return(await _blogDalFacade.InsertAndGetIdAsync(newBlog));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Пример #2
0
 public async Task <bool> UpdateAsync(BlogCreateDto entity)
 {
     try
     {
         return(await _blogDalFacade.UpdateAsync(entity));
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
        public async Task <ActionResult> Create([FromForm] BlogCreateDto blogCreateDto)
        {
            var mapperBlog = _mapper.Map <Blog>(blogCreateDto);

            string folderName = Path.Combine("images", "blog");
            string fileName   = await blogCreateDto.Photo.SaveImg(_env.WebRootPath, folderName);

            mapperBlog.PhotoUrl = fileName;
            await _blogRepository.CreateBlogAsync(mapperBlog);

            return(Ok(mapperBlog));
        }
Пример #4
0
        public async Task CreateAsync(BlogCreateDto blogCreateDto)
        {
            Blog newBlog = _mapper.Map <Blog>(blogCreateDto);

            newBlog.Image = Guid.NewGuid().ToString() + newBlog.Photo.FileName;
            string     path       = Path.Combine(_env.WebRootPath, "blogImages");
            string     resultPath = Path.Combine(path, newBlog.Image);
            FileStream fileStream = new FileStream(resultPath, FileMode.Create);
            await newBlog.Photo.CopyToAsync(fileStream);

            await _context.Blogs.AddAsync(newBlog);

            await _context.SaveChangesAsync();
        }
Пример #5
0
        public async Task <long> InsertAndGetIdAsync(BlogCreateDto entity)
        {
            try
            {
                var newEntity = _mapper.Map <BlogEntity>(entity);
                _context.Blogs.Add(newEntity);
                await _context.SaveChangesAsync();

                return(newEntity.Id);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #6
0
        public async Task <bool> UpdateAsync(BlogCreateDto entity)
        {
            try
            {
                var storage = await _context.Blogs.Where(x => x.Id == entity.Id).FirstOrDefaultAsync();

                if (storage == null)
                {
                    throw new Exception("Not found");
                }

                storage = _mapper.Map <BlogEntity>(storage);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Пример #7
0
        public async Task <ActionResult> Post([FromForm] BlogCreateDto blogCreateDto)
        {
            if (!blogCreateDto.Photo.ContentType.Contains("image/"))
            {
                return(BadRequest("Please Select Image Type"));
            }

            if (blogCreateDto.Photo.Length / 1024 > 500)
            {
                return(BadRequest("Image Max Size be 200 KB"));
            }


            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            await _blogRepo.CreateAsync(blogCreateDto);

            return(NoContent());
        }
Пример #8
0
        public async Task <ActionResult <string> > CreateBlog([FromForm] BlogCreateDto blog)
        {
            var user = await GetCurrentUserAsync(HttpContext.User);

            if (user == null)
            {
                return(Unauthorized(new ApiResponse(401)));
            }

            try
            {
                //check id category existing, example: Convert string "[1, 2, 3]" to int list
                List <int> _categoriesIds = blog.Categories.Trim('[', ']').Split(',').Select(int.Parse).ToList();
                foreach (var id in _categoriesIds)
                {
                    var category = await _context.BlogCategory.FindAsync(id);

                    if (category == null)
                    {
                        return(NotFound(new ApiResponse(404, "Category Id:" + id + ", Not exist!")));
                    }
                }

                var newBlog = _mapper.Map <BlogCreateDto, Blog>(blog);
                newBlog.UserId        = user.Id;
                newBlog.AddedDateTime = DateTime.Now;

                await _context.Blog.AddAsync(newBlog);

                await _context.SaveChangesAsync();

                // Add Categories
                foreach (var id in _categoriesIds)
                {
                    var newCat = new BlogCategoryList
                    {
                        BlogId         = newBlog.Id,
                        BlogCategoryId = id
                    };
                    await _context.BlogCategoryList.AddAsync(newCat);
                }
                await _context.SaveChangesAsync();

                var defaultImage = true;
                if (blog.Files.Count > 0)
                {
                    foreach (var img in blog.Files)
                    {
                        if (img != null && img.Length > 0)
                        {
                            // this path webHostEnvironment.WebRootPath is under wwwroot folder
                            string filePath = Path.Combine(_webHostEnvironment.WebRootPath + BLOG_IMAGE_DIRECTORY);
                            if (!Directory.Exists(filePath))
                            {
                                Directory.CreateDirectory(filePath);
                            }

                            string fileName = (Guid.NewGuid().ToString().Substring(0, 8)) + "_" + img.FileName;
                            filePath = Path.Combine(filePath, fileName);

                            using (FileStream fileStream = System.IO.File.Create(filePath))
                            {
                                img.CopyTo(fileStream);
                                fileStream.Flush();

                                var upload = new Upload
                                {
                                    Name          = fileName,
                                    Path          = BLOG_IMAGE_DIRECTORY + fileName,
                                    AddedDateTime = DateTime.Now,
                                    UserId        = user.Id
                                };
                                await _context.Upload.AddAsync(upload);

                                await _context.SaveChangesAsync();

                                var imgBlog = new UploadBlogImagesList
                                {
                                    UploadId     = upload.Id,
                                    BlogId       = newBlog.Id,
                                    UploadTypeId = 3,
                                    Default      = defaultImage
                                };
                                // to set the first image as a default image
                                defaultImage = false;

                                await _context.UploadBlogImagesList.AddAsync(imgBlog);

                                await _context.SaveChangesAsync();
                            }
                        }
                    }
                    return(Ok(new ApiResponse(201))); // Successfully Add Blog, Uploaded Image successfully.");
                }
                return(Ok("Add Blog successfully, but No File to Upload it!"));
            }
            catch (Exception ex)
            {
                return(BadRequest(new ApiResponse(400, $"Error: {ex.Message}", true,
                                                  "somthin wrong! in BlogCreate Action!", 1,
                                                  new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileName(),/* Get File Name */
                                                  (new System.Diagnostics.StackFrame(0, true)).GetFileLineNumber())));
            }
        }
Пример #9
0
        public async Task <IActionResult> EditPost([FromBody] BlogCreateDto newPost)
        {
            var result = await _blogService.UpdateAsync(newPost);

            return(Json(result));
        }
Пример #10
0
        public async Task <IActionResult> CreateNewBlog([FromBody] BlogCreateDto newBlog)
        {
            var result = await _blogService.CreateNewAsync(newBlog);

            return(Json(result));
        }