public ActionResult CreateCategory([Bind(Exclude = "Shop")] CategoryViewModel model, int shop, HttpPostedFileBase image) { var userId = User.Identity.GetUserId(); if (ModelState.IsValid) { var category = Mapper.Map <Category>(model); using (var db = new UwtContext()) { var myShop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop); if (myShop == null) { return(HttpNotFound()); } category.Shop = myShop; category.Image = image.AddUploadedImage(Server, db.Users.FirstOrDefault(u => u.Id == userId)); db.Categories.Add(category); db.SaveChanges(); return(RedirectToAction("Categories", "Merchant", new { shop = myShop.Id })); } } 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(model)); }
public ActionResult EditCategory([Bind(Exclude = "Shop")] CategoryViewModel 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); var category = db.Categories.IncludeAll().Filter(userId, shop).FirstOrDefault(c => c.Id == model.Id); if (myShop == null || category == null) { return(HttpNotFound()); } category.Name = model.Name; if (image != null && image.ContentLength > 0) { category.Image = image.AddUploadedImage(Server, db.Users.FirstOrDefault(u => u.Id == userId)); } db.SaveChanges(); return(RedirectToAction("EditCategory", "Merchant", new { shop = myShop.Id, model.Id })); } } 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 == model.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(model)); }
public ActionResult CreateShop(ShopViewModel model) { string userId = User.Identity.GetUserId(); if (ModelState.IsValid) { var shop = Mapper.Map <Shop>(model); using (var db = new UwtContext()) { shop.Owner = db.Users.FirstOrDefault(u => u.Id == userId); shop.DateCreated = DateTime.UtcNow; shop.PageStyle = db.PageStyles.Filter(userId).FirstOrDefault(p => p.Id == model.PageStyle); shop.PageLayout = db.PageLayouts.FirstOrDefault(p => p.Id == model.PageLayout); db.Shops.Add(shop); db.SaveChanges(); } return(RedirectToAction("MyShops")); } 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(model)); }
public ActionResult EditShop(ShopViewModel model) { var userId = User.Identity.GetUserId(); if (ModelState.IsValid) { using (var db = new UwtContext()) { var shop = db.Shops.IncludeAll().Filter(userId).FirstOrDefault(s => s.Id == model.Id); if (shop == null) { return(HttpNotFound()); } var style = db.PageStyles.Filter(userId).FirstOrDefault(s => s.Id == model.PageStyle); var layout = db.PageLayouts.FirstOrDefault(l => l.Id == model.PageLayout); shop.Update(model, style, layout); db.SaveChanges(); } return(RedirectToAction("EditShop", "Merchant", new { model.Id })); } 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(), Selected = i.Id == model.PageStyle }); ViewBag.PageLayouts = pageLayouts.Select(i => new SelectListItem { Text = i.Name, Value = i.Id.ToString(), Selected = i.Id == model.PageLayout }); ViewBag.Invoices = db.Invoices.Filter(model.Id).Filter(DateTime.UtcNow.GetMonth(), DateTime.UtcNow).ToList().Select(Mapper.Map <InvoiceViewModel>).ToList(); } return(View(model)); }
public bool AddToBasket(int product, int shop) { var userId = User.Identity.GetUserId(); using (var db = new UwtContext()) { var dbProduct = db.Products.Filter(shop).FirstOrDefault(p => p.Id == product); if (dbProduct == null) { return(false); } var basket = db.GetCurrentBasket(userId, shop); if (basket.BasketItems.FirstOrDefault(i => i.Product.Id == product) != null) { return(false); } db.BasketItems.Add(new BasketItem() { Amount = 1, Product = dbProduct, UnitPrice = dbProduct.DiscountedPrice(), DiscountedFrom = dbProduct.UnitPrice, Basket = basket }); db.SaveChanges(); return(true); } }
public bool SendMessage(int product, string text) { string userId = User.Identity.GetUserId(); using (var db = new UwtContext()) { var dbProduct = db.Products.IncludeAll().FirstOrDefault(p => p.Id == product); var user = db.Users.FirstOrDefault(u => u.Id == userId); if (dbProduct == null || user == null) { return(false); } var owner = dbProduct.Shop.Owner; var msg = new Message { DateSent = DateTime.UtcNow, DateRecieved = DateTime.MaxValue, Product = dbProduct, Sender = user, Reciever = owner, Text = "I want this" }; db.Messages.Add(msg); db.SaveChanges(); } return(true); }
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); } }
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); }
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); }
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 })); } }
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); } }
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)); }
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)); }
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)); }
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)); }
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); } }
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)); }
public ActionResult CreateProduct([Bind(Exclude = "Shop")] ProductViewModel model, int shop, HttpPostedFileBase image) { var userId = User.Identity.GetUserId(); if (ModelState.IsValid) { var product = Mapper.Map <Product>(model); using (var db = new UwtContext()) { var myShop = db.Shops.Filter(userId).FirstOrDefault(s => s.Id == shop); if (myShop == null) { return(HttpNotFound()); } product.Shop = myShop; product.Image = image.AddUploadedImage(Server, db.Users.FirstOrDefault(u => u.Id == userId)); product.Categories = model.Categories.Select(int.Parse).Select(cid => db.Categories.IncludeAll().Filter(userId, myShop.Id).FirstOrDefault(c => c.Id == cid)).ToList(); product.Views = 0; db.Products.Add(product); db.SaveChanges(); return(RedirectToAction("Products", "Merchant", new { shop = myShop.Id })); } } 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); } return(View(model)); }
public ActionResult Initialize() { using (var db = new UwtContext()) { var roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db)); var userManager = new UserManager <User>(new UserStore <User>(db)); if (!db.Roles.Any()) { roleManager.Create(new IdentityRole { Name = Roles.Admin }); roleManager.Create(new IdentityRole { Name = Roles.Merchant }); db.SaveChanges(); } if (!db.Images.Any()) { db.Images.Add(new Image { DateCreated = DateTime.UtcNow, Path = FilesHelper.DefaultProfileImage }); db.SaveChanges(); } if (!db.Users.Any()) { var defaultProfileImage = db.Images.FirstOrDefault(i => i.Path == FilesHelper.DefaultProfileImage); var user = new User { UserName = "******", Email = "*****@*****.**", ProfileImages = new List <Image> { defaultProfileImage }, Name = "AdminsName", Surname = "AdminsSurname", OwnedImages = new List <Image> { defaultProfileImage }, Blocked = DateTime.MaxValue }; try { var userResult = userManager.Create(user, "123456"); if (userResult.Succeeded) { userManager.AddToRole(user.Id, Roles.Admin); db.SaveChanges(); } } catch (DbEntityValidationException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); } } if (!db.PageLayouts.Any()) { var defaultLayout = new PageLayout { Name = "Osnovni predložak", DateCreated = DateTime.UtcNow, Layout = "DefaultLayout.cshtml", Owner = db.Users.FirstOrDefault(u => u.UserName == "admin") }; db.PageLayouts.Add(defaultLayout); db.SaveChanges(); } } return(HttpNotFound()); }
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)); }