public async Task <ActionResult> PostSlider([FromBody] SliderViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Invalid Data"));
            }
            var slider = new Models.Slider
            {
                CreateDate     = DateTime.Now,
                Description    = viewModel.Description,
                ImageName      = viewModel.ImageName,
                SmallImageName = viewModel.SmallImageName,
                Title          = viewModel.Title,
                IsDelete       = false,
                LastUpdateDate = DateTime.Now,
                Link           = viewModel.Link
            };

            try
            {
                await UnitOfWork.SliderRepository.Insert(slider);

                await UnitOfWork.SaveAsync();
            }
            catch (Exception e)
            {
                throw new Exception("BadRequest INsert");
            }


            return(JsonResponseStatus.Success(viewModel));
        }
        public async Task <IActionResult> LogOut()
        {
            if (User.Identity.IsAuthenticated)
            {
                await HttpContext.SignOutAsync();

                return(JsonResponseStatus.Success());
            }
            return(JsonResponseStatus.Success());
        }
        public async Task <IActionResult> PostUser([FromBody] LoginViewModel login)
        {
            if (ModelState.IsValid)
            {
                var res = await _userService.LoginUser(login);

                switch (res)
                {
                case LoginUserResult.IncorrectData:
                    return(JsonResponseStatus.NotFound());

                case LoginUserResult.NotActivated:
                    return(JsonResponseStatus.Error(new { message = Resources.ErrorMessages.UserNotActivated }));

                case LoginUserResult.Success:
                    var user = await _userService.GetPersonByEmail(login.Email);

                    var secretKy           = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration.GetSection(key: "JWT").GetSection(key: "SecurityKey").Value));
                    var signingCredentials = new SigningCredentials(secretKy, SecurityAlgorithms.HmacSha256);
                    var tokenOptions       = new JwtSecurityToken
                                             (
                        issuer: Configuration.GetSection(key: "JWT").GetSection(key: "ValidIssuer").Value,
                        claims: new List <Claim>
                    {
                        new Claim(ClaimTypes.Name, user.EmailAddress),

                        new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()),
                    },
                        expires: DateTime.Now.AddDays(20),
                        signingCredentials: signingCredentials

                                             );
                    var tokenstring = new JwtSecurityTokenHandler().WriteToken(tokenOptions);


                    return(JsonResponseStatus.Success(new { token = tokenstring, expireTime = 30, firstName = user.FirstName, lastName = user.LastName, userId = user.Id }));
                }
            }
            return(JsonResponseStatus.Error());
        }
        public async Task <IActionResult> Register(RegisterViewModel register)
        {
            if (ModelState.IsValid)
            {
                //var user = new IdentityUser {UserName=register.EmailAddress,Email=register.EmailAddress};
                // var res = await _UserManager.CreateAsync(user,register.Password);
                // if (!res.Succeeded)
                //{
                //    return JsonResponseStatus.Error(returnData: new { status = "Invalid Data" });
                //}
                var res = await _userService.RegisterUser(register);

                switch (res)
                {
                case RegisterUserResult.EmailExist:
                    return(JsonResponseStatus.Error(returnData: new { status = "EmailExist" }));
                }
            }


            return(JsonResponseStatus.Success(returnData: new { status = "Register Succeeded" }));
        }