static void Main(string[] args) { logger.Info("Program started"); string userchoice = ""; var db = new BloggingContext(); try { do { Console.WriteLine("Please type 1 to create a blog, 2 to display all blogs, 3 to post to a blog, or 4 to display posts"); userchoice = Console.ReadLine(); if (userchoice == "1") { // Create and save a new Blog Console.Write("Enter a name for a new Blog: "); var name = Console.ReadLine(); var blog = new Blog { Name = name }; // ill need to assign a blogid to the create blog bit of code and then connect it with the add post method db.AddBlog(blog); logger.Info("Blog added - {name}", name); } if (userchoice == "2") { // Display all Blogs from the database var query = db.Blogs.OrderBy(b => b.Name); Console.WriteLine("All blogs in the database:"); foreach (var item in query) { Console.WriteLine(item.Name); } } if (userchoice == "3") { Console.WriteLine("Please enter the id of the blog you wish to post to"); int bloggerId = int.Parse(Console.ReadLine()); Console.WriteLine("What is the title of your post?"); var title = Console.ReadLine(); Console.WriteLine("Please enter all content of the post"); var content = Console.ReadLine(); var post = new Post { Title = title, Content = content, BlogId = bloggerId }; db.AddPost(post); db.SaveChanges(); // Blog blog23 = db.Blogs.FirstOrDefault(c => c.BlogId == bloggerId); // blog23.Posts.Add(post); } if (userchoice == "4") { Console.WriteLine("Type '1' to display all posts from all blogs, or enter 2 to show posts from a specific blog"); int choice = int.Parse(Console.ReadLine()); if (choice == 1) { var query = db.Blogs.OrderBy(b => b.BlogId); foreach (var item in query) { Console.WriteLine(item.Name); foreach (Post p in item.Posts) { Console.WriteLine(p.Title + "\n" + p.Content); } } } else if (choice == 2) { var dbb = new BloggingContext(); var query = db.Blogs.OrderBy(b => b.BlogId); Console.WriteLine("select the blog whose post you would like to see"); foreach (var item in query) { Console.WriteLine(item.BlogId + " " + item.Name); } int id = int.Parse(Console.ReadLine()); Console.Clear(); Blog blog2 = db.Blogs.FirstOrDefault(c => c.BlogId == id); Console.WriteLine(blog2.BlogId + " " + blog2.Name); foreach (Post p in blog2.Posts) { Console.WriteLine(p.Title + "\n" + p.Content); } } } }while (userchoice == "1" || userchoice == "2" || userchoice == "3" || userchoice == "4"); } catch (Exception ex) { logger.Error(ex.Message); } logger.Info("Program ended"); }
public static void Main(string[] args) { logger.Info("Program started"); try { var db = new BloggingContext(); // Ask user for new Blog name Console.Write("Enter a name for a new Blog: "); var name = Console.ReadLine(); // save blog var newBlog = new Blog { Name = name }; db.Blogs.Add(newBlog); db.SaveChanges(); logger.Info("new blog saved"); // Show all blogs var blogs = db.Blogs; Console.WriteLine("Here are all the blogs:"); foreach (var item in blogs) { Console.WriteLine(item.Name); } // Ask user to select blog Console.Write("Enter a Blog name: "); var userChoice = Console.ReadLine(); var blog = blogs.FirstOrDefault(b => b.Name == userChoice); // Ask user to enter post details Console.WriteLine("Enter a Post"); Console.WriteLine("Enter a title"); var title = Console.ReadLine(); Console.WriteLine("Enter some content"); var content = Console.ReadLine(); // save the post var newPost = new Post { Title = title, Content = content, BlogId = blog.BlogId }; db.Posts.Add(newPost); db.SaveChanges(); logger.Info("new post saved"); // display the posts Console.WriteLine("Here are the posts:"); foreach (var item in db.Posts) { Console.WriteLine($"title: {item.Title}; content: {item.Content}"); } // ask the user to select a post Console.Write("Enter a Post name: "); var postChoice = Console.ReadLine(); var post = db.Posts.FirstOrDefault(p => p.Title == postChoice); // edit the existing post Console.Write("Enter new post content: "); var newContent = Console.ReadLine(); post.Title = newContent; // save the post db.SaveChanges(); logger.Info("posted edited"); // display the posts again Console.WriteLine("Here are the posts again:"); foreach (var item in db.Posts) { Console.WriteLine($"title: {item.Title}; content: {item.Content}"); } // delete a post // ask the user to select a post Console.Write("Enter a Post name: "); var postToDelete = Console.ReadLine(); var deletePost = db.Posts.FirstOrDefault(p => p.Title == postToDelete); db.Posts.Remove(deletePost); db.SaveChanges(); logger.Info("posted deleted"); // display the posts one last time Console.WriteLine("Here are the posts again:"); foreach (var item in db.Posts) { Console.WriteLine($"title: {item.Title}; content: {item.Content}"); } } catch (Exception ex) { logger.Error(ex.Message); } logger.Info("Program ended"); }
public static void Main(string[] args) { var inProgram = true; logger.Info("Program started"); do { // Create and save a new Blog Console.WriteLine("\nEnter Your Selection:"); Console.WriteLine("1) Display Blogs"); Console.WriteLine("2) Add Blog"); Console.WriteLine("3) Create Post"); Console.WriteLine("4) Display Posts"); Console.WriteLine("5) To Exit Program"); var choice = int.Parse(Console.ReadLine()); logger.Info("Selection " + choice + " was selected."); switch (choice) { case 1: { var db = new BloggingContext(); // Display all Blogs from the database var query = db.Blog.OrderBy(b => b.Name); Console.WriteLine(query.Count() + " blogs returned"); Console.WriteLine("All blogs in the database:"); foreach (var item in query) { Console.WriteLine(item.Name); } db.SaveChanges(); break; } case 2: { var nameIsValid = false; do { Console.Write("Enter a name for your new blog"); var name = Console.ReadLine(); if (name is null) { logger.Info("Name cannot be null"); } else { nameIsValid = true; var blog = new Blog { Name = name }; var db = new BloggingContext(); db.AddBlog(blog); logger.Info("Blog added - {name}", name); } } while (!nameIsValid); break; } case 3: { Console.WriteLine("Select the ID number of the blog you'd like to post to\n"); var db = new BloggingContext(); // Display all Blogs from the database var query = db.Blog; var post = new Post(); var validBlog = false; do { Console.WriteLine("All blogs in the database:\n"); foreach (var item in query) { Console.WriteLine(item.BlogId + ") " + item.Name); } var blogChoice = 0; try { blogChoice = int.Parse(Console.ReadLine()); } catch { logger.Info(blogChoice + "is not a valid integer."); } var blogs = db.Blog.Where(p => p.BlogId == blogChoice); if (blogs.Count() == 0) { logger.Info("\n{choice} is not a valid Blog Id", blogChoice); } else { var title = ""; var titleIsValid = false; do { Console.Write("\nEnter a title for your post"); title = Console.ReadLine(); if (title is null) { logger.Info("Name cannot be null"); } else { titleIsValid = true; } } while (!titleIsValid); Console.WriteLine("\nEnter the post content:"); var content = Console.ReadLine(); post = new Post { Title = title, Content = content, BlogId = blogChoice }; } } while (!validBlog); db.AddPost(post); logger.Info("\nPost added to - {name}", post.Blog.Name); break; } case 4: { var db = new BloggingContext(); // Display all Blogs from the database var query = db.Blog; var choiceIsValid = false; do { Console.WriteLine("Select the blog's posts to display:"); Console.WriteLine("0) Display all posts"); foreach (var item in query) { Console.WriteLine(item.BlogId + ") Display all posts from " + item.Name); } var postChoice = 0; try { postChoice = int.Parse(Console.ReadLine()); } catch { logger.Info(postChoice + "is not a valid integer."); } if (postChoice == 0) { var posts = db.Post; Console.WriteLine($"{posts.Count()} post(s) returned"); foreach (var p in posts) { Console.WriteLine("Blog: " + p.Blog.Name); Console.WriteLine("Title: " + p.Title); Console.WriteLine("Content: " + p.Content); } choiceIsValid = true; } else { if (db.Blog.Where(p => p.BlogId == postChoice).Count() == 0) { logger.Info("\n{choice} is not a valid Blog Id", postChoice); } else { var posts = db.Post.Where(p => p.BlogId == postChoice); Console.WriteLine($"{posts.Count()} post(s) returned"); foreach (var p in posts) { Console.WriteLine("Title: " + p.Title); Console.WriteLine("Content: " + p.Content); } choiceIsValid = true; } } } while (!choiceIsValid); db.SaveChanges(); break; } case 5: { Console.WriteLine("Are you sure you'd like to exit the program? (Y/N)"); var exitChoice = Console.ReadLine().ToUpper(); if (exitChoice == "Y") { inProgram = false; } break; } default: { break; } } } while (inProgram); }
static void Main(string[] args) { string response = ""; string name = ""; int rating; int id; string content = ""; string title = ""; bool isValid = true; logger.Info("Program started"); try { do { System.Console.WriteLine("\nEnter your selection: \n1) Display all Blogs \n2) Add a Blog \n3) Display Posts \n4) Create a Post \nEnter any other to key to quit"); response = Console.ReadLine(); if (response == "1") { // Displaying Blog using (var db = new BloggingContext()) { foreach (var blog in db.Blogs) { System.Console.WriteLine("\nName:" + blog.Url + " \nRating:" + blog.Rating); } } } else if (response == "2") { System.Console.WriteLine("What is the name of the Blog?"); name = Console.ReadLine(); System.Console.WriteLine("What rating would you give the Blog? (1-5)"); try { rating = Int32.Parse(Console.ReadLine()); } catch (Exception ex) { logger.Error(ex.Message); throw new Exception("Please input a valid response!"); } using (var db = new BloggingContext()) { var blog = new Blog() { Url = name, Rating = rating }; db.Blogs.Add(blog); db.SaveChanges(); } } else if (response == "3") { System.Console.WriteLine("Which blog would you like to see the Posts of? (BlogId)"); using (var db = new BloggingContext()) { foreach (var blog in db.Blogs) { System.Console.WriteLine("\nBlog ID: " + blog.BlogId + " Name: " + blog.Url); } try { id = Int32.Parse(Console.ReadLine()); } catch (Exception ex) { logger.Error(ex.Message); throw new Exception("Please input a valid response!"); } var blogs = db.Blogs .Include(b => b.Posts).ToList(); foreach (var blog in blogs) { blog.Posts.Where(x => x.BlogId.Equals(id)) .ToList() .ForEach(x => { if (id == x.BlogId) { System.Console.WriteLine($"({x.PostId}) {x.Title}"); } }); } } } else if (response == "4") { System.Console.WriteLine("Which Blog would you like to create a Post for?(BlogId)"); using (var db = new BloggingContext()) { foreach (var blog in db.Blogs) { System.Console.WriteLine("\nBlog ID: " + blog.BlogId + " Name: " + blog.Url); } try { id = Int32.Parse(Console.ReadLine()); } catch (Exception ex) { logger.Error(ex.Message); throw new Exception("Please input a valid response!"); } System.Console.WriteLine("Enter a Title for your post"); title = Console.ReadLine(); System.Console.WriteLine("Please Enter your Posts Contents"); content = Console.ReadLine(); var post = new Post() { BlogId = id, Content = content, Title = title }; db.Posts.Add(post); db.SaveChanges(); } } else { System.Console.WriteLine("Thank you for using our services"); isValid = false; } } while (isValid); // // Create and save a new Blog // Console.Write("Enter a name for a new Blog: "); // var name = Console.ReadLine(); // var blog = new Blog { Name = name }; // var db = new BloggingContext(); // db.AddBlog(blog); // logger.Info("Blog added - {name}", name); // // Display all Blogs from the database // var query = db.Blogs.OrderBy(b => b.Name); // Console.WriteLine("All blogs in the database:"); // foreach (var item in query) // { // Console.WriteLine(item.Name); // } } catch (Exception ex) { logger.Error(ex.Message); } logger.Info("Program ended"); }
public static void Main(string[] args) { //logger.Info("Program started"); //try //{ bool inProgram = true; do { Console.WriteLine("Enter your selection: "); Console.WriteLine("1) Display all Blogs"); Console.WriteLine("2) Add Blog"); Console.WriteLine("3) Edit Blog"); Console.WriteLine("4) Delete Blog"); Console.WriteLine("5) Create Post"); Console.WriteLine("6) Display Posts"); Console.WriteLine("7) Edit Post"); Console.WriteLine("8) Delete Post"); Console.WriteLine("Enter q to quit"); string response = Console.ReadLine(); switch (response) { case "1": { var db = new BloggingContext(); db.DisplayBlogs(); db.SaveChanges(); break; } case "2": { var db = new BloggingContext(); db.AddBlogs(); db.SaveChanges(); break; } case "3": { var db = new BloggingContext(); db.EditBlog(); db.SaveChanges(); break; } case "4": { var db = new BloggingContext(); db.DeleteBlog(); db.SaveChanges(); break; } case "5": { var db = new BloggingContext(); db.CreatePost(); db.SaveChanges(); break; } case "6": { var db = new BloggingContext(); db.DisplayPosts(); db.SaveChanges(); break; } case "7": { var db = new BloggingContext(); db.EditPost(); db.SaveChanges(); break; } case "8": { var db = new BloggingContext(); db.DeletePost(); db.SaveChanges(); break; } case "q": { inProgram = false; break; } } } while (inProgram); // // Display all Blogs from the database // var query = db.Blogs.OrderBy(b => b.Name); // Console.WriteLine("All blogs in the database:"); // foreach (var item in query) // { // Console.WriteLine(item.Name); // } }
public void selectOption() { beginning: string select = ""; select = Console.ReadLine(); switch (select) { case "1": // DISPLAY BLOGS var orderQueryName = db.Blogs.OrderBy(b => b.Name); Console.WriteLine("All blogs in the database:"); foreach (var item in orderQueryName) { Console.WriteLine(item.Name); } startUp(); goto beginning; case "2": // ADD BLOG tryAgain: Console.Write("Enter a name for a new Blog: "); var name = Console.ReadLine(); if (String.IsNullOrEmpty(name)) { goto tryAgain; } var blog = new Blog { Name = name }; db.AddBlog(blog); logger.Info("Blog added - {name}", name); startUp(); goto beginning; case "3": // DISPLAY POSTS int blogIdL = selectBlog(); using (var context = new BloggingContext()) { var blogs = context.Blogs .FromSqlInterpolated($"SELECT * FROM dbo.Blogs Where BlogId = ({blogIdL})").ToList(); Console.ForegroundColor = ConsoleColor.DarkRed; foreach (Blog blogName in blogs) { System.Console.WriteLine($"Blog: " + blogName.Name); } Console.ForegroundColor = ConsoleColor.White; } using (var context = new BloggingContext()) { var posts = context.Posts .FromSqlInterpolated($"SELECT * FROM dbo.Posts Where BlogId = ({blogIdL})").ToList(); foreach (Post post in posts) { System.Console.WriteLine($"Title: " + post.Title + "\tContent: " + post.Content); } } startUp(); goto beginning; case "4": // ADD POST int workingBlogId = selectBlog(); oppsNoTitle: Console.Write("Enter a title for the new Post: "); var title = Console.ReadLine(); if (String.IsNullOrEmpty(title)) { goto oppsNoTitle; } Console.Write("Enter content for the new Post: "); var content = Console.ReadLine(); using (var db = new BloggingContext()) { var post = new Post() { BlogId = workingBlogId, Content = content, Title = title }; db.Posts.Add(post); db.SaveChanges(); } logger.Info("Post added!"); startUp(); goto beginning; case "q": Console.WriteLine("Quit"); db.QuitProgram(); break; default: Console.WriteLine("Wrong input try again"); startUp(); goto beginning; } }