Example #1
0
        public void AddQuestion(Question question, List <string> tags)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            ctx.Questions.Add(question);
            ctx.SaveChanges();

            foreach (string tag in tags)
            {
                Tag t = GetTag(tag);
                int tagId;
                if (t == null)
                {
                    tagId = AddTag(tag);
                }
                else
                {
                    tagId = t.Id;
                }

                ctx.QuestionsTags.Add(new QuestionsTags
                {
                    QuestionId = question.Id,
                    TagId      = tagId
                });
            }
            ctx.SaveChanges();
        }
Example #2
0
        public void AddAnswer(Answer answer)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            ctx.Answers.Add(answer);
            ctx.SaveChanges();
        }
Example #3
0
        public void AddLikes(Likes like)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            ctx.Likes.Add(like);
            ctx.SaveChanges();
        }
Example #4
0
        public void AddUser(User user, string password)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            user.HashPassword = BCrypt.Net.BCrypt.HashPassword(password);
            ctx.Users.Add(user);
            ctx.SaveChanges();
        }
Example #5
0
        public bool CanLike(int questionId, int userId)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(!ctx.Likes.Contains(new Likes()
            {
                UserId = userId,
                QuestionId = questionId,
            }));;
        }
Example #6
0
        public int AddTag(string name)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            ctx.Tags.Add(new Tag
            {
                Name = name
            });
            ctx.SaveChanges();
            return(ctx.Tags.FirstOrDefault(t => t.Name == name).Id);
        }
Example #7
0
        public List <Question> GetQuestions()
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Questions
                   .Include(q => q.Likes)
                   .Include(q => q.Answers)
                   .Include(q => q.QuestionsTags)
                   .ThenInclude(qt => qt.Tag)
                   .OrderByDescending(q => q.DatePosted)
                   .ToList());
        }
Example #8
0
        public Question GetQuestionById(int id)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Questions
                   .Include(q => q.Likes)
                   .ThenInclude(l => l.Question)
                   .Include(q => q.Answers)
                   .ThenInclude(a => a.User)
                   .Include(q => q.QuestionsTags)
                   .ThenInclude(qt => qt.Tag)
                   .FirstOrDefault(q => q.Id == id));
        }
Example #9
0
        public Tag GetTag(string name)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Tags.FirstOrDefault(t => t.Name == name));
        }
Example #10
0
        public int GetLikes(int questionId)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Likes.Where(l => l.QuestionId == questionId).Count());
        }
Example #11
0
        public string GetUserNameById(int id)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Users.Where(u => u.Id == id).Select(u => u.Name).FirstOrDefault());
        }
Example #12
0
        public User GetByEmail(string email)
        {
            var ctx = new QuestionsTagsContext(_connectionString);

            return(ctx.Users.FirstOrDefault(u => u.Email == email));
        }