private FilterInterestEntity GetSpecialInterestFilter(int id, int userId) { var name = (id == -3 ? "friends" : (id == -2 ? "nearby" : "anonymous ")); var newPostsCount = 0; var allPostCount = 0; if (id == -3) { NewPostsCountByFriends(id, userId, out newPostsCount, out allPostCount); } else if (id == -2) { NewPostsCountByNearby(id, userId, out newPostsCount, out allPostCount); } else if (id == -1) { NewPostsCountByAnonimus(id, userId, out newPostsCount, out allPostCount); } var rt = new FilterInterestEntity { Id = id, Name = name, AddDate = DateTime.Now, IsMain = false, NewPostsNumber = newPostsCount, PostNumber = allPostCount, }; return(rt); }
public FilterInterestEntity GetFilterInterest(int id, int userId) { using (var db = new groubel_dbEntities1()) { var item = db.Interests.FirstOrDefault(i => i.Id == id); if (item == null) { if (id < 0) { return(GetSpecialInterestFilter(id, userId)); } return(null); } var posts = db.PostInterests.Where(i => i.InterestId == id).Select(i => i.PostId).Distinct().ToList(); var date = DateTime.Now.AddDays(-1); var tp = (int)NotificationTypeEnum.PostAddedOnInterest; var newPosts = db.Notifications.Count(i => i.Type == tp && i.ReciverUserId == userId && i.SeenStatus == false && i.AliasId == id); SetSeen(db.Notifications.Where(i => i.Type == tp && i.ReciverUserId == userId && i.SeenStatus == false && i.AliasId == id).ToList()); var rt = new FilterInterestEntity { Id = item.Id, Name = item.Name, AddDate = item.AddDate, IsMain = db.UserInterests.Count(t => t.UserId == userId && t.InterestId == item.Id) > 0, NewPostsNumber = newPosts, PostNumber = posts.Count(), }; return(rt); } }