示例#1
0
        public Account LoginWithUserName(LoginWithUserNameRequest loginWithUserNameRequest)
        {
            var userDetail = new Account();

            using (DemsifyEntities dbContext = new DemsifyEntities())
            {
                var user = dbContext.LoginWithUserName(Utility.TrimString(loginWithUserNameRequest.UserName), Utility.TrimString(loginWithUserNameRequest.Password)).FirstOrDefault();
                if (user != null)
                {
                    userDetail.UserId   = user.UserId;
                    userDetail.RoleId   = user.RoleId;
                    userDetail.RoleName = user.RoleName;
                    userDetail.UserName = user.UserName;
                    userDetail.Mobile   = user.Mobile;
                }
                else
                {
                    userDetail = null;
                }
            }
            return(userDetail);
        }
        public IHttpActionResult LoginWithUserName(LoginWithUserNameRequest loginWithUserNameRequest)
        {
            var responses = new Responses();

            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var loginResponse = new LoginResponse();
                var user          = iAccount.LoginWithUserName(loginWithUserNameRequest);
                if (user != null)
                {
                    int userId     = user.UserId;
                    var dateTime   = DateTime.Now.ToString("ddMMyyyyhhmmss");
                    var randomText = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).Substring(1, 12);
                    var token      = string.Format("{0}|{1}|{2}", userId, dateTime, randomText);

                    loginResponse.Token  = Utility.EncryptStringUsingKey(token);
                    loginResponse.RoleId = user.RoleId;

                    #region Log login

                    var loginHistory = new LoginHistory()
                    {
                        LoginFrom   = loginWithUserNameRequest.LoginFrom,
                        UserId      = userId,
                        AccessToken = loginResponse.Token
                    };
                    int resultAddLoginHistory = iLoginHistory.AddLoginHistory(loginHistory);

                    #endregion

                    if (resultAddLoginHistory > 0)
                    {
                        responses.Status      = Utility.SUCCESS_STATUS_RESPONSE;
                        responses.Description = "Login successfully.";
                    }
                    else
                    {
                        responses.Status      = Utility.ERROR_STATUS_RESPONSE;
                        responses.Description = "Error while login.";
                    }
                }
                else
                {
                    responses.Status      = Utility.ERROR_STATUS_RESPONSE;
                    responses.Description = "Invalid username and password.";
                }

                responses.Response = loginResponse;
            }
            catch (Exception ex)
            {
                responses.Status      = Utility.ERROR_STATUS_RESPONSE;
                responses.Description = "Error while login.";

                Utility.WriteLog("LoginWithUserName", loginWithUserNameRequest, "Error while login. (AccountGuestController)", ex.ToString());
            }
            return(Ok(responses));
        }