public async Task <IActionResult> Create([Bind("UserName,UserPass,UserEmail,UserAddress,UserTp")] TUser tUser)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    tUser.UserStatus = 1;
                    tUser.ShaEnc();
                    _context.Add(tUser);
                    await _context.SaveChangesAsync();

                    TempData["Message"] = "User registered.";
                    return(RedirectToAction(nameof(Index)));
                }
                catch (Exception ex)
                {
                    if (ex.InnerException.ToString().Contains("Violation of UNIQUE KEY constraint"))
                    {
                        ViewBag.Error = "This email is already used. Please use another email address";
                    }
                    else
                    {
                        ViewBag.Error = "Unable to register this user. Please try agian";
                    }
                    return(View(tUser));
                }
            }

            ViewBag.Error = "Unable to register this user. Please try agian";
            return(View(tUser));
        }
        public async Task <IActionResult> LoginMember([Bind("UserEmail,UserPass")] TUser tUser)
        {
            try
            {
                tUser.ShaEnc();
                var user = await _context.TUsers
                           .FirstOrDefaultAsync(e => e.UserEmail == tUser.UserEmail && e.UserPass == tUser.UserPass && e.UserStatus == 1);

                if (user == null)
                {
                    TempData["Error"] = "Invalid login credentials";
                    return(RedirectToAction("Index"));
                }

                HttpContext.Session.SetString("UName", user.UserName);
                HttpContext.Session.SetString("UEmail", user.UserEmail);
                HttpContext.Session.SetInt32("UID", user.UserId);
                HttpContext.Session.SetString("UType", (bool)user.UserType ? "C" : "A");

                if ((bool)user.UserType)
                {
                    return(RedirectToAction("Index", "Home"));
                }
                else
                {
                    return(RedirectToAction("Index", "Admin"));
                }
            }
            catch (Exception)
            {
                TempData["Error"] = "Error occured during login process. Please try again.";
                return(RedirectToAction("Index"));
            }
        }