示例#1
0
 private Vendor GetLoggedInVendor()
 {
     using (var db = new MnyouContext()) {
         var userId = User.Claims.First(c => c.Type == ClaimTypes.PrimarySid).Value;
         return(db.Vendors.First(v => v.VendorId == Int32.Parse(userId)));
     }
 }
示例#2
0
        public IActionResult LogIn(LogInViewModel vm)
        {
            if (User.Identity.IsAuthenticated)
            {
                return(RedirectToAction("Index", "Home"));
            }
            ViewBag.method = Request.Method;

            if (ViewBag.method == "POST")
            {
                using (var db = new MnyouContext()) {
                    var vendor = db.Vendors.FirstOrDefault(v => v.Email == vm.Email && v.Password == vm.Password);
                    if (vendor != null)
                    {
                        LogInVendor(vendor);
                        return(RedirectToAction("Details", new { id = vendor.Slug }));
                    }
                    else
                    {
                        ModelState.AddModelError("base", "Your email address or password could not be found.");
                    }
                }
            }

            return(View(vm));
        }
示例#3
0
        public IActionResult Index()
        {
            List <Vendor> vendors;

            using (var db = new MnyouContext()) {
                vendors = db.Vendors.Take(5).ToList();
            }
            return(View(vendors));
        }
示例#4
0
        public IActionResult Index()
        {
            List <Vendor> vendors;

            using (var db = new MnyouContext()) {
                vendors = db.Vendors.OrderBy(v => v.Name).ToList();
            }
            return(View(vendors));
        }
示例#5
0
        public IActionResult Search(string q)
        {
            ViewBag.SearchString = q;
            List <Vendor> vendors;

            using (var db = new MnyouContext()) {
                vendors = db.Vendors.Where(v =>
                                           v.Name.Contains(q) || v.Bio.Contains(q) || v.City.Contains(q)
                                           ).OrderBy(v => v.Name).ToList();
            }
            return(View(vendors));
        }
示例#6
0
 public IActionResult Create(Vendor vendor)
 {
     ViewBag.method = Request.Method;
     if (ModelState.IsValid)
     {
         using (var db = new MnyouContext()) {
             vendor.GenerateSlug();
             db.Vendors.Add(vendor);
             db.SaveChanges();
         }
         LogInVendor(vendor);
         return(RedirectToAction("ThankYou"));
     }
     return(View(vendor));
 }
示例#7
0
        public IActionResult Details(string id)
        {
            Vendor vendor;

            using (var db = new MnyouContext()) {
                vendor = db.Vendors.FirstOrDefault(v => v.Slug == id);
            }

            if (vendor == null)
            {
                return(RedirectToAction("Index"));
            }

            return(View(vendor));
        }
示例#8
0
        public IActionResult Edit(Vendor postedVendor)
        {
            ViewBag.method = Request.Method;
            var vendor = GetLoggedInVendor();

            vendor.CopyValuesFrom(postedVendor);

            ModelState.Clear();
            TryValidateModel(vendor);

            if (ModelState.IsValid)
            {
                using (var db = new MnyouContext()) {
                    vendor.GenerateSlug();
                    db.Vendors.Update(vendor);
                    db.SaveChanges();
                }
                ModelState.AddModelError("base", "Your changes have been saved.");
            }

            return(View(vendor));
        }
示例#9
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
            loggerFactory.AddDebug();

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseCookieAuthentication(new CookieAuthenticationOptions()
            {
                AuthenticationScheme  = "MyCookieMiddlewareInstance",
                LoginPath             = new PathString("/Vendors/LogIn"),
                AccessDeniedPath      = new PathString("/"),
                AutomaticAuthenticate = true,
                AutomaticChallenge    = true
            });

            using (var context = new MnyouContext()) {
                context.Database.Migrate();
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
        }