public IActionResult SignUp(TdUser UserData)
 {
     if (ModelState.IsValid)
     {
         try {
             if (db.TdUser.Where(w => w.UserName == UserData.UserName).Any())
             {
                 return(Json(new { DataResult = new { icon = "error", text = "This User Already exist", title = "Oops!" } }));
             }
             else
             {
                 UserData.Status = "A";
                 var GeneratedKey = genKey.CreateApiKey();
                 UserData.ApiKey = GeneratedKey;
                 db.TdUser.Add(UserData);
                 db.SaveChanges();
                 db.UserInRole.Add(new UserInRole()
                 {
                     RoleName = "User", UserName = UserData.UserName
                 });
                 db.SaveChanges();
                 return(Json(new { DataResult = new { icon = "success", text = "This user was successfully created", title = "Agregado" }, state = 200 }));
             }
         }
         catch (Exception e) {
             return(Json(new { DataResult = new { icon = "error", text = "Somenthing went wrong went trying to create this user, please try again", title = "Oops!" } }));
         }
     }
     else
     {
         return(Json(new { DataResult = new { icon = "error", text = "Somenthing went wrong went trying to create this user, maybe some data is wrong", title = "Oops!" } }));
     }
 }
        public async Task <IActionResult> Login(TdUser UserLoginForm)
        {
            if (ModelState.IsValid)
            {
                if (db.TdUser.Where(a => a.UserName == UserLoginForm.UserName && a.UserPass == UserLoginForm.UserPass && a.Status == "A").ToList().Count() > 0)
                {
                    var DataUser = db.TdUser.Where(w => w.UserName == UserLoginForm.UserName).FirstOrDefault();
                    // Initialization.
                    var claims = new List <Claim>();
                    try
                    {
                        // Setting
                        claims.Add(new Claim(ClaimTypes.Name, UserLoginForm.UserName));
                        var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);
                        var authProperties = new AuthenticationProperties {
                            IsPersistent = false
                        };
                        await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties);

                        return(Json(new { state = 200 }));
                    }
                    catch (Exception ex)
                    {
                        return(Json(new { DataResult = new { icon = "error", text = "Something went wrong trying to login please try again!", title = "Oops!" } }));
                    }
                }
                else
                {
                    return(Json(new { DataResult = new { icon = "error", text = "Username or password are incorrects, please try again!", title = "Oops!" } }));
                }
            }
            else
            {
                return(Json(new { DataResult = new { icon = "error", text = "Maybe is something bad in your User data", title = "Oops!" } }));
            }
        }