private static ReturnedPostDto DeserializePost(IRecord record)
        {
            ReturnedPostDto dto = new ReturnedPostDto();

            FlattenPost(record, dto);
            dto.CreatedBy   = ExtractUser(record);
            dto.IsLiked     = (bool)record["IsLiked"];
            dto.Likes       = (int)(long)record["Likes"];
            dto.Referencing = ExtractRefences(record);
            return(dto);
        }
        private static void FlattenPost(IRecord record, ReturnedPostDto dto)
        {
            var dynamicPost = record["Post"];
            var postProps   = (Dictionary <string, object>)dynamicPost.GetType().GetProperty("Properties").GetValue(dynamicPost);

            dto.Content    = (string)postProps[nameof(dto.Content)];
            dto.CreatedOn  = DateTime.Parse((string)postProps[nameof(dto.CreatedOn)]).ToUniversalTime();
            dto.ImgUrl     = postProps.ContainsKey(nameof(dto.ImgUrl)) ? (string)postProps[nameof(dto.ImgUrl)] : null;
            dto.PostId     = (string)postProps[nameof(dto.PostId)];
            dto.Visability = (PostVisabilityOptions)((long)postProps[nameof(dto.Visability)]);
        }
Beispiel #3
0
 public IHttpActionResult GetPosts(string postId)
 {
     try
     {
         var             token  = Request.Headers.GetValues("x-auth-token").First();
         var             userId = _tokenManager.GetUserId(token);
         ReturnedPostDto post   = _postManager.GetPost(userId, postId);
         return(Ok(post));
     }
     catch (Exception e)
     {
         _log.Error(e);
         return(InternalServerError());
     }
 }