public int GetUnreadCommentsCount(int userId)
 {
     using (var db = new BlogContext())
     {
         return GetUnreadCommenstQuery(db, userId).Count();
     }
 }
 public List<Comment> GetUnreadComments(int userId)
 {
     using (var db = new BlogContext())
     {
         return GetUnreadCommenstQuery(db,userId).ToList();
     }
 }
 public void AddArticle(Article article)
 {
     using (var db = new BlogContext())
     {
         db.Articles.Add(article);
         db.SaveChanges();
     }
 }
 public List<Role> GetRoles()
 {
     using (var db = new BlogContext())
     {
         var roles = (from p in db.Roles select p);
         return roles.ToList();
     }
 }
 public Role GetRoleByType(RoleType type)
 {
     using (var db = new BlogContext())
     {
         return (from p in db.Roles
         where p.Type == type
         select p).FirstOrDefault();
     }
 }
 public void MarkAsRead(int commentId)
 {
     using (var db = new BlogContext())
     {
         var comment = db.Comments.Find(commentId);
         comment.Read = true;
         db.SaveChanges();
     }
 }
 public void AddComment(Comment comment)
 {
     using (var db = new BlogContext())
     {
         comment.CreationDate = DateTime.UtcNow;
         db.Comments.Add(comment);
         db.SaveChanges();
     }
 }
 private IQueryable<Comment> GetUnreadCommenstQuery(BlogContext db,int userId)
 {
     return
             from commnet in db.Comments.Include(c => c.Article).Include(x => x.Author)
             where commnet.Article.AuthorId == userId
             where commnet.AuthorId != userId
             where !commnet.ParentId.HasValue
             where !commnet.Read
             select commnet;
 }
 public List<Article> GetArticles(int userId)
 {
     using (var db = new BlogContext())
     {
         var articles = (from a in db.Articles.Include(a => a.Author)
                         where a.AuthorId == userId
                         select a).ToList();
         return articles;
     }
 }
 public List<Comment> GetArticleComments(int articleId)
 {
     using (var db = new BlogContext())
     {
         var query = (from c in db.Comments.Include(x => x.Author)
                     where (c.ArticleId == articleId && c.Parent == null)
                     select c).ToList();
         return query;
     }
 }
Esempio n. 11
0
 public void AddUser(User user)
 {
     using (var db = new BlogContext())
     {
         foreach (Role r in user.Roles)
         {
             db.Roles.Attach(r);
         }
         db.Users.Add(user);
         db.SaveChanges();
     }
 }
 public Article GetArticleById(int id)
 {
     using (var db = new BlogContext())
     {
         var query = (from a in db.Articles.Include(a => a.Author)
                     where a.Id == id
                     select a)
                     .OrderBy(a => a.ModificationdDate)
                     .ThenBy(a => a.CreationDate)
                     .FirstOrDefault();
         return query;
     }
 }
 public Comment RetriveComments(Comment comment)
 {
     using (var db = new BlogContext())
     {
         List<Comment> comments = new List<Comment>();
         var dbComment = db.Comments.Include(x => x.Author).Include(c => c.Comments).Where(c => c.Id == comment.Id).FirstOrDefault();
         foreach (var item in dbComment.Comments)
         {
             comments.Add(RetriveComments(item));
         }
         dbComment.Comments = comments;
         return dbComment;
     }
 }
Esempio n. 14
0
 public int CountAdmin()
 {
     using (var db = new BlogContext())
     {
         var query = (from u in db.Users.Include(r => r.Roles)
                      where u.IsActive == true
                      select u).ToList();
         int count = 0;
         foreach (var u in query)
         {
             foreach (var r in u.Roles)
             {
                 if (r.Type.Equals(RoleType.Administrator))
                     count++;
             }
         }
         return count;
     }
 }
        public List<int> GetArticlesPerMonth(int year)
        {
            using (var db = new BlogContext())
            {

                var allMonths = Enumerable.Range(1, 12);

                var query = db.Articles.Where(a => a.CreationDate.Year == year)
                                        .GroupBy((o => new
                                        {
                                            Month = o.CreationDate.Month,
                                            Year = o.CreationDate.Year
                                        }))
                                        .Select(g => new
                                        {
                                            Month = g.Key.Month,
                                            Year = g.Key.Year,
                                            Total = g.Count()
                                        })
                                        .OrderByDescending(a => a.Year)
                                        .ThenByDescending(a => a.Month)
                                        .ToList();

                var value = (from months in allMonths
                             join date in query on months equals date.Month into d
                             from date in d.DefaultIfEmpty()
                             select new
                             {
                                 Date = months,
                                 Count = (date == null) ? 0 : date.Total
                             })
                                 .OrderBy(a => a.Date)
                                 .ToList().Select(p => p.Count).ToList();

                return value;
            }
        }
