Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        public async Task <ActionResult <Blog> > CreateBlog([FromBody] BlogCreateRequest obj)
        {
            var result = await blogService.AddBlogAsync(obj);

            return(CreatedAtAction(nameof(GetBlog), new { slug = result.Slug }, result));
        }