public IActionResult Logon([FromBody] AppUserLogon user)
        {
            ServicesResult result    = new ServicesResult();
            var            logonUser = _appUserServices.Get(x => (x.Name.Equals(user.Name) || x.Phone.Equals(user.Name)) && x.Pwd.Equals(user.Pwd)).FirstOrDefault();

            if (logonUser != null && logonUser.Id != 0)
            {
                List <Claim> userClaims = new List <Claim>();
                userClaims.Add(new Claim(ClaimTypes.NameIdentifier, logonUser.Id.ToString()));
                userClaims.Add(new Claim(ClaimTypes.Name, logonUser.Name.ToString()));
                userClaims.Add(new Claim(ClaimTypes.Email, logonUser.Email.ToString()));

                string token = _tokenServices.GenerateToken(userClaims);
                result.Result = 200;
                result.Data   = new { user = new { Id = logonUser.Id, Name = logonUser.Name }, token };
            }
            else
            {
                var count = _appUserServices.Get(x => x.Name.Equals(user.Name) || x.Phone.Equals(user.Name)).Count();
                if (count > 0)
                {
                    result.Result = 201;
                    result.Msg    = "请输入正确的用户名密码";
                }
                else
                {
                    result.Result = 204;
                    result.Msg    = "用户名不存在,请注册";
                }
            }
            return(Ok(result));
        }
        // protected IActionResult ParseResult(ServicesResult result)
        // {
        //     if (result == null)
        //         throw new ArgumentException("Informe um result", "result");

        //     if (result.Success && result.Data == null)
        //         return NoContent();

        //     if (result.Success && result.Data != null)
        //         return Ok(result.Data);

        //     var reponse = new NotOkDefaultReponse
        //     {
        //         Message = result.Error
        //     };

        //     return new ObjectResult(reponse)
        //     {
        //         StatusCode = (int)result.StatusCode
        //     };
        // }

        protected IActionResult ParseResult(ServicesResult result, string actionName = "")
        {
            if (result == null)
            {
                throw new ArgumentException("Informe um result", "result");
            }

            if (!result.Success)
            {
                var reponse = new NotOkDefaultReponse
                {
                    Message = result.Error
                };

                return(new ObjectResult(reponse)
                {
                    StatusCode = (int)result.StatusCode
                });
            }

            if (result.Data == null)
            {
                return(NoContent());
            }

            if (string.IsNullOrWhiteSpace(actionName))
            {
                return(new OkObjectResult(result.Data)
                {
                    StatusCode = (int)result.StatusCode
                });
            }

            //Obter o valor da prop ID
            var idProp = result.Data.GetType().GetProperty("ID");

            if (idProp == null)
            {
                return(NoContent());
            }

            var idValue = idProp.GetValue(result.Data);

            return(CreatedAtAction(actionName, new { id = idValue, version = Request.HttpContext.GetRequestedApiVersion().ToString() }, result.Data));
        }