public List <PostViewModel> GetAllByEntity(GetPostModel model) { try { var result = (from p in _db.Posts where ( p.EntityId == model.EntityId && p.EntityTypeId == model.EntityTypeId && p.PostedBy == model.UserId) || (p.EntityId == model.UserId && p.EntityTypeId == model.EntityTypeId && p.PostedBy == model.EntityId) select new PostViewModel { PostId = p.PostId, EntityId = p.EntityId, EntityTypeId = p.EntityTypeId, PostedBy = p.PostedBy, PostedOn = p.PostedOn, Text = p.Text, ContentTypeId = p.ContentTypeId, Url = p.Url, LikeCount = _db.PostLikes.Count(x => x.PostId == p.PostId && x.Status), ShareCount = _db.PostShares.Count(x => x.PostId == p.PostId) }).ToList(); return(result); } catch (Exception ex) { JavaScriptSerializer js = new JavaScriptSerializer(); string json = js.Serialize(model); Log.Error("Post - GetAllByEntity - " + json, ex); throw; } }
public async Task <ActionResult> Get(GetPostModel id) { Post model; PostViewModel newModel; try { if (!ModelState.IsValid || string.IsNullOrEmpty(id.Id)) { return(BadRequest()); } var redis = await _redis.GetRedis <Post>(id.Id); if (redis == null) { model = await _redis.SetRedis(await _postContext.GetPost(id.Id), id.Id); if (model == null) { return(NotFound()); } } else { newModel = _mapper.Map <Post, PostViewModel>(redis); newModel.CommentCount = await _postContext.GetCommentCount(id.Id); return(Ok(newModel)); } } catch (Exception e) { _logger.LogError(e.InnerException?.ToString() ?? e.Message); _mailService.SendMail(string.Empty, e.InnerException?.ToString() ?? e.Message, "error"); return(StatusCode(500, "Internal Server Error")); } newModel = _mapper.Map <Post, PostViewModel>(model); newModel.CommentCount = await _postContext.GetCommentCount(id.Id); return(Ok(newModel)); }
public async Task <IActionResult> GetPosts([FromBody] GetPostModel model) { try { if (string.IsNullOrEmpty(model.BlockId)) { return(Json(new { IsSuccess = false, Message = "Block is empty" })); } else { var currentUser = _userRepository.GetByIdAsync(_userAppContext.CurrentUserId); //Check if current user is a resident of this country or this country allows public access var posts = _postService.GetPostsAsync(model.BlockId, model.OffSet); _postService.GetReactionsForPosts(_userAppContext.CurrentUserId, posts); return(Json(new { IsSuccess = true, Posts = posts })); } } catch (Exception e) { return(Json(new { IsSuccess = false, Message = e.Message })); } }
public List <PostViewModel> GetAllByEntity(GetPostModel model) { return(_post.GetAllByEntity(model)); }