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)]); }
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()); } }