public ActionResult UserInformation(Guid UserId)
        {
            var model = UserProcessor.GetUserToModel(UserId);

            ViewBag.Message = $"User: {model.Name}";
            return(View(model));
        }
        public bool SendEmail(Guid userId, string subject, string emailBody)
        {
            try
            {
                var userModel = UserProcessor.GetUserToModel(userId);

                string senderEmail    = System.Configuration.ConfigurationManager.AppSettings["SenderEmail"].ToString();
                string senderPassword = System.Configuration.ConfigurationManager.AppSettings["SenderPassword"].ToString();

                SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
                // Set encrypted connection to true
                client.EnableSsl             = true;
                client.Timeout               = 100000;
                client.DeliveryMethod        = SmtpDeliveryMethod.Network;
                client.UseDefaultCredentials = false;
                client.Credentials           = new NetworkCredential(senderEmail, senderPassword);
                // Whrite email
                MailMessage mailMessage = new MailMessage(senderEmail, userModel.Email, subject, emailBody);
                mailMessage.IsBodyHtml   = true;
                mailMessage.BodyEncoding = UTF8Encoding.UTF8;

                client.Send(mailMessage);

                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public ActionResult ShoppingCart()
        {
            Guid userId = GetUserId();

            var userModel = UserProcessor.GetUserToModel(userId);

            if (userModel == null)
            {
                return(View());
            }

            return(View(userModel.ShoppingCart));
        }
        public ActionResult EditShoppingCart(Guid id)
        {
            Guid userId    = GetUserId();
            var  model     = ShoppingCartProcessor.GetShoppingModel(id);
            var  userModel = UserProcessor.GetUserToModel(userId);

            var checkUserOwnesItem = userModel.ShoppingCart.Where(x => x.Id == id).SingleOrDefault();

            if (model == null || checkUserOwnesItem == null)
            {
                return(RedirectToAction("ShoppingCart", "Acount"));
            }

            return(View(model));
        }
        public ActionResult EditShoppingCart(ShoppingCartModel model)
        {
            Guid userId    = GetUserId();
            var  user      = UserProcessor.GetUserToModel(userId);
            var  userModel = UserProcessor.GetUserToModel(userId);

            var checkUserOwnesItem = userModel.ShoppingCart.Where(x => x.Id == model.Id).SingleOrDefault();
            var storeItem          = StoreItemProcessor.GetStoreItemModelbyId(checkUserOwnesItem.StoreItemId);

            var StockAmountIsGreater = storeItem.InStock >= model.Amount;

            if (model == null || checkUserOwnesItem == null || !StockAmountIsGreater)
            {
                return(RedirectToAction("EditShoppingCart", "Acount"));
            }
            ShoppingCartProcessor.UpdateShoppingCart(checkUserOwnesItem, model);
            return(RedirectToAction("ShoppingCart", "Acount"));
        }
        public ActionResult SendPaymentEmail()
        {
            var userId = GetUserId();

            var userModel = UserProcessor.GetUserToModel(userId);
            var mailBody  = ShoppingCartToString(userModel);

            if (!SendEmail(userId, "MP-Verf Order confirmation email", mailBody))
            {
                //email did not send do stuff

                return(RedirectToAction("ShoppingCart", "Acount"));
            }
            //clear item list
            foreach (var storeItem in userModel.ShoppingCart)
            {
                ShoppingCartProcessor.RemoveFromShoppingCart(userId, storeItem);
            }

            return(RedirectToAction("ShoppingCart", "Acount"));
        }