public void AddLike(Likes like) { var ctx = new QuestionsDbContext(_connectionString); ctx.Likes.Add(like); ctx.SaveChanges(); }
public void AddQuestion(Question q, List <string> tags) { using var ctx = new QuestionsDbContext(_connectionString); ctx.Questions.Add(q); ctx.SaveChanges(); foreach (string tag in tags) { Tag t = GetTag(tag); int tagId; if (t == null) { tagId = AddTag(tag); } else { tagId = t.TagId; } ctx.QuestionsTags.Add(new QuestionsTags { QuestionId = q.Id, TagId = tagId }); } ctx.SaveChanges(); }
public List <Question> GetQuestions() { using var ctx = new QuestionsDbContext(_connectionString); return(ctx.Questions.Include(q => q.Answers) .Include(q => q.Likes) .Include(q => q.QuestionsTags) .ThenInclude(qt => qt.Tag) .ToList()); }
public Question GetQuestion(int id) { using var ctx = new QuestionsDbContext(_connectionString); return(ctx.Questions.Include(q => q.Answers) .ThenInclude(a => a.User) .Include(q => q.Likes) .Include(q => q.QuestionsTags) .ThenInclude(qt => qt.Tag) .FirstOrDefault(q => q.Id == id)); }
private int AddTag(string name) { using var ctx = new QuestionsDbContext(_connectionString); var tag = new Tag { TagName = name }; ctx.Tags.Add(tag); ctx.SaveChanges(); return(tag.TagId); }
public void AddUser(string name, string email, string password) { string passwordHash = BCrypt.Net.BCrypt.HashPassword(password); using var ctx = new QuestionsDbContext(_connectionString); var user = new User { Name = name, Email = email, PasswordHash = passwordHash }; ctx.Users.Add(user); ctx.SaveChanges(); }
public User GetByEmail(string email) { using var ctx = new QuestionsDbContext(_connectionString); return(ctx.Users.FirstOrDefault(u => u.Email == email)); }
public void AddAnswer(Answer a) { using var ctx = new QuestionsDbContext(_connectionString); ctx.Answers.Add(a); ctx.SaveChanges(); }
public string GetUserNameById(int id) { var ctx = new QuestionsDbContext(_connectionString); return(ctx.Users.Where(u => u.Id == id).Select(u => u.Name).FirstOrDefault()); }
private Tag GetTag(string name) { using var ctx = new QuestionsDbContext(_connectionString); return(ctx.Tags.FirstOrDefault(t => t.TagName == name)); }
public bool CanLike(int questionId, int userId) { var ctx = new QuestionsDbContext(_connectionString); return(!ctx.Likes.Any(l => l.UserId == userId && l.QuestionId == questionId)); }
public int GetLikes(int questionId) { var ctx = new QuestionsDbContext(_connectionString); return(ctx.Likes.Where(l => l.QuestionId == questionId).Count()); }