Exemplo n.º 1
0
        public async Task <Portable.Models.UwtContext> GetAppContext(string email = "", string password = "")
        {
            // Sign the user in and return null if that isn't possible
            var signInManager = Request.GetOwinContext().Get <UwtSignInManager>();
            var blocked = new LoginViewModel {
                Email = email, Password = password
            }.IsBlocked();

            if (blocked || await signInManager.PasswordSignInAsync(email, password, false, false) != SignInStatus.Success)
            {
                return(new Portable.Models.UwtContext());
            }

            var userId = User.Identity.GetUserId();

            using (var db = new UwtContext()) {
                var context = new Portable.Models.UwtContext {
                    Shops = db.Shops.IncludeAll().Filter(userId).ToList().Select(Mapper.Map <Portable.Models.Shop>).ToArray()
                };
                context.Shops.ForEach(s => s.Categories.ForEach(c => c.Products.ForEach(p =>
                {
                    p.NumberSold = db.Invoices.ProductsSold(p.Id);
                    p.Messages   = db.Messages.Filter(userId, p.Id).ActiveMessages().Count();
                    p.DailySails = db.GetDailySales(p.Id, 10);
                })));
                return(context);
            }
        }
Exemplo n.º 2
0
        public ActionResult ditProduct(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 product = db.Products.IncludeAll().Filter(userId, shop).FirstOrDefault(c => c.Id == id);
                if (myShop == null || product == null)
                {
                    return(HttpNotFound());
                }
                ViewBag.ShopName = myShop.Name;
                ViewBag.ShopId   = myShop.Id;
                var model = Mapper.Map <ProductViewModel>(product);
                model.NumberSold   = db.Invoices.ProductsSold(product.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", model.Categories);
                ViewBag.Sales    = db.GetDailySales(model.Id, 30);
                ViewBag.Messages = db.Messages.Filter(userId, model.Id).ActiveMessages().Count();
                return(View(model));
            }
        }
Exemplo n.º 3
0
        public ActionResult EditProduct([Bind(Exclude = "Shop")] ProductViewModel model, int shop, HttpPostedFileBase image)
        {
            var userId = User.Identity.GetUserId();

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

                    var product = db.Products.IncludeAll().Filter(userId, myShop.Id).FirstOrDefault(c => c.Id == model.Id);
                    if (product == null)
                    {
                        return(HttpNotFound());
                    }
                    product.Title       = model.Title;
                    product.Count       = model.Count;
                    product.Description = model.Description;
                    product.Tags        = model.Tags;
                    product.UnitPrice   = model.UnitPrice;
                    if (model.Categories != null)
                    {
                        product.Categories = model.Categories.Select(int.Parse).Select(cid => db.Categories.IncludeAll().Filter(userId, myShop.Id).FirstOrDefault(c => c.Id == cid)).ToList();
                    }
                    if (image != null && image.ContentLength > 0)
                    {
                        product.Image = image.AddUploadedImage(Server, db.Users.FirstOrDefault(u => u.Id == userId));
                    }
                    model.Image = product.Image.Source();
                    db.SaveChanges();

                    if (product.Count > 0)
                    {
                        // Mark messages as read
                        var messages = db.Messages.IncludeAll().Filter(userId, model.Id).ActiveMessages().ToList();
                        messages.ForEach(m => m.DateRecieved = DateTime.UtcNow);
                        db.SaveChanges();
                    }
                    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", model.Categories);
                }
            }
            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", model.Categories);
                ViewBag.Sales    = db.GetDailySales(model.Id, 30);
                ViewBag.Messages = db.Messages.Filter(userId, model.Id).ActiveMessages().Count();
            }
            return(View(model));
        }