Example #1
0
        public void PerformPost <T>(HttpListenerContext context, PostResource <T> postResource)
        {
            if (_verify != null && !_verify(context.Request))
            {
                WriteError(context.Response, HttpStatusCode.Unauthorized, "Authorization failed");
                return;
            }

            T message;

            try
            {
                message = ReadBody <T>(context.Request);
            }
            catch (ArgumentException e)
            {
                WriteError(context.Response, HttpStatusCode.BadRequest, e.Message);
                return;
            }

            postResource(message);

            context.Response.StatusCode = (int)HttpStatusCode.NoContent;
            context.Response.OutputStream.Close();
        }
Example #2
0
        /// <summary>
        /// Populate the related resource properties.
        /// </summary>
        /// <param name="resource">The list of resources to populate.</param>
        /// <param name="database">The database instance to use when populating.</param>
        internal static PostResource Populate(this PostResource resource, IDatabase database)
        {
            if (resource == null)
            {
                throw new ArgumentNullException(nameof(resource));
            }

            return(Populate(new[] { resource }, database).Single());
        }
        public async Task <IActionResult> CreatePost([FromBody] PostResource postResource)
        {
            var newPost = mapper.Map <PostResource, Post>(postResource);

            newPost.CreatedAt = DateTime.Now;
            context.Posts.Add(newPost);
            await context.SaveChangesAsync();

            var postSaved = mapper.Map <Post, PostResource>(newPost);

            return(Ok(postSaved));
        }
Example #4
0
        public async Task <IActionResult> CreatePost([FromBody] PostResource post)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var mapPost = _iMapper.Map <PostResource, Post>(post);

            _context.Posts.Add(mapPost);
            await _context.SaveChangesAsync();

            return(Ok(mapPost));
        }
Example #5
0
        public async Task <IActionResult> AddPost(int?id, PostResource post, [FromForm] IFormFile file)
        {
            var userId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value;

            if (userId == null)
            {
                return(Unauthorized());
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var target = await repository.GetPost(id);

            if (target != null)
            {
                target.Title       = post.Title;
                target.UserId      = userId;
                target.Content     = post.Content;
                target.CategoryId  = post.CategoryId;
                target.PublishDate = DateTime.Now;
                target.published   = false;
                await unit.Commit();
                await AddPhoto(file, target);

                return(Ok(mapper.Map <Post, PostResource>(target)));
            }
            else
            {
                var createPost = mapper.Map <PostResource, Post>(post);
                createPost.UserId      = userId;
                createPost.PublishDate = DateTime.Now;
                createPost.published   = false;
                await repository.AddPost(createPost);

                await unit.Commit();

                if (file != null)
                {
                    await AddPhoto(file, createPost);
                }
                var result = mapper.Map <Post, PostResource>(createPost);
                return(Ok(result));
            }
        }
Example #6
0
        public async Task <IActionResult> UpdatePost(int id, [FromBody] PostResource post)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var postInDb = await _context.Posts.FindAsync(id);

            if (postInDb == null)
            {
                return(NotFound());
            }

            _iMapper.Map <PostResource, Post>(post, postInDb);
            await _context.SaveChangesAsync();

            return(Ok(postInDb));
        }
        public async Task <IActionResult> UpdatePost(int id, [FromBody] PostResource postResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var post = await context.Posts.Include(p => p.Categories).SingleOrDefaultAsync(p => p.Id == id);

            if (post == null)
            {
                return(NotFound());
            }

            mapper.Map <PostResource, Post>(postResource, post);
            post.UpdatedAt = DateTime.Now;

            await context.SaveChangesAsync();

            var postSaved = mapper.Map <Post, PostResource>(post);

            return(Ok(postSaved));
        }