Ejemplo n.º 1
0
        public static void Seed(DealsContext context)
        {
            var categories = CreateDealCategories(context);
            var merchants = CreateMerchants(context);
            var deals = CreateDeals(context, categories, merchants);
            var users = CreateUsers(context);
            CreateDealOptions(context, deals);
            CreateDealComments(context, deals, users);
            CreateDealImages(context, deals);

            context.SaveChanges();
        }
Ejemplo n.º 2
0
        public ActionResult ExternalLoginConfirmation(RegisterExternalLoginModel model, string returnUrl)
        {
            string provider = null;
            string providerUserId = null;

            if (User.Identity.IsAuthenticated || !OAuthWebSecurity.TryDeserializeProviderUserId(model.ExternalLoginData, out provider, out providerUserId))
            {
                return RedirectToAction("Manage");
            }

            if (ModelState.IsValid)
            {
                // Insert a new user into the database
                using (DealsContext db = new DealsContext())
                {
                    var user = db.UserProfiles.FirstOrDefault(u => u.UserName.ToLower() == model.UserName.ToLower());
                    // Check if user already exists
                    if (user == null)
                    {
                        // Insert name into the profile table
                        db.UserProfiles.Add(new UserProfile { UserName = model.UserName });
                        db.SaveChanges();

                        OAuthWebSecurity.CreateOrUpdateAccount(provider, providerUserId, model.UserName);
                        OAuthWebSecurity.Login(provider, providerUserId, createPersistentCookie: false);

                        return RedirectToLocal(returnUrl);
                    }
                    else
                    {
                        ModelState.AddModelError("UserName", "User name already exists. Please enter a different user name.");
                    }
                }
            }

            ViewBag.ProviderDisplayName = OAuthWebSecurity.GetOAuthClientData(provider).DisplayName;
            ViewBag.ReturnUrl = returnUrl;
            return View(model);
        }
Ejemplo n.º 3
0
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                try
                {
                    WebSecurity.CreateUserAndAccount(model.UserName, model.Password);

                    using (var context = new DealsContext())
                    {
                        var user = new User
                        {
                            Username = model.UserName,
                            EmailAddress = model.UserName
                        };

                        context.Users.Add(user);
                        context.SaveChanges();
                    }

                    WebSecurity.Login(model.UserName, model.Password);

                    return RedirectToAction("Index", "Home");
                }
                catch (MembershipCreateUserException e)
                {
                    ModelState.AddModelError("", ErrorCodeToString(e.StatusCode));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }
Ejemplo n.º 4
0
        // POST api/<controller>
        public HttpResponseMessage Post([FromBody]NewOrderModel newOrder)
        {
            var emailAddress = User.Identity.Name;
            var dealOptionGuid = default(Guid);

            Guid.TryParse(newOrder.DealOptionId, out dealOptionGuid);

            using (var context = new DealsContext())
            {
                var user = context.Users.First(u => u.EmailAddress == emailAddress);
                var dealOption = context.DealOptions.First(d => d.Id == dealOptionGuid);
                var attributes = newOrder.SelectedAttributes
                    .Select(attr=> { return Guid.Parse(attr.Value); })
                    .Select(attr =>
                    {
                        return context.DealAttributes.First(a => a.Id.Equals(attr));
                    });

                var cart = new Cart
                {
                    Id = Guid.NewGuid(),
                    DealOption = dealOption,
                    DealAttributes = attributes.ToList(),
                    Quantity = 1,
                    User = user
                };

                context.Carts.Add(cart);
                context.SaveChanges();
            }

            return Request.CreateResponse(HttpStatusCode.OK);
        }