protected static User GetUser(int userId, CoolBlogEntity context) { var user = context.Users.FirstOrDefault(u => u.Id == userId); if (user == null) { throw new ServerErrorException("Invalid user", "ERR_INV_USR"); } return user; }
public Comment CreateComment(int postId, string sessionKey, CoolBlogEntity context) { var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); var post = context.Posts.Find(postId); if (user == null || post == null) { throw new ArgumentNullException("User or post is not found!"); } return new Comment() { User = user, Post = post, PostId = postId, CreatorId = user.Id, CommentContent = this.Text, CreationDate = DateTime.Now }; }
public HttpResponseMessage PostAPost(PostCreateModel model, string sessionKey) { var responseMsg = this.PerformOperation(() => { if (model.Title == null || model.Title.Length == 0) { throw new ArgumentException("You must have post title!"); } if (model.PostContent == null || model.PostContent.Length == 0) { throw new ArgumentException("You must have post content!"); } var context = new CoolBlogEntity(); var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (user==null) { throw new InvalidOperationException("No user with this sessionKey"); } Post post = new Post() { Title = model.Title, PostContent = model.PostContent, CreationDare=model.CreationDate, User=user, Tags = PostDataPersister.GetPostTitleWords(model.Title).ToList(), Approved = true }; context.Posts.Add(post); context.SaveChanges(); model.Id = post.Id; return model; }); return responseMsg; }
public static void CreateUser(UserRegisterModel user) { ValidateUsername(user.Username); ValidateNickname(user.Nickname); ValidateAuthKey(user.AuthKey); using (CoolBlogEntity context = new CoolBlogEntity()) { var usernameToLower = user.Username.ToLower(); var nicknameToLower = user.Nickname.ToLower(); var dbUser = context.Users.FirstOrDefault(u => u.Username == usernameToLower || u.Nickname.ToLower() == nicknameToLower); if (dbUser != null) { if (dbUser.Username.ToLower() == usernameToLower) { throw new ServerErrorException("Username already exists", "ERR_DUP_USR"); } else { throw new ServerErrorException("Nickname already exists", "ERR_DUP_NICK"); } } dbUser = new User() { Username = usernameToLower, Nickname = user.Nickname, AuthKey = user.AuthKey, Gender = user.Gender, Email = user.Email, RankId = user.RankId }; context.Users.Add(dbUser); context.SaveChanges(); } }
public HttpResponseMessage PromoteUser(int userId,string sessionKey) { var responseMsg = this.PerformOperation(() => { var context = new CoolBlogEntity(); var admin = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (admin == null) { throw new ArgumentNullException("There is no user with this sessionKey loged!"); } if (admin.RankId != 2) { throw new InvalidOperationException("This User Is Not Admin!"); } var user = context.Users.FirstOrDefault(u => u.Id == userId); user.RankId = 2; context.SaveChanges(); }); return responseMsg; }
public HttpResponseMessage PostAComment(CommentInitModel model, int id, string sessionKey) { var responseMsg = this.PerformOperation(() => { var context = new CoolBlogEntity(); using (context) { var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (user == null) { throw new InvalidOperationException("No user with this sessionKey"); } Comment comment = model.CreateComment(id, sessionKey, context); context.Comments.Add(comment); context.SaveChanges(); return model; } }); return responseMsg; }
public static UserExtendedModel GetUser(int id) { var context = new CoolBlogEntity(); var user = context.Users.FirstOrDefault(u => u.Id == id); UserExtendedModel extUser = new UserExtendedModel() { Nickname = user.Nickname, Gender = user.Gender, Email = user.Email, IsBanned = user.IsBanned, Rank = user.Rank.Name }; return extUser; }
public static IEnumerable<UserMinimalModel> GetAllUsers() { var context = new CoolBlogEntity(); using (context) { var users = (from user in context.Users select new UserMinimalModel() { Id = user.Id, Nickname = user.Nickname, }); return users.ToList(); } }
public static void LogoutUser(string sessionKey) { ValidateSessionKey(sessionKey); var context = new CoolBlogEntity(); using (context) { var user = context.Users.FirstOrDefault(u => u.SessionKey == sessionKey); if (user == null) { throw new ServerErrorException("Invalid user authentication", "INV_USR_AUTH"); } user.SessionKey = null; context.SaveChanges(); } }
public static string LoginUser(UserLoginModel usr, out string nickname, out int id,out string rank) { ValidateUsername(usr.Username); ValidateAuthKey(usr.AuthKey); var context = new CoolBlogEntity(); using (context) { var usernameToLower = usr.Username.ToLower(); var user = context.Users.FirstOrDefault(u => u.Username == usernameToLower && u.AuthKey== usr.AuthKey); if (user == null) { throw new ServerErrorException("Invalid username or password", "ERR_INV_USR"); } var sessionKey = GenerateSessionKey(user.Id); user.SessionKey = sessionKey; nickname = user.Nickname; id = user.Id; rank = user.Rank.Name; context.SaveChanges(); return sessionKey; } }