Exemplo n.º 1
0
        public async Task <IActionResult> AddBlog(string userId, [FromForm] BlogForCreateUpdateDto blogForCreateDto)
        {
            blogForCreateDto.Title = blogForCreateDto.Title.Trim();

            var blogFromRepo = await _db.BlogRepository
                               .GetAsync(p => p.Title == blogForCreateDto.Title);

            if (blogFromRepo == null)
            {
                blogForCreateDto.Text = _utilities.RemoveHtmlXss(blogForCreateDto.Text);

                var blogForCreate = new Blog()
                {
                    UserId     = userId,
                    Status     = false,
                    IsSelected = false
                };
                var uploadRes = await _uploadService.UploadFileToLocal(
                    blogForCreateDto.File,
                    blogForCreate.Id.ToString(),
                    _env.WebRootPath,
                    $"{Request.Scheme ?? ""}://{Request.Host.Value ?? ""}{Request.PathBase.Value ?? ""}",
                    "Files\\Blog\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "\\" + DateTime.Now.Day
                    );

                if (uploadRes.Status)
                {
                    blogForCreate.PicAddress = uploadRes.Url;

                    var blog = _mapper.Map(blogForCreateDto, blogForCreate);

                    await _db.BlogRepository.InsertAsync(blog);

                    if (await _db.SaveAsync())
                    {
                        var blogForReturn = _mapper.Map <BlogForReturnDto>(blog);

                        return(CreatedAtRoute("GetBlog", new { v = HttpContext.GetRequestedApiVersion().ToString(), id = blog.Id, userId = userId }, blogForReturn));
                    }
                    else
                    {
                        return(BadRequest("خطا در ثبت اطلاعات"));
                    }
                }
                else
                {
                    return(BadRequest(uploadRes.Message));
                }
            }
            {
                return(BadRequest(" بلاگی با این تایتل قبلا ثبت شده است"));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateBlog(string id, string userId, [FromForm] BlogForCreateUpdateDto blogForUpdateDto)
        {
            blogForUpdateDto.Title = blogForUpdateDto.Title.Trim();

            var epFromRepo = await _db.BlogRepository
                             .GetAsync(p => p.Title == blogForUpdateDto.Title && p.Id != id);

            if (epFromRepo == null)
            {
                var blogForUpdate = await _db.BlogRepository.GetByIdAsync(id);

                blogForUpdate.DateModified = DateTime.Now;

                if (_utilities.IsFile(blogForUpdateDto.File))
                {
                    var deleteRes = _uploadService.RemoveFileFromLocal(
                        Path.GetFileName(blogForUpdate.PicAddress),
                        _env.WebRootPath,
                        _utilities.FindLocalPathFromUrl(blogForUpdate.PicAddress).Replace("wwwroot\\", ""));
                    if (deleteRes.Status)
                    {
                        var uploadRes = await _uploadService.UploadFileToLocal(
                            blogForUpdateDto.File,
                            id,
                            _env.WebRootPath,
                            $"{Request.Scheme ?? ""}://{Request.Host.Value ?? ""}{Request.PathBase.Value ?? ""}",
                            "Files\\Blog\\" + DateTime.Now.Year + "\\" + DateTime.Now.Month + "\\" + DateTime.Now.Day
                            );

                        if (uploadRes.Status)
                        {
                            blogForUpdate.PicAddress = uploadRes.Url;

                            var blog = _mapper.Map(blogForUpdateDto, blogForUpdate);
                            blog.DateModified = DateTime.Now;
                            _db.BlogRepository.Update(blog);

                            if (await _db.SaveAsync())
                            {
                                return(NoContent());
                            }
                            else
                            {
                                return(BadRequest("خطا در ویرایش اطلاعات"));
                            }
                        }
                        else
                        {
                            return(BadRequest(uploadRes.Message));
                        }
                    }
                    else
                    {
                        return(BadRequest("خطا در حذف عکس قبلی"));
                    }
                }
                else
                {
                    var blog = _mapper.Map(blogForUpdateDto, blogForUpdate);

                    _db.BlogRepository.Update(blog);

                    if (await _db.SaveAsync())
                    {
                        return(NoContent());
                    }
                    else
                    {
                        return(BadRequest("خطا در ویرایش اطلاعات"));
                    }
                }
            }
            {
                return(BadRequest("تایتل تکراری است"));
            }
        }