public static bool TrysavePost(PostViewModel postView) { bool emptyCategory = string.IsNullOrWhiteSpace(postView.Category); bool emptytitle = string.IsNullOrWhiteSpace(postView.Title); bool emptyContent = !postView.Content.Any(); if (emptyCategory || emptyContent || emptytitle) { return(false); } ForumData forumData = new ForumData(); Category category = EnsureCategory(postView, forumData); var postId = forumData.Posts.LastOrDefault()?.Id + 1 ?? 1; var author = UserServices.GetUser(postView.Author, forumData); var content = string.Join("", postView.Content); var post = new Post(postId, postView.Title, content, category.Id, author.Id, new List <int>()); forumData.Posts.Add(post); category.PostsIds.Add(postId); author.PostIds.Add(postId); forumData.SaveChenges(); postView.PostId = postId; return(true); }
public static SignUpStatus TrySignUpUser(string username, string password) { var validUsername = !string.IsNullOrWhiteSpace(username) && username.Length > 3; var validPassword = !string.IsNullOrWhiteSpace(password) && password.Length > 3; if (!validPassword || !validUsername) { return(SignUpStatus.DetailsError); } var forumData = new ForumData(); var userAlreadyExist = forumData.Users.Any(u => u.Username == username); if (!userAlreadyExist) { //Create user var id = forumData.Users.LastOrDefault()?.Id + 1 ?? 1; var user = new User(id, username, password, new List <int>()); forumData.Users.Add(user); forumData.SaveChenges(); return(SignUpStatus.Success); } return(SignUpStatus.UsernameTakenError); }
public static bool TrySaveReply(ReplyViewModel replyView, int postId) { if (!replyView.Content.Any()) { ForumData forumData = new ForumData(); var author = UserServices.GetUser(replyView.Author, forumData); var post = forumData.Posts.Single(p => p.Id == postId); var replyId = forumData.Replies.LastOrDefault()?.Id + 1 ?? 1; var content = string.Join("", replyView.Content); var reply = new Reply(replyId, content, author.Id, postId); forumData.Replies.Add(reply); post.ReplyIds.Add(replyId); forumData.SaveChenges(); return(true); } return(false); }