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(" بلاگی با این تایتل قبلا ثبت شده است")); } }
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("تایتل تکراری است")); } }