private static bool TryCreatePizza(IDictionary <string, string> requestParameters) { if (!requestParameters.ContainsKey("title") || requestParameters.ContainsKey("recipe") || requestParameters.ContainsKey("url")) { return(false); } var title = requestParameters["title"]; var recipe = requestParameters["recipe"]; var imgUrl = requestParameters["url"]; var pizza = new Pizza() { Title = title, Recipe = recipe, ImgUrl = imgUrl, CreatedOn = DateTime.UtcNow, OwnerId = session.UserId, Owner = session.User }; session.User.Pizzas.Add(pizza); var db = new PizzaMoreContext(); db.Users.AddOrUpdate(session.User); db.SaveChanges(); return(true); }
private static void VoteForPizza() { IDictionary <string, string> parameters = WebUtil.RetrievePostParameters(); string vote = parameters["pizzaVote"]; int pizzaId = int.Parse(parameters["pizzaId"]); using (PizzaMoreContext pizzaContext = new PizzaMoreContext()) { Pizza pizza = pizzaContext.Pizzas.FirstOrDefault(p => p.Id == pizzaId); if (pizza == null) { WebUtil.PageNotAllowed(); return; } if (vote == "up") { pizza.Upvotes++; } else if (vote == "down") { pizza.Downvotes++; } pizzaContext.SaveChanges(); } }
private static Cookie LoginUser(HttpRequest request, PizzaMoreContext context) { User checkedUser = ExtractUserInfoFromAForm(request); User userFromDb = context.Users.SingleOrDefault(u => u.Email == checkedUser.Email); if (userFromDb.Password == checkedUser.Password) { Random rnd = new Random(); Session session = new Session() { User = userFromDb, Id = rnd.Next(0, Int32.MaxValue).ToString() }; context.Sessions.Add(session); context.SaveChanges(); Cookie sessionCookie = new Cookie("sid", session.Id); return(sessionCookie); } return(null); }
private static void RegisterUser(HttpRequest request, PizzaMoreContext context) { User user = ExtractUserInfoFromAForm(request); context.Users.Add(user); context.SaveChanges(); }
private static void GenerateAllSuggestions(PizzaMoreContext context) { StringBuilder sb = new StringBuilder(); var pizzas = context.Pizzas; sb.AppendLine("<div class=\"card-deck\">"); foreach (var pizza in pizzas) { sb.AppendLine("<div class=\"card\">"); sb.AppendLine($"<img class=\"card-img-top\" src=\"{pizza.ImageUrl}\" width=\"200px\"alt=\"Card image cap\">"); sb.AppendLine("<div class=\"card-block\">"); Console.WriteLine($"<h4 class=\"card-title\">{pizza.Title}</h4>"); sb.AppendLine($"<p class=\"card-text\"><a href=\"/DetailsPizza?pizzaid={pizza.Id}\">Recipe</a></p>"); sb.AppendLine("<form method=\"POST\">"); sb.AppendLine($"<div class=\"radio\"><label><input type = \"radio\" name=\"pizzaVote\" value=\"up\">Up</label></div>"); sb.AppendLine($"<div class=\"radio\"><label><input type = \"radio\" name=\"pizzaVote\" value=\"down\">Down</label></div>"); sb.AppendLine($"<input type=\"hidden\" name=\"pizzaid\" value=\"{pizza.Id}\" />"); sb.AppendLine("<input type=\"submit\" class=\"btn btn-primary\" value=\"Vote\" />"); sb.AppendLine("</form>"); sb.AppendLine("</div>"); sb.AppendLine("</div>"); } sb.AppendLine("</div></div></div></body></html>"); File.WriteAllText("../../content/all-suggestions.html", sb.ToString()); }
private static void DeletePizza(IDictionary <string, string> requestParameters) { if (!requestParameters.ContainsKey("pizzaId")) { return; } var pizzaId = requestParameters["pizzaId"]; int id; if (!int.TryParse(pizzaId, out id)) { return; } var db = new PizzaMoreContext(); var user = db.Users.FirstOrDefault(x => x.Id == Session.UserId); if (user == null) { return; } var pizza = user.Pizzas.FirstOrDefault(x => x.Id == id); user.Pizzas.Remove(pizza); db.Pizzas.Remove(pizza); db.Users.AddOrUpdate(user); db.SaveChanges(); }
private static void LogoutUser(HttpRequest request, PizzaMoreContext context) { Session session = context.Sessions.Find(request.Header.Cookies["sid"].Value); context.Sessions.Remove(session); context.SaveChanges(); }
static void Main() { Session = WebUtil.GetSession(); if (Session != null) { var id = WebUtil.RetrieveGetParameters(); PizzaMoreContext pizzaInfo = new PizzaMoreContext(); Pizza pizza; using (pizzaInfo) { pizza = pizzaInfo.Pizzas.Find(int.Parse(id["pizzaid"])); } Header.Print(); Console.WriteLine("<!doctype html><html lang=\"en\"><head><meta charset=\"UTF-8\" /><title>PizzaMore - Details</title><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /><link rel=\"stylesheet\" href=\"/pm/bootstrap/css/bootstrap.min.css\" /><link rel=\"stylesheet\" href=\"/pm/css/signin.css\" /></head><body><div class=\"container\">"); Console.WriteLine("<div class=\"jumbotron\">"); Console.WriteLine("<a class=\"btn btn-danger\" href=\"Menu.exe\">All Suggestions</a>"); Console.WriteLine($"<h3>{pizza.Title}</h3>"); Console.WriteLine($"<img src=\"{pizza.ImageUrl}\" width=\"300px\"/>"); Console.WriteLine($"<p>{pizza.Recipe}</p>"); Console.WriteLine($"<p>Up: {pizza.UpVotes}</p>"); Console.WriteLine($"<p>Down: {pizza.DownVotes}</p>"); Console.WriteLine("</div>"); Console.WriteLine("</div><script src=\"/pm/jquery/jquery-3.1.1.js\"></script><script src=\"/pm/bootstrap/js/bootstrap.min.js\"></script></body></html>"); } }
private static void AddUserToDb(User user) { var context = new PizzaMoreContext(); context.Users.Add(user); context.SaveChanges(); }
public Menu(PizzaMoreContext pizzaMoreContext, IFileReader reader) { this.header = new Header(); this.fileReader = reader; this.context = pizzaMoreContext; this.session = WebUtils.GetSession(this.context); }
private static void LogIn() { RequestParameters = WebUtil.RetrievePostParameters(); string email = RequestParameters["email"]; string password = RequestParameters["password"]; string hashedPassword = PasswordHasher.Hash(password); PizzaMoreContext context = new PizzaMoreContext(); Random rnd = new Random(); using (context) { User user = context.Users.SingleOrDefault(u => u.Email == email); if (user.Password == hashedPassword) { Session session = new Session() { Id = rnd.Next().ToString(), User = user }; if (user != null) { Header.AddCoockie(new Cookie(Constants.SessionIdKey, session.Id)); } context.Sessions.Add(session); context.SaveChanges(); } } Console.WriteLine("Location: menu.exe\n\n"); }
private static void TryLogOut() { try { if (RequestParameters.ContainsKey("logout") && RequestParameters["logout"] == "true") { var cookieValue = int.Parse(WebUtil.GetCookies()["sid"].Value); var cookieName = WebUtil.GetCookies()["sid"].Name; var context = new PizzaMoreContext(); var session = context.Sessions.FirstOrDefault(s => s.Id == cookieValue); if (Header.CookieCollection.ContainsKey("sid")) { Header.CookieCollection.RemoveCookie(cookieName); } context.Sessions.Remove(session); context.SaveChanges(); } } catch (Exception e) { Logger.Log(e.Message); } }
public static void Main() { if (WebUtils.IsPost()) { var parameters = WebUtils.RetrievePostParameters(); string emailParam = parameters.ContainsKey("email") ? parameters["email"] : null; string passwordParam = parameters.ContainsKey("password") ? parameters["password"] : null;; if (emailParam != null && passwordParam != null) { User user = new User { Email = emailParam, Password = PasswordHasher.Hash(passwordParam) }; using (PizzaMoreContext context = new PizzaMoreContext()) { context.Users.Add(user); context.SaveChanges(); } } } ShowSignUpPage(); }
private static void LogIn() { RequestParameters = WebUtil.RetrievePostParameters(); string email = RequestParameters["email"]; string password = RequestParameters["password"]; string hashedPassword = PasswordHasher.Hash(password); using (var context = new PizzaMoreContext()) { var user = context.Users.SingleOrDefault(u => u.Email == email); if (hashedPassword == user.Password) { var session = new Session() { Id = new Random().Next().ToString(), User = user }; if (user != null) { Header.AddCookie(new Cookie("sid", session.Id)); } context.Sessions.Add(session); context.SaveChanges(); } } }
static void Main() { if (WebUtil.IsGet()) { ShowPage(); } else { var userCredidentials = WebUtil.RetrievePostParameters(); var email = userCredidentials["email"]; var password = PasswordHasher.Hash(userCredidentials["password"]); PizzaMoreContext addUser = new PizzaMoreContext(); using (addUser) { var exists = (from e in addUser.Users where e.Email == email select e).Any(); if (!exists) { addUser.Users.Add(new User(email, password)); addUser.SaveChanges(); } } ShowPage(); } }
private static User IsUserExists(IDictionary <string, string> requestParameters) { if (!requestParameters.ContainsKey("email") || !requestParameters.ContainsKey("password")) { return(null); } var email = requestParameters["email"]; var password = requestParameters["password"]; var db = new PizzaMoreContext(); var user = db.Users.FirstOrDefault(x => x.Email == email); if (user == null) { return(null); } var isExists = PasswordHasher.Verify(user.Salt, user.Hash, password); if (!isExists) { return(null); } return(user); }
static void Main(string[] args) { try { Header head = new Header(); head.Print(); if (WebUtil.IsGet()) { WebUtil.PrintFileContent(Constants.RegisterPath); } else if (WebUtil.IsPost()) { IDictionary <string, string> parameters = WebUtil.RetrievePostParameters(); string email = parameters["email"]; string password = parameters["password"]; password = PasswordHasher.HashPassword(password); using (PizzaMoreContext pizzaContext = new PizzaMoreContext()) { pizzaContext.Users.Add(new User() { Email = email, Password = password }); pizzaContext.SaveChanges(); } WebUtil.PrintFileContent(Constants.RegisterPath); } } catch (Exception e) { Logger.Log(e.ToString()); } }
static void Main() { Session = WebUtil.GetSession(); if (Session != null) { if (WebUtil.IsGet()) { ShowPage(); } else { var delete = WebUtil.RetrievePostParameters(); PizzaMoreContext deleteContext = new PizzaMoreContext(); using (deleteContext) { var pizza = deleteContext.Pizzas.Find(int.Parse(delete["pizzaId"])); deleteContext.Pizzas.Remove(pizza); deleteContext.SaveChanges(); } ShowPage(); } } else { WebUtil.PageNotAllowed(); } }
private static void ShowPage(PizzaMoreContext context) { header.Print(); WebUtil.PrintFileContent(GlobalConstants.YourSuggestionsTopPath); PrintListOfSuggestedItems(context); WebUtil.PrintFileContent(GlobalConstants.YourSuggestionsBottomPath); }
private static void GenerateAllSuggestions() { PizzaMoreContext context = new PizzaMoreContext(); using (context) { IList <Pizza> pizzas = context.PizzaSuggestions.ToList(); Console.WriteLine("<div class=\"card-deck\">"); foreach (var pizza in pizzas) { Console.WriteLine("<div class=\"card\">"); Console.WriteLine( $"<img class=\"card-img-top\" src=\"{pizza.ImageUrl}\" width=\"200px\"alt=\"Card image cap\">"); Console.WriteLine("<div class=\"card-block\">"); Console.WriteLine($"<h4 class=\"card-title\">{pizza.Title}</h4>"); Console.WriteLine( $"<p class=\"card-text\"><a href=\"DetailsPizza.exe?pizzaid={pizza.Id}\">Recipe</a></p>"); Console.WriteLine("<form method=\"POST\">"); Console.WriteLine( $"<div class=\"radio\"><label><input type = \"radio\" name=\"pizzaVote\" value=\"up\">Up</label></div>"); Console.WriteLine( $"<div class=\"radio\"><label><input type = \"radio\" name=\"pizzaVote\" value=\"down\">Down</label></div>"); Console.WriteLine($"<input type=\"hidden\" name=\"pizzaid\" value=\"{pizza.Id}\" />"); Console.WriteLine("<input type=\"submit\" class=\"btn btn-primary\" value=\"Vote\" />"); Console.WriteLine("</form>"); Console.WriteLine("</div>"); Console.WriteLine("</div>"); } Console.WriteLine("</div>"); } }
public static void Main() { var context = new PizzaMoreContext(); string sessionId = WebUtil.GetSessionId(); session = context.Sessions .FirstOrDefault(s => s.Id == sessionId); if (session == null) { header.Print(); WebUtil.PageNotAllowed(); return; } if (WebUtil.IsGet()) { ShowPage(context); } else if (WebUtil.IsPost()) { DeletePizza(context); ShowPage(context); } }
public IActionResult <PizzaSuggestionViewModel> Index(VotePizzaBindingModel model, HttpSession session, HttpResponse response) { using (PizzaMoreContext context = new PizzaMoreContext()) { User currentUser = RetrieveUser(session, context); PizzaSuggestionViewModel viewModel = new PizzaSuggestionViewModel() { Email = currentUser.Email, PizzaSuggestions = currentUser.PizzaSuggestions }; Pizza pizzaEntity = context.Pizzas.Find(model.PizzaId); if (model.PizzaVote == "Up") { pizzaEntity.UpVotes++; } else { pizzaEntity.DownVotes++; } context.SaveChanges(); this.Redirect(response, "/menu/index"); return(null); } }
static void Main(string[] args) { Header head = new Header(); head.Print(); if (WebUtil.IsGet()) { using (PizzaMoreContext pizzaContext = new PizzaMoreContext()) { Session session = WebUtil.GetSession(); if (session == null) { WebUtil.PageNotAllowed(); return; } IDictionary <string, string> parameters = WebUtil.RetrieveGetParameters(); int pizzaId = int.Parse(parameters["pizzaId"]); Pizza pizza = pizzaContext.Pizzas.SingleOrDefault(p => p.Id == pizzaId); PrintPizza(pizza); } } }
private static void VoteForPizza(HttpRequest request, PizzaMoreContext context) { IDictionary <string, string> pizzaParamsDictionary = new Dictionary <string, string>(); string decodeString = WebUtility.UrlDecode(request.Content); string[] pizzaVoteDetails = decodeString.Split('&'); foreach (string pizaParams in pizzaVoteDetails) { string[] pizaInfo = pizaParams.Split('='); string paramName = pizaInfo[0]; string paramValue = pizaInfo[1]; pizzaParamsDictionary.Add(paramName, paramValue); } Pizza pizza = context.Pizzas.Find(int.Parse(pizzaParamsDictionary["pizzaid"])); string vote = pizzaParamsDictionary["pizzaVote"]; switch (vote) { case "up": pizza.UpVotes++; break; case "down": pizza.DownVotes++; break; } context.SaveChanges(); }
private static void AddPizza(HttpRequest request, PizzaMoreContext context) { IDictionary <string, string> addPizzaDictionary = new Dictionary <string, string>(); string decodeString = WebUtility.UrlDecode(request.Content); string[] pizzaParams = decodeString.Split('&'); foreach (string pizzaParam in pizzaParams) { string[] parametres = pizzaParam.Split('='); string paramName = parametres[0]; string paramValue = parametres[1]; addPizzaDictionary.Add(paramName, paramValue); } Session session = context.Sessions.Find(request.Header.Cookies["sid"].Value); User user = context.Users.Find(session.UserId); Pizza pizza = new Pizza() { Title = addPizzaDictionary["title"], Recipe = addPizzaDictionary["recipe"], ImageUrl = addPizzaDictionary["url"], OwnerId = user.Id, Owner = user }; context.Pizzas.Add(pizza); context.SaveChanges(); }
static void Main(string[] args) { Header header = new Header(); Console.WriteLine(header); var context = new PizzaMoreContext(); var cookies = WebUtil.GetCookies(); if (!cookies.ContainsKey("sid")) { WebUtil.PrintFileContent(@"D:\xampp\cgi-bin\cgi-pizza\PizzaMoreAssets\game\index.html"); } else { int sid = int.Parse(cookies["sid"].Value.ToString()); var sessions = context.Sessions.ToList(); Session = sessions.FirstOrDefault(s => s.Id == sid); if (Session == null) { WebUtil.PrintFileContent(@"D:\xampp\cgi-bin\cgi-pizza\PizzaMoreAssets\game\index.html"); } } Logger.Log(Session.User.Email); if (WebUtil.IsGet()) { WebUtil.PrintFileContent(@"D:\xampp\cgi-bin\cgi-pizza\addpizza.html"); } else { try { IDictionary <string, string> postParams = WebUtil.RetrievePostParameters(); string pizzaName = postParams["title"]; string pizzaRecipe = postParams["recipe"]; string pizzaUrl = postParams["url"]; Pizza pizza = new Pizza() { Name = pizzaName, Recipe = pizzaRecipe, ImageUrl = pizzaUrl, User = Session.User }; context.Pizzas.Add(pizza); context.SaveChanges(); WebUtil.PrintFileContent(@"D:\xampp\cgi-bin\cgi-pizza\addpizza.html"); } catch (Exception e) { Logger.Log(e.Message); throw; } } }
private static void DeletePizza(PizzaMoreContext context) { postParams = WebUtil.RetrievePostParameters(); var pizza = context.PizzaSuggestions.Find(int.Parse(postParams["pizzaId"])); context.PizzaSuggestions.Remove(pizza); context.SaveChanges(); }
private static void ShowPage(PizzaMoreContext context) { header.Print(); GenerateNavbar(); WebUtil.PrintFileContent(GlobalConstants.MenuTopPath); GenereateAllSuggestions(context); WebUtil.PrintFileContent(GlobalConstants.MenuBottomPath); }
private void ConfigureMapper(HttpSession session, PizzaMoreContext context) { Mapper.Initialize( expression => expression.CreateMap <AddPizzaBindingModel, Pizza>() .ForMember(p => p.Owner, config => config .MapFrom(u => context.Sessions.First(s => s.SessionId == session.Id).User)) ); }
private static string GetUserEmail(HttpRequest request, PizzaMoreContext context) { Session session = context.Sessions.Find(request.Header.Cookies["sid"].Value); User user = context.Users.Find(session.UserId); string userEmail = user.Email; return(userEmail); }