Example #1
0
        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);
        }
Example #2
0
        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());
        }
Example #6
0
        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();
        }
Example #8
0
 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>");
     }
 }
Example #9
0
        private static void AddUserToDb(User user)
        {
            var context = new PizzaMoreContext();

            context.Users.Add(user);
            context.SaveChanges();
        }
Example #10
0
 public Menu(PizzaMoreContext pizzaMoreContext, IFileReader reader)
 {
     this.header     = new Header();
     this.fileReader = reader;
     this.context    = pizzaMoreContext;
     this.session    = WebUtils.GetSession(this.context);
 }
Example #11
0
        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);
            }
        }
Example #13
0
        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();
                }
            }
        }
Example #15
0
 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();
     }
 }
Example #16
0
        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);
        }
Example #17
0
        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());
            }
        }
Example #18
0
 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();
     }
 }
Example #19
0
 private static void ShowPage(PizzaMoreContext context)
 {
     header.Print();
     WebUtil.PrintFileContent(GlobalConstants.YourSuggestionsTopPath);
     PrintListOfSuggestedItems(context);
     WebUtil.PrintFileContent(GlobalConstants.YourSuggestionsBottomPath);
 }
Example #20
0
        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>");
            }
        }
Example #21
0
        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);
            }
        }
Example #22
0
        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);
            }
        }
Example #23
0
        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;
                }
            }
        }
Example #27
0
        private static void DeletePizza(PizzaMoreContext context)
        {
            postParams = WebUtil.RetrievePostParameters();
            var pizza = context.PizzaSuggestions.Find(int.Parse(postParams["pizzaId"]));

            context.PizzaSuggestions.Remove(pizza);
            context.SaveChanges();
        }
Example #28
0
 private static void ShowPage(PizzaMoreContext context)
 {
     header.Print();
     GenerateNavbar();
     WebUtil.PrintFileContent(GlobalConstants.MenuTopPath);
     GenereateAllSuggestions(context);
     WebUtil.PrintFileContent(GlobalConstants.MenuBottomPath);
 }
Example #29
0
 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);
        }