예제 #1
0
        public ApiResult <UserInfo> Login(UserPostLogin item)
        {
            var result = new ApiResult <UserInfo>();

            try
            {
                DbProvider.SetCommandText2("sp_User_Login", CommandType.StoredProcedure);

                // Input parameter
                DbProvider.AddParameter("Email", item.Email, SqlDbType.NVarChar);

                // Output parameter
                DbProvider.AddParameter("ErrCode", DBNull.Value, SqlDbType.Int, ParameterDirection.Output);
                DbProvider.AddParameter("ReturnMsg", DBNull.Value, SqlDbType.NVarChar, 1000, ParameterDirection.Output);

                // Xử lý thủ tục và kết quả trả về từ DB
                result.Data = DbProvider.ExecuteObject <UserInfo>();
                string errorCode = DbProvider.Command.Parameters["ErrCode"].Value.ToString();
                if (!errorCode.Equals(Constants.SUCCESS))
                {
                    result.Failed(new ErrorObject()
                    {
                        Code        = DbProvider.Command.Parameters["ErrCode"].Value.ToString(),
                        Description = DbProvider.Command.Parameters["ReturnMsg"].Value.ToString()
                    });
                }
            }
            catch (Exception ex)
            {
                result.Failed(new ErrorObject()
                {
                    Code        = Constants.ERR_EXCEPTION,
                    Description = ex.Message
                });
            }

            return(result);
        }
예제 #2
0
        public IHttpActionResult Login(UserPostLogin item)
        {
            var Rs = new ApiResult <UserResult>();

            try
            {
                if (string.IsNullOrEmpty(item.Email))
                {
                    Rs.Failed(new ErrorObject()
                    {
                        Code        = "1",
                        Description = "Chưa nhập Email"
                    });
                }
                if (string.IsNullOrEmpty(item.Password))
                {
                    Rs.Failed(new ErrorObject()
                    {
                        Code        = "2",
                        Description = "Chưa nhập Password"
                    });
                }

                if (Rs.Errors.Count > 0)
                {
                    return(Content(HttpStatusCode.Unauthorized, Rs));
                }
                var Login = userDAL.Login(item);
                if (Login.Succeeded && Login.Data != null)
                {
                    if (Libs.GetMd5(item.Password + EncryptCore.PassKey) != Login.Data.Password)
                    {
                        Rs.Failed(new ErrorObject
                        {
                            Code        = "400",
                            Description = "Sai Mật Khẩu"
                        });
                        return(Content(HttpStatusCode.Unauthorized, Rs));
                    }


                    Random rnd       = new Random();
                    int    RndNumber = rnd.Next(1, 9999);
                    var    TokenCode = "";
                    var    User      = Login.Data;
                    if (User.EmailConfirmed > 0)
                    {
                        TokenCode = EncryptCore.Md5Get(item.Email + User.Id + EncryptCore.PassKey + DateTime.Now.ToString("ddMMyyyyhhmmss") + RndNumber);
                    }
                    else
                    {
                        Rs.Failed(new ErrorObject
                        {
                            Code        = "EMAIL_NOT_CONFIRM",
                            Description = "Email is not comfirmed"
                        });
                    }
                    var UserInf = new UserResult()
                    {
                        Id             = User.Id,
                        Email          = User.Email,
                        AccessToken    = TokenCode,
                        FirstName      = User.FirstName,
                        LastName       = User.LastName,
                        PhoneNumber    = User.PhoneNumber,
                        Address        = User.Address,
                        DistrictCode   = User.DistrictCode,
                        ProvinceCode   = User.ProvinceCode,
                        RoleDesc       = User.RoleDesc,
                        RoleId         = User.RoleId,
                        UserAvatar     = User.UserAvatar,
                        EmailConfirmed = User.EmailConfirmed
                    };
                    CacheUtil.InsertCacheObject(TokenCode, UserInf, 60 * 24 * 30);
                    Rs.Data = UserInf;
                    return(Content(HttpStatusCode.OK, Rs));
                }
                else
                {
                    Rs.Failed(new ErrorObject
                    {
                        Code        = Login.Errors[0].Code,
                        Description = Login.Errors[0].Description
                    });
                    return(Content(HttpStatusCode.BadRequest, Rs));
                }
            }
            catch (Exception ex)
            {
                Rs.Failed(new ErrorObject()
                {
                    Code        = Constants.ERR_EXCEPTION,
                    Description = ex.ToString()
                });
                return(Content(HttpStatusCode.Unauthorized, Rs));
            }
        }