Пример #1
0
        public bool Discounts(ShopDiscountModel model)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var result = db.UpdateDiscounts(model, userId);
                db.SaveChanges();
                return(result);
            }
        }
Пример #2
0
        public ActionResult Index()
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var messages = db.Messages.Where(m => m.Reciever.Id == userId && m.DateRecieved > DateTime.UtcNow).Include(m => m.Product.Shop).ToList();
                return(View(messages));
            }
        }
Пример #3
0
 /// <summary>
 /// Checks if there are enough products in the inventory and reserves them
 /// </summary>
 /// <param name="basket"></param>
 /// <param name="db"></param>
 /// <returns></returns>
 public static bool ReserveProducts(this Basket basket, UwtContext db)
 {
     // Check if there are enough products available
     if (basket != null && basket.BasketItems.Any() && !basket.BasketItems.Any(b => b.Product.Count < b.Amount))
     {
         // Remove products from inventory
         basket.BasketItems.ForEach(b => b.Product.Count -= b.Amount);
         return(true);
     }
     return(false);
 }
Пример #4
0
        public bool Dismiss()
        {
            string userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var messages = db.Messages.Where(m => m.Reciever.Id == userId && m.DateRecieved > DateTime.UtcNow).ToList();
                messages.ForEach(m => m.DateRecieved = DateTime.UtcNow);
                db.SaveChanges();
            }
            return(true);
        }
Пример #5
0
 public static Image CreateUserImage(this UwtContext db, HttpPostedFileBase newImage, HttpServerUtilityBase server, User user)
 {
     if (newImage != null)
     {
         var image = db.CreateUserImage(newImage, server);
         image.Owner       = user;
         image.UserProfile = user;
         return(image);
     }
     return(db.Images.FirstOrDefault(i => i.Path == DefaultProfileImage));
 }
Пример #6
0
 public static Image CreateUserImage(this UwtContext db, HttpPostedFileBase image, HttpServerUtilityBase server)
 {
     if (image == null || image.ContentLength == 0)
     {
         // Use default image
         return(db.Images.FirstOrDefault(i => i.Path == DefaultProfileImage));
     }
     return(new Image {
         DateCreated = DateTime.UtcNow, Path = image.SaveUploadedImage(server)
     });
 }
Пример #7
0
        //
        // GET: /Manage/Index
        public ActionResult Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage = message.ToMessageString();
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var user  = db.Users.Find(userId);
                var model = user.ToIndexViewModel();
                return(View(model));
            }
        }
Пример #8
0
        public static Shop GetShop(this Invoice invoice, UwtContext db)
        {
            var basketItem = invoice.Basket.BasketItems.FirstOrDefault();

            if (basketItem == null)
            {
                return(null);
            }

            var shopId = basketItem.Product.Shop.Id;

            return(db.Shops.IncludeAll().FirstOrDefault(s => s.Id == shopId));
        }
Пример #9
0
        public ActionResult EditPageStyle(int id)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var pageStyle = db.PageStyles.IncludeAll().Filter(userId).FirstOrDefault(ps => ps.Id == id);
                if (pageStyle == null)
                {
                    return(HttpNotFound());
                }
                return(View(Mapper.Map <PageStyleViewModel>(pageStyle)));
            }
        }
Пример #10
0
 public bool UnblockUser(string email)
 {
     using (var db = new UwtContext())
     {
         var user = db.Users.FirstOrDefault(u => u.Email == email);
         if (user != null && user.IsBlocked())
         {
             user.Unblock();
             db.SaveChanges();
             return(true);
         }
     }
     return(false);
 }
Пример #11
0
        public ActionResult Index(int shop, string deliveryaddress, string deliveryperson)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var basket = db.GetCurrentBasket(userId, shop);
                if (basket != null)
                {
                    basket.DeliveryAddress = deliveryaddress;
                    basket.DeliveryPerson  = deliveryperson;
                    db.SaveChanges();
                }
                return(RedirectToAction("Index", new { shop = shop }));
            }
        }
