public void AddRating(Guid userId, Guid entityId, sbyte rating) { ValidateRating(userId, entityId, rating); using (var ctx = new DB.CodingIdeasEntities()) { ctx.RatedEntities.Add(new DB.RatedEntity() { UserId = userId, EntityId = entityId, Rating = rating }); ctx.SaveChanges(); } }
public void UpdateUser(Guid oldUserId, User @new, UserProperties propertiesToChange) { ValidateUser(@new, propertiesToChange); using (var ctx = new DB.CodingIdeasEntities()) { if (ctx.Users.Where(x => x.Username == @new.Username && x.Password == @new.Password).Count() != 0) { throw new InvalidCredentialsException(); } var r = ctx.Users.Include(x => x.UserSkills).Where(x => x.Id == oldUserId).FirstOrDefault(); if (r == null) { throw new UserNotFoundException(); } if (propertiesToChange.HasFlag(UserProperties.DateOfBirth)) { r.DOB = @new.DateOfBirth; } if (propertiesToChange.HasFlag(UserProperties.Email)) { r.Email = @new.Email; } if (propertiesToChange.HasFlag(UserProperties.FirstName)) { r.FirstName = @new.FirstName; } if (propertiesToChange.HasFlag(UserProperties.LastName)) { r.LastName = @new.LastName; } if (propertiesToChange.HasFlag(UserProperties.Password)) { r.Password = @new.Password; } if (propertiesToChange.HasFlag(UserProperties.Username)) { r.Username = @new.Username; } if (propertiesToChange.HasFlag(UserProperties.Skills)) { r.UserSkills.Clear(); foreach (var s in @new.Skills) { r.UserSkills.Add(new DB.UserSkill() { ProgrammingLanguageId = s.ProgrammingLanguage.Id, Proficiency = s.Proficiency, UserId = r.Id }); } } ctx.SaveChanges(); } }
public void RemoveComment(Guid commentId) { using (var ctx = new DB.CodingIdeasEntities()) { var entity = ctx.RatableEntities.Where(x => x.Id == commentId).FirstOrDefault(); if (entity == null) { throw new CommentNotFoundException(); } ctx.RatableEntities.Remove(entity); ctx.SaveChanges(); } }
public void RemoveUser(Guid userId) { using (var ctx = new DB.CodingIdeasEntities()) { var user = ctx.Users.Where(x => x.Id == userId).FirstOrDefault(); if (user == null) { throw new UserNotFoundException(); } ctx.Users.Remove(user); ctx.SaveChanges(); } }
public void RemoveProgrammingLanguage(Guid languageId) { using (var ctx = new DB.CodingIdeasEntities()) { var lang = ctx.ProgrammingLanguages.Where(x => x.Id == languageId).FirstOrDefault(); if (lang == null) { throw new ProgrammingLanguageNotFoundException(); } ctx.ProgrammingLanguages.Remove(lang); ctx.SaveChanges(); } }
public void UpdateRating(Guid userId, Guid entityId, sbyte newRating) { ValidateRating(userId, entityId, newRating); using (var ctx = new DB.CodingIdeasEntities()) { var r = ctx.RatedEntities.Where(x => x.UserId == userId && x.EntityId == entityId).FirstOrDefault(); if (r == null) { throw new RatingNotFoundException(); } r.Rating = newRating; ctx.SaveChanges(); } }
public void AddSkill(Guid userId, Guid languageId, byte proficiency) { ValidateSkill(userId, languageId, proficiency); using (var ctx = new DB.CodingIdeasEntities()) { ctx.UserSkills.Add(new DB.UserSkill() { UserId = userId, ProgrammingLanguageId = languageId, Proficiency = proficiency }); ctx.SaveChanges(); } }
public void UpdateSkill(Guid userId, Guid languageId, byte proficiency) { ValidateSkill(userId, languageId, proficiency); using (var ctx = new DB.CodingIdeasEntities()) { var s = ctx.UserSkills.Where(x => x.UserId == userId && x.ProgrammingLanguageId == languageId).FirstOrDefault(); if (s == null) { throw new UserSkillNotFoundException(); } s.Proficiency = proficiency; ctx.SaveChanges(); } }
public void AddProgrammingLanguage(ProgrammingLanguage language) { ValidateProgrammingLanguage(language, ProgrammingLanguageProperties.All); var langModel = new DB.ProgrammingLanguage() { Id = language.Id, Name = language.Name }; using (var ctx = new DB.CodingIdeasEntities()) { ctx.ProgrammingLanguages.Add(langModel); ctx.SaveChanges(); } }
public void UpdateProgrammingLanguage(Guid oldLanguageId, string newName) { ValidateProgrammingLanguage(new ProgrammingLanguage() { Name = newName }, ProgrammingLanguageProperties.All); using (var ctx = new DB.CodingIdeasEntities()) { var l = ctx.ProgrammingLanguages.Where(x => x.Id == oldLanguageId).FirstOrDefault(); if (l == null) { throw new ProgrammingLanguageNotFoundException(); } l.Name = newName; ctx.SaveChanges(); } }
public void UpdateComment(Guid oldCommentId, string newContent) { ValidateComment(new Comment() { Content = newContent }, CommentProperties.Content); using (var ctx = new DB.CodingIdeasEntities()) { var c = ctx.Comments.Where(x => x.Id == oldCommentId).FirstOrDefault(); if (c == null) { throw new CommentNotFoundException(); } c.Content = newContent; ctx.SaveChanges(); } }
public void RemovePost(Guid postId) { using (var ctx = new DB.CodingIdeasEntities()) { var post = ctx.Posts.Include(x => x.Comments).Where(x => x.Id == postId).FirstOrDefault(); if (post == null) { throw new PostNotFoundException(); } foreach (var c in post.Comments.ToList()) { ctx.Comments.Remove(c); } ctx.Posts.Remove(post); ctx.SaveChanges(); } }
public void Unsave(Guid userId, Guid postId) { using (var ctx = new DB.CodingIdeasEntities()) { var user = ctx.Users.Include(x => x.SavedPosts).Where(x => x.Id == userId).FirstOrDefault(); if (user == null) { throw new UserNotFoundException(); } var savedPost = user.SavedPosts.Where(x => x.Id == postId).FirstOrDefault(); if (savedPost == null) { throw new SavedPostNotFoundException(); } user.SavedPosts.Remove(savedPost); ctx.SaveChanges(); } }
public void Save(Guid userId, Guid postToSaveId) { ValidateSavePost(userId, postToSaveId); using (var ctx = new DB.CodingIdeasEntities()) { var post = ctx.Posts.Where(x => x.Id == postToSaveId).FirstOrDefault(); var user = ctx.Users.Where(x => x.Id == userId).FirstOrDefault(); if (user == null) { throw new UserNotFoundException(); } if (post == null) { throw new SavedPostNotFoundException(); } user.SavedPosts.Add(post); ctx.SaveChanges(); } }
public void RemoveSkill(Guid userId, Guid languageId) { using (var ctx = new DB.CodingIdeasEntities()) { if (ctx.Users.Where(x => x.Id == userId).FirstOrDefault() == null) { throw new UserNotFoundException(); } if (ctx.ProgrammingLanguages.Where(x => x.Id == languageId).FirstOrDefault() == null) { throw new ProgrammingLanguageNotFoundException(); } var skill = ctx.UserSkills.Where(x => x.UserId == userId && x.ProgrammingLanguageId == languageId).FirstOrDefault(); if (skill == null) { throw new UserSkillNotFoundException(); } ctx.UserSkills.Remove(skill); ctx.SaveChanges(); } }
public void UpdatePost(Guid oldPostId, Post @new, PostProperties propertiesToChange) { ValidatePost(@new, propertiesToChange); using (var ctx = new DB.CodingIdeasEntities()) { var p = ctx.Posts.Where(x => x.Id == oldPostId).FirstOrDefault(); if (p == null) { throw new PostNotFoundException(); } if (propertiesToChange.HasFlag(PostProperties.Content)) { p.Content = @new.Content; } if (propertiesToChange.HasFlag(PostProperties.Title)) { p.Title = @new.Title; } ctx.SaveChanges(); } }
public void RemoveRating(Guid userId, Guid entityId) { using (var ctx = new DB.CodingIdeasEntities()) { if (ctx.Users.Where(x => x.Id == userId).FirstOrDefault() == null) { throw new UserNotFoundException(); } if (ctx.RatableEntities.Where(x => x.Id == entityId).FirstOrDefault() == null) { throw new RatableEntityNotFoundException(); } var rating = ctx.RatedEntities.Where(x => x.EntityId == entityId && x.UserId == userId).FirstOrDefault(); if (rating == null) { throw new RatingNotFoundException(); } ctx.RatedEntities.Remove(rating); ctx.SaveChanges(); } }
public void AddUser(User user) { ValidateUser(user, UserProperties.All); using (var ctx = new DB.CodingIdeasEntities()) { if (ctx.Users.Where(x => x.Username == user.Username && x.Password == user.Password).Count() != 0) { throw new InvalidCredentialsException(); } ctx.Users.Add(new DB.User() { Id = user.Id, DOB = user.DateOfBirth, Email = user.Email, FirstName = user.FirstName, LastName = user.LastName, Password = user.Password, Username = user.Username }); ctx.SaveChanges(); } }
public void AddComment(Comment comment) { ValidateComment(comment, CommentProperties.All); var commentModel = new DB.Comment() { Id = comment.Id, Content = comment.Content, PostId = comment.PostId, }; var ratableEntityModel = new DB.RatableEntity() { Id = comment.Id, PublishDate = comment.PublishDate, UserId = comment.AuthorId }; using (var ctx = new DB.CodingIdeasEntities()) { ctx.RatableEntities.Add(ratableEntityModel); ctx.Comments.Add(commentModel); ctx.SaveChanges(); } }
public void AddPost(Post post) { ValidatePost(post, PostProperties.All); var postModel = new DB.Post() { Id = post.Id, Content = post.Content, Title = post.Title }; var ratableEntityModel = new DB.RatableEntity() { Id = post.Id, UserId = post.AuthorId, PublishDate = post.PublishDate }; using (var ctx = new DB.CodingIdeasEntities()) { ctx.RatableEntities.Add(ratableEntityModel); ctx.Posts.Add(postModel); ctx.SaveChanges(); } }