public void AddUser(User user, string password) { using var ctx = new QuestionTagsContext(_connectionString); user.HashedPassword = BCrypt.Net.BCrypt.HashPassword(password); ctx.Users.Add(user); ctx.SaveChanges(); }
public bool CanLike(int userId) { using var ctx = new QuestionTagsContext(_connectionString); var like = ctx.Likes.FirstOrDefault(l => l.UserId == userId); return(like == null ? true : false); }
public void AddQuestion(Question q, List <string> tags) { using var ctx = new QuestionTagsContext(_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.Id; } ctx.QuestionsTags.Add(new QuestionTags { QuestionId = q.Id, TagId = tagId }); } }
public int GetLikes(int id) { using var ctx = new QuestionTagsContext(_connectionString); var question = GetQuestionById(id); return(question.Likes.Count); }
public List <Question> GetAllQuestions() { using var ctx = new QuestionTagsContext(_connectionString); List <Question> questions = ctx.Questions.OrderByDescending(q => q.DatePosted).Include(q => q.Likes) .Include(q => q.Answers) .Include(q => q.QuestionTags).ThenInclude(qt => qt.Tag).ToList(); return(questions); }
private int AddTag(string name) { using var ctx = new QuestionTagsContext(_connectionString); var tag = new Tag { Name = name }; ctx.Tags.Add(tag); ctx.SaveChanges(); return(tag.Id); }
public void UpdateLike(int id, User user) { using var ctx = new QuestionTagsContext(_connectionString); var like = new Likes { QuestionId = id, UserId = user.ID }; ctx.Likes.Add(like); ctx.SaveChanges(); }
public Question GetQuestionById(int id) { using var ctx = new QuestionTagsContext(_connectionString); return(ctx.Questions .Include(q => q.Likes) .ThenInclude(l => l.User) .Include(q => q.Answers) .ThenInclude(a => a.User) .Include(q => q.QuestionTags) .ThenInclude(qt => qt.Tag) .Include(q => q.User) .FirstOrDefault(q => q.Id == id)); }
public bool IsEmailAvailable(string email) { using var ctx = new QuestionTagsContext(_connectionString); return(!ctx.Users.Any(u => u.Email == email)); }
public User GetUserByEmail(string email) { using var ctx = new QuestionTagsContext(_connectionString); return(ctx.Users.FirstOrDefault(u => u.Email == email)); }
public void AddAnswer(Answer answer) { using var ctx = new QuestionTagsContext(_connectionString); ctx.Answers.Add(answer); ctx.SaveChanges(); }
public List <Question> GetQuestionsForTag(string name) { using var ctx = new QuestionTagsContext(_connectionString); return(ctx.Questions.Include(q => q.QuestionTags).ThenInclude(qt => qt.Tag) .Where(a => a.QuestionTags.Any((t => t.Tag.Name == name))).ToList()); }
private Tag GetTag(string name) { using var ctx = new QuestionTagsContext(_connectionString); return(ctx.Tags.FirstOrDefault(t => t.Name == name)); }