public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false);

            ProviderDBV2Entities db = new ProviderDBV2Entities();


            switch (result)
            {
            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));

            case SignInStatus.Failure:
                ModelState.AddModelError("", "Invalid login attempt. User does not exist. Please register as a new user");
                return(View(model));

            case SignInStatus.Success:
                var queryOne = (from key in db.AspNetUsers
                                where model.Email == key.Email
                                select key.Id).Single();
                var queryThree = (from key in db.AspNetUsers
                                  where key.Id == queryOne
                                  select key.IsProvider).Single();
                if (queryThree.Equals(true))
                {
                    var queryOneA = (from key in db.AspNetUsers
                                     where model.Email == key.Email
                                     select key.Id).Single();
                    var queryFour = (from key in db.Providers
                                     where key.UserName == queryOneA
                                     select key.ProviderID).Single();

                    return(RedirectToAction("Details", "Providers", new { id = queryFour }));
                }
                else
                {
                    var queryOneB = (from key in db.AspNetUsers
                                     where model.Email == key.Email
                                     select key.Id).Single();
                    var queryTwo = (from key in db.Customers
                                    where key.UserName == queryOneB
                                    select key.CustomerID).Single();
                    return(RedirectToAction("Details", "Customers", new { id = queryTwo }));
                }

            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
        public ActionResult CheckAuth()
        {
            string userId           = User.Identity.GetUserId();
            ProviderDBV2Entities db = new ProviderDBV2Entities();
            var queryOne            = (from key in db.AspNetUsers
                                       where userId == key.Id
                                       select key.Id).Single();



            var queryThree = (from key in db.AspNetUsers
                              where key.Id == queryOne
                              select key.IsProvider).Single();

            if (queryThree.Equals(true))
            {
                var queryFour = (from key in db.Providers
                                 where key.UserName == queryOne
                                 select key.ProviderID).Single();

                return(RedirectToAction("Details", "Providers", new { id = queryFour }));
            }
            else
            {
                var queryTwo = (from key in db.Customers
                                where key.UserName == queryOne
                                select key.CustomerID).Single();

                return(RedirectToAction("Details", "Customers", new { id = queryTwo }));
            }
        }