Ejemplo n.º 1
0
        public GetPostByIdResponse GetPostById(GetPostByIdRequest request)
        {
            using (var db = new DotWEntities())
            {
                var response = new GetPostByIdResponse();

                response.Post = db.Posts.Select(x =>
                                                new Post
                {
                    Id                 = x.Id,
                    Title              = x.Title,
                    Summary            = x.Summary,
                    Body               = x.Body,
                    EffectDate         = x.EffectDate,
                    NullDate           = x.NullDate,
                    IdWriter           = x.IdWriter,
                    WriterUserName     = x.Users.Name,
                    IdCategory         = x.IdCategory,
                    CategoryTitle      = x.Categories.Title,
                    IsDraft            = x.IsDraft,
                    PrincipalImageName = x.PrincipalImageName,
                    Tags               = db.Tags.Where(t => t.PostId == x.Id).Select(t => t.Tag).ToList()
                }).FirstOrDefault(x => x.Id == request.Id);

                return(response);
            }
        }
Ejemplo n.º 2
0
        public ActionResult <GetPostByIdResponse> Get([FromQuery] string id)
        {
            GetPostByIdRequest request = new GetPostByIdRequest()
            {
                PostId = Guid.Parse(id)
            };

            return(_postService.Get(request));
        }
Ejemplo n.º 3
0
        public async Task <GetPostResponse> GetPostById(GetPostByIdRequest request)
        {
            var postToGet = await DbContext.Posts.Select(post => new GetPostResponse
            {
                Id           = post.Id,
                Title        = post.Title,
                Description  = post.Description,
                ViewsCount   = post.ViewsCount,
                CreationDate = post.CreationDate,
                UpdateDate   = post.UpdateDate,
                Author       = new GetPostResponse.AuthorInfo
                {
                    Id    = post.AuthorId,
                    Email = post.CmsUser.Email
                },
                Categories = post.Categories.Select(c => new GetPostResponse.Category
                {
                    Id   = c.Id,
                    Name = c.Name
                }).ToList(),
                Image = new GetPostResponse.ImageWithTransforms
                {
                    Url             = post.Image.Url,
                    Id              = post.ImageId,
                    ImageTransforms = post.Image.ImageTransforms.Select(transform =>
                                                                        new GetPostResponse.ImageTransformation
                    {
                        Url           = transform.Url,
                        TransformName = transform.TransformName
                    }).ToList()
                },
                Comments = post.Comments.Select(comment => new GetPostResponse.Comment
                {
                    Id     = comment.Id,
                    Author = comment.AuthorId == null
                            ? null
                            : new GetPostResponse.User
                    {
                        Email     = comment.Author.Email,
                        FirstName = comment.Author.FirstName,
                        LastName  = comment.Author.LastName,
                        UserId    = comment.Author.Id
                    },
                    Content = comment.Content,
                    Date    = comment.CreationDate
                }).ToList()
            })
                            .FirstOrDefaultAsync(p => p.Id == request.Id);

            if (postToGet == null)
            {
                throw new EntityNotFoundException <Post>();
            }

            return(postToGet);
        }
Ejemplo n.º 4
0
 public override Task <GetPostByIdResponse> GetPostById(GetPostByIdRequest request, ServerCallContext context)
 {
     try
     {
         var post        = new PostComment.Post();
         var returnValue = post.GetPostById(request.Id);
         var response    = new GetPostByIdResponse {
             Value = (Post)returnValue
         };
         return(Task.FromResult(response));
     }
     catch (Exception ex)
     {
         _logger.LogError(ex, "Error invoking GetPostById");
         throw new RpcException(new Status(StatusCode.Internal, ex.Message));
     }
 }
Ejemplo n.º 5
0
        public override Task <GetPostByIdResponse> GetPostById(GetPostByIdRequest request, ServerCallContext context)
        {
            GetPostByIdResponse output = new GetPostByIdResponse();

            Post post = _context.Posts.Find(request.Id);

            if (post != null)
            {
                output.Id          = request.Id;
                output.Description = post.Description;
                output.Domain      = post.Domain;
                output.Date        = post.Date.ToString();
            }
            else
            {
                output.Id          = request.Id;
                output.Description = null;
                output.Domain      = null;
                output.Date        = null;
            }

            return(Task.FromResult(output));
        }
Ejemplo n.º 6
0
        public GetPostResponse GetPostById(GetPostByIdRequest request)
        {
            GetPostResponse response = new GetPostResponse();

            response.StatusCode = 200;
            response.Errors     = new List <string>();
            var tags        = new List <string>();
            var tagEntities = _tagRepository.GetByPostId(request.PostId);

            foreach (var tag in tagEntities)
            {
                tags.Add(tag.Content);
            }
            var post = _postRepository.GetPostById(request.PostId);

            response.Post = new PostDTO()
            {
                Post           = post,
                Tags           = tags,
                AuthorUsername = _userRepository.GetUserById(post.UserId).Username,
            };
            return(response);
        }
Ejemplo n.º 7
0
 public JsonResult GetId([FromQuery] GetPostByIdRequest request)
 {
     return(Json(_postService.GetPostById(request)));
 }
Ejemplo n.º 8
0
        public async Task <GetPostResponse> GetPostById(GetPostByIdRequest request)
        {
            var post = await ProcessRequest(request, _postsRepository.GetPostById);

            return(post);
        }