Esempio n. 16
0
        public List<Tuple<User, int>> GetMostActiveUsers(DateTime fromDate, DateTime toDate)
        {
            using (var db = new BlogContext())
            {

                var lstArticles = (from u in db.Users.Include("Articles").Include("Comments")
                                   select u).ToList<User>();

                List<Tuple<User, int>> lstMostActive = new List<Tuple<User, int>>();

                foreach (User u in lstArticles)
                {
                    int counter = 0;
                    foreach (var article in u.Articles)
                    {
                        if (article.CreationDate >= fromDate && article.CreationDate <= toDate)
                            counter++;

                    }

                    foreach (var comment in u.Comments)
                    {
                        if (comment.CreationDate >= fromDate && comment.CreationDate <= toDate)
                            counter++;
                    }

                    if (counter > 0)
                    {
                        lstMostActive.Add(new Tuple<User, int>(u, counter));
                    }
                }

                return lstMostActive;

            }
        }
        public List<Article> SearchArticles(string searchText)
        {
            using (var db = new BlogContext())
            {
                var query = (from a in db.Articles.Include(x=>x.Author)
                             where (a.Name.Contains(searchText) || a.Text.Contains(searchText)) && a.Type == ArticleType.Public
                             select a).ToList();

                return query;

            }
        }
 public void ModifyArticle(Article article)
 {
     using (var db = new BlogContext())
     {
         var query = (from a in db.Articles
                      where a.Id == article.Id
                      select a).First();
         query.Layout = article.Layout;
         query.ModificationdDate = DateTime.Now;
         query.Name = article.Name;
         query.PicturePath = article.PicturePath;
         query.Text = article.Text;
         query.Type = article.Type;
         db.SaveChanges();
     }
 }
        public List<Article> GetPublicArticles(int id)
        {
            using (var db = new BlogContext())
            {
                var query = (from a in db.Articles.Include(x => x.Author)
                             where a.AuthorId == id && a.Type == ArticleType.Public
                             select a).OrderBy(y=>y.ModificationdDate).ToList();

                return query;
            }
        }
Esempio n. 20
0
 public User GetUserByUsername(string username)
 {
     using (var db = new BlogContext())
     {
         var query = from u in db.Users.Include(u => u.Roles)
                     where u.IsActive == true && u.Username.Trim() == username.Trim()
                     select u;
         return query.FirstOrDefault();
     }
 }
Esempio n. 21
0
 public User GetUserById(int userId)
 {
     using (var db = new BlogContext())
     {
         var query = from u in db.Users.Include(u => u.Roles)
                     where u.IsActive == true && u.Id == userId
                     select u;
         return query.FirstOrDefault();
     }
 }
Esempio n. 22
0
 public void RemoveUser(User user)
 {
     using (var db = new BlogContext())
     {
         var query = (from u in db.Users
                      where u.IsActive == true && u.Id == user.Id
                      select u).FirstOrDefault<User>();
         query.IsActive = false;
         db.SaveChanges();
     }
 }
Esempio n. 23
0
        public void ModifyUser(User user)
        {
            using (var db = new BlogContext())
            {
                var query = (from u in db.Users.Include(r=>r.Roles)
                             where u.IsActive == true && u.Id == user.Id
                             select u).FirstOrDefault<User>();

                var types = user.Roles.Select(r => r.Type);

                var newRoles = db.Roles
                              .Where(r => types.Contains(r.Type)).ToList();
                query.Email = user.Email;
                query.Name = user.Name;
                query.Surname = user.Surname;
                query.Password = user.Password;
                query.PicturePath = user.PicturePath;
                query.Roles.Clear();
                query.Roles.AddRange(newRoles);
                db.SaveChanges();
            }
        }
Esempio n. 24
0
 public List<User> GetUsers()
 {
     using (var db = new BlogContext())
     {
         var query = from u in db.Users.Include(u => u.Roles)
                     where u.IsActive == true
                     select u;
         return query.ToList<User>();
     }
 }
        public List<Article> GetLatest(int count)
        {
            using (var db = new BlogContext())
            {
                var articles = (from a in db.Articles.Include(a => a.Author)
                                where a.Type == ArticleType.Public
                                select a)
                                .OrderBy(a => a.ModificationdDate)
                                .ThenBy(a => a.CreationDate)
                                .Take(count);

                return articles.ToList();
            }
        }
Esempio n. 26
0
        public void UpdateUserComments(int userId, Comment comment)
        {
            using (var db = new BlogContext())
            {
                db.Comments.Attach(comment);
                var query = (from u in db.Users.Include(u => u.Comments)
                             where u.IsActive == true && u.Id == userId
                             select u).FirstOrDefault<User>();

                query.Comments.Add(comment);
                db.SaveChanges();
            }
        }