Пример #12
0
        public ActionResult CreateCategory(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var myShop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop);
                if (myShop == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.ShopName = myShop.Name;
                ViewBag.ShopId   = myShop.Id;
                return(View());
            }
        }
Пример #13
0
        public static Image AddUploadedImage(this UwtContext db, HttpPostedFileBase image, HttpServerUtilityBase server, string userId)
        {
            if (image == null || image.ContentLength == 0)
            {
                return(null);
            }
            var img = new Image
            {
                DateCreated = DateTime.UtcNow,
                Path        = SaveUploadedImage(image, server),
                Owner       = db.Users.FirstOrDefault(u => u.Id == userId)
            };

            db.Images.Add(img);
            return(img);
        }
Пример #14
0
        public ActionResult Discounts(int id)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var shop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == id);
                if (shop == null)
                {
                    return(HttpNotFound());
                }

                var model = Mapper.Map <ShopDiscountModel>(shop);
                return(View(model));
            }
        }
Пример #15
0
        public ActionResult Products(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var myShop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop);
                if (myShop == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.ShopName = myShop.Name;
                ViewBag.ShopId   = myShop.Id;
                var products = db.Products.Filter(userId, myShop.Id).ToList().Select(Mapper.Map <ProductViewModel>).ToList();
                return(View(products));
            }
        }
Пример #16
0
        public ActionResult Invoice(int id)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var invoice = db.Invoices.FilterByShopOwner(userId).IncludeAll().FirstOrDefault(i => i.Id == id);
                if (invoice == null)
                {
                    return(HttpNotFound());
                }

                ViewBag.ShopId = invoice.GetShop(db).Id;
                var model = Mapper.Map <InvoiceViewModel>(invoice);
                return(View(model));
            }
        }
Пример #17
0
        public ActionResult EditCategory(int shop, int id)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var myShop   = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop);
                var category = db.Categories.IncludeAll().Filter(userId, shop).FirstOrDefault(c => c.Id == id);
                if (myShop == null || category == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.ShopName = myShop.Name;
                ViewBag.ShopId   = myShop.Id;
                ViewBag.Products = category.Products.Select(Mapper.Map <ProductViewModel>).ToList();
                return(View(Mapper.Map <CategoryViewModel>(category)));
            }
        }
Пример #18
0
        public ActionResult CreateShop()
        {
            string userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var pageStyles  = db.PageStyles.Filter(userId).ToList();
                var pageLayouts = db.PageLayouts.ToList();
                ViewBag.PageStyles = pageStyles.Select(i => new SelectListItem {
                    Text = i.Name, Value = i.Id.ToString()
                });
                ViewBag.PageLayouts = pageLayouts.Select(i => new SelectListItem {
                    Text = i.Name, Value = i.Id.ToString()
                });
            }
            return(View());
        }
Пример #19
0
        public ActionResult Index(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var basket = db.GetCurrentBasket(userId, shop);
                if (basket != null)
                {
                    ViewBag.Shop = Mapper.Map <ShopViewModel>(db.Shops.FirstOrDefault(s => s.Id == shop));
                    var model = Mapper.Map <BasketViewModel>(basket);
                    model.BasketItems.ForEach(i => i.Product.Image = i.Product.Image.Replace("~", ""));
                    return(View(model));
                }
                return(HttpNotFound());
            }
        }
Пример #20
0
 public ActionResult CreateLayout(PageLayoutViewModel model, HttpPostedFileBase layout)
 {
     if (ModelState.IsValid && layout != null)
     {
         using (var db = new UwtContext())
         {
             var userId     = User.Identity.GetUserId();
             var pageLayout = Mapper.Map <PageLayout>(model);
             pageLayout.DateCreated = DateTime.UtcNow;
             pageLayout.Owner       = db.Users.FirstOrDefault(u => u.Id == userId);
             pageLayout.Layout      = layout.SaveUploadedLayout(Server);
             db.PageLayouts.Add(pageLayout);
             db.SaveChanges();
         }
         return(RedirectToAction("PageLayouts"));
     }
     return(View(model));
 }
