public async Task <ActionResult> Login(ClsUserLoginModel clsUserLoginModel)
        {
            if (ModelState.IsValid)
            {
                ClsResponseModel <ClsLoginResponse> clsResponse = await this._user.AuthenticateUserAsync(clsUserLoginModel);

                if (clsUserLoginModel.RememberMe)
                {
                    int    timeout   = clsUserLoginModel.RememberMe ? 525600 : 30;
                    var    ticket    = new FormsAuthenticationTicket(clsUserLoginModel.Mobile, clsUserLoginModel.RememberMe, timeout);
                    string encrypted = FormsAuthentication.Encrypt(ticket);
                    var    cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted)
                    {
                        Expires  = System.DateTime.Now.AddMinutes(timeout),
                        HttpOnly = true
                    };
                    Response.Cookies.Add(cookie);
                }
                if (clsResponse.IsSuccess)
                {
                    Session["userId"]       = clsResponse.Data.UserId;
                    Session["businessId"]   = clsResponse.Data.BusinessId;
                    Session["businessName"] = clsResponse.Data.BusinessName;
                    return(RedirectToAction("Index", "Dashboard"));
                }
                else
                {
                    ModelState.AddModelError("", "Invalid username or password provided");
                    return(View());
                }
            }
            else
            {
                return(View());
            }
        }
        public async Task <ClsResponseModel <ClsLoginResponse> > AuthenticateUserAsync(ClsUserLoginModel clsUserModel)
        {
            ClsResponseModel <ClsLoginResponse> clsResponse = new ClsResponseModel <ClsLoginResponse>();
            var parameters = new DynamicParameters();

            parameters.Add("@Mobile", clsUserModel.Mobile);
            parameters.Add("@Password", clsUserModel.Password);
            ClsLoginResponse clsStatus = await _dbContext.QuerySingleAsync <ClsLoginResponse>("Usp_UserLogin", parameters, commandType : CommandType.StoredProcedure);

            if (clsStatus.TypeName == "U")
            {
                clsResponse.IsSuccess = true;
                clsResponse.ErrorCode = 200;
                clsResponse.Message   = "Success";
                clsResponse.Data      = clsStatus;
            }
            else
            {
                clsResponse.IsSuccess = false;
                clsResponse.ErrorCode = 400;
                clsResponse.Message   = "Failed";
            }
            return(clsResponse);
        }