public async Task <Blog> AddBlogAsync(BlogCreateRequest obj) { //ValidateAdd(obj); when business logic arises, call method to validate var slug = CreateUniqueSlug(obj.Title); var newblog = mapper.Map <Database.Models.Blog>(obj); newblog.Slug = slug; db.Blogs.Add(newblog); db.SaveChanges(); foreach (var tag in obj.TagList) { var TagObj = db.Tags.Where(x => x.Name == tag).FirstOrDefault(); if (TagObj == default(Database.Models.Tag)) { TagObj = new Database.Models.Tag { Name = tag }; db.Tags.Add(TagObj); db.SaveChanges(); } newblog.BlogsTags.Add(new Database.Models.BlogsTags { Blog = newblog, Tag = TagObj }); } await db.SaveChangesAsync(); return(MapBlogWithTags(newblog)); }
public async Task <ApiResult <string> > Create(BlogCreateRequest request) { var sections = _httpContextAccessor.HttpContext.Session.GetString("Token"); _client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", sections); var json = JsonConvert.SerializeObject(request); MultipartFormDataContent form = new MultipartFormDataContent(); form.Add(new StringContent(request.Content), "Content"); form.Add(new StringContent(request.Title), "Title"); form.Add(new StringContent(request.UserId.ToString()), "UserId"); form.Add(new StringContent(request.CategoryId.ToString()), "CategoryId"); byte[] data; if (request.ThumbnailImage != null) { using (var br = new BinaryReader(request.ThumbnailImage.OpenReadStream())) data = br.ReadBytes((int)request.ThumbnailImage.OpenReadStream().Length); ByteArrayContent bytes = new ByteArrayContent(data); form.Add(bytes, "ThumbnailImage", request.ThumbnailImage.FileName); } var response = await _client.PostAsync($"/api/blogs", form); if (response.IsSuccessStatusCode) { return(JsonConvert.DeserializeObject <ApiResultSuccess <string> >(await response.Content.ReadAsStringAsync())); } return(JsonConvert.DeserializeObject <ApiResultErrors <string> >(await response.Content.ReadAsStringAsync())); }
public async Task <IActionResult> Create([FromForm] BlogCreateRequest request) { if (ModelState.IsValid == false) { return(BadRequest(ModelState)); } var result = await _blogService.Create(request); if (result.IsSuccessed == false) { return(BadRequest(result)); } return(Ok(result)); }
public async Task <ApiResult <bool> > Create(BlogCreateRequest request) { var blog = new Blog() { Title = request.Title, Created_At = DateTime.Now, Content = request.Content, UserId = request.UserId, LikeCount = 0, CategoryId = request.CategoryId }; //Save Image if (request.ThumbnailImage != null) { blog.ImagePath = await this.SaveFile(request.ThumbnailImage); } _context.Blogs.Add(blog); return(await SaveChangeService.SaveChangeAsyncNotImage(_context)); }
public async Task <IActionResult> PostBlog(BlogCreateRequest model) { if (ModelState.IsValid) { model.UserId = new Guid(ViewBag.Id); var result = await _blogService.Create(model); if (result.IsSuccessed == true) { TempData["result"] = "Add Success"; TempData["IsSuccess"] = true; } else { TempData["result"] = result.Message; TempData["IsSuccess"] = false; } return(RedirectToAction("Index", "blog")); } return(View(model)); }
public async Task <IActionResult> UpdateBlogEntry(BlogCreateRequest request) { if (request.UserId != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value) || User.FindFirst(ClaimTypes.Role).Value != "1") { return(Unauthorized()); } User user = await _userRepo.GetUser(request.UserId); if (user == null) { return(Unauthorized()); } try { BlogEntry blog = new BlogEntry() { WriterEntry = request.WriterEntry, Headline = request.Headline, PhotoUrl = request.PhotoUrl, InnerTextHtml = request.innerTextHtml, SubHeadline = request.SubHeadline, Topic = _repo.GetTopics().Result.FirstOrDefault(x => x.Id == request.TopicId), User = user, Id = request.Id }; await _repo.UpdateBlogEntry(blog); return(StatusCode(200)); } catch (System.Exception ex) { Extensions.ReportError(ex); } return(StatusCode(500)); }
public async Task <ActionResult <Blog> > CreateBlog([FromBody] BlogCreateRequest obj) { var result = await blogService.AddBlogAsync(obj); return(CreatedAtAction(nameof(GetBlog), new { slug = result.Slug }, result)); }