Пример #21
0
        public ActionResult CreateProduct(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var myShop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop);
                if (myShop == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.ShopName   = myShop.Name;
                ViewBag.ShopId     = myShop.Id;
                ViewBag.Categories = new MultiSelectList(db.Categories.Filter(userId, myShop.Id).ToList().Select(c => new SelectListItem {
                    Text = c.Name, Value = c.Id.ToString()
                }).ToArray(), "Value", "Text");
                return(View());
            }
        }
Пример #22
0
        public ActionResult Index(int id)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var shop = db.Shops.FirstOrDefault(s => s.Id == id);
                if (shop == null)
                {
                    return(HttpNotFound());
                }

                var invoices = db.Invoices.IncludeAll().Filter(userId, id).ToList();
                var model    = invoices.Select(Mapper.Map <InvoiceViewModel>).ToList();
                ViewBag.Shop = Mapper.Map <ShopViewModel>(shop);
                return(View(model));
            }
        }
Пример #23
0
        public int BuyBasket(int shop)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var basket = db.GetCurrentBasket(userId, shop);
                if (!basket.ReserveProducts(db))
                {
                    return(0);
                }
                var invoice = new Invoice {
                    Basket = basket, DateCreated = DateTime.UtcNow
                };
                db.Invoices.Add(invoice);
                db.SaveChanges();
                return(invoice.Id);
            }
        }
Пример #24
0
 public ActionResult EditPageStyle(PageStyleViewModel model, HttpPostedFileBase imglogo, HttpPostedFileBase imgbackground, HttpPostedFileBase imgnav, HttpPostedFileBase imgfooter)
 {
     if (ModelState.IsValid)
     {
         var userId = User.Identity.GetUserId();
         using (var db = new UwtContext())
         {
             var pageStyle = db.PageStyles.IncludeAll().Filter(userId).FirstOrDefault(ps => ps.Id == model.Id);
             if (pageStyle == null)
             {
                 return(HttpNotFound());
             }
             pageStyle.Update(model, imglogo, imgbackground, imgnav, imgfooter, Server);
             db.SaveChanges();
         }
         return(RedirectToAction("EditPageStyle", "Merchant", new { model.Id }));
     }
     return(View(model));
 }
Пример #25
0
 public ActionResult CreatePageStyle(PageStyleViewModel model, HttpPostedFileBase imglogo, HttpPostedFileBase imgbackground, HttpPostedFileBase imgnav, HttpPostedFileBase imgfooter)
 {
     if (ModelState.IsValid)
     {
         var pageStyle = Mapper.Map <PageStyle>(model);
         var userId    = User.Identity.GetUserId();
         using (var db = new UwtContext())
         {
             pageStyle.Logo            = db.AddUploadedImage(imglogo, Server, userId);
             pageStyle.BackgroundImage = db.AddUploadedImage(imgbackground, Server, userId);
             pageStyle.NavImage        = db.AddUploadedImage(imgnav, Server, userId);
             pageStyle.FooterImage     = db.AddUploadedImage(imgfooter, Server, userId);
             pageStyle.Owner           = db.Users.FirstOrDefault(u => u.Id == userId);
             pageStyle.DateCreated     = DateTime.UtcNow;
             db.PageStyles.Add(pageStyle);
             db.SaveChanges();
         }
         return(RedirectToAction("PageStyles"));
     }
     return(View(model));
 }
Пример #26
0
 public ActionResult Index(IndexViewModel model, HttpPostedFileBase image)
 {
     if (ModelState.IsValid)
     {
         var userId = User.Identity.GetUserId();
         using (var db = new UwtContext())
         {
             var user = db.Users.Find(userId);
             user.Name        = model.Name;
             user.Surname     = model.Surname;
             user.Address     = model.Address;
             user.PhoneNumber = model.PhoneNumber;
             if (image != null)
             {
                 db.Images.Add(db.CreateUserImage(image, Server, user));
             }
             db.SaveChanges();
         }
         return(RedirectToAction("Index"));
     }
     return(View(model));
 }
Пример #27
0
        public bool UpdateBasketAmount(int product, int newAmount)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var dbProduct = db.Products.IncludeAll().FirstOrDefault(p => p.Id == product);
                if (dbProduct == null)
                {
                    return(false);
                }

                var basket = db.GetCurrentBasket(userId, dbProduct.Shop.Id);
                var item   = basket.BasketItems.FirstOrDefault(i => i.Product.Id == product);
                if (item == null)
                {
                    return(false);
                }
                item.Amount = newAmount;
                db.SaveChanges();
                return(true);
            }
        }
Пример #28
0
 public ActionResult Index(int?id, int?category, string search)
 {
     using (var db = new UwtContext())
     {
         var shop = db.Shops.FirstOrDefault(s => s.Id == id);
         if (shop == null)
         {
             var shops = db.Shops.ToList().Select(Mapper.Map <ShopViewModel>).ToList();
             return(View(shops));
         }
         var model    = Mapper.Map <ShopViewModel>(shop);
         var products = db.Products.Filter(model.Id).Where(p => category == null || p.Categories.FirstOrDefault(c => c.Id == category) != null).ToList().Select(Mapper.Map <ProductViewModel>).ToList();
         if (User.Identity.IsAuthenticated)
         {
             var userId = User.Identity.GetUserId();
             products.ForEach(p => p.InBasket    = p.InBasket(userId, shop.Id));
             ViewBag.BasketItemsCount            = db.GetCurrentBasket(userId, shop.Id).BasketItems.Count;
             products.ForEach(p => p.MessageSent = db.Messages.Any(m => m.Sender.Id == userId && m.Product.Id == p.Id && m.DateRecieved > DateTime.UtcNow));
         }
         ViewBag.Products = products;
         return(View("Shop", model));
     }
 }
Пример #29
0
        public async Task <ActionResult> Register(RegisterViewModel model, HttpPostedFileBase image, bool merchant)
        {
            if (ModelState.IsValid)
            {
                Image profileImage;
                using (var db = new UwtContext())
                {
                    profileImage = db.CreateUserImage(image, Server);
                    db.SaveChanges();
                }
                var user = model.ToUser(profileImage);

                try
                {
                    user.Blocked = DateTime.MaxValue;
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        if (merchant)
                        {
                            await UserManager.AddToRoleAsync(user.Id, Roles.Merchant);
                        }
                        await SignInManager.SignInAsync(user, false, false);

                        return(RedirectToAction("Index", "Home"));
                    }
                    AddErrors(result);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
            ViewBag.Merchant = merchant;
            return(View(model));
        }
Пример #30
0
        public ActionResult DesignPreview(int id, int?layoutId, int?styleId)
        {
            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext())
            {
                var dbShop = db.Shops.FirstOrDefault(s => s.Id == id && s.Owner.Id == userId);
                if (dbShop == null)
                {
                    return(HttpNotFound());
                }

                var layout = db.PageLayouts.FirstOrDefault(s => s.Id == layoutId) ?? dbShop.PageLayout;
                var style  = db.PageStyles.FirstOrDefault(s => s.Owner.Id == userId && s.Id == styleId) ?? dbShop.PageStyle;
                if (layout == null || style == null)
                {
                    return(HttpNotFound());
                }

                ViewBag.PageLayout = Mapper.Map <PageLayoutViewModel>(layout);
                ViewBag.PageStyle  = Mapper.Map <PageStyleViewModel>(style);
                return(View(Mapper.Map <ShopViewModel>(dbShop)));
            }
        }