public async Task <Response> TienePermisoSwExterno([FromBody] PermisoUsuarioSwExternos permiso)
        {
            try
            {
                var token = await db.Adsctoken.Where(x => x.AdtoToken == permiso.Token && x.AdtoId == permiso.Id && x.AdpsLogin.ToUpper() == permiso.Usuario.ToUpper() && x.AdtoNombreServicio == permiso.NombreServicio).FirstOrDefaultAsync();

                if (token != null)
                {
                    var servicio = await db.Adscswepwd.Where(x => x.AdpsLogin.ToUpper() == permiso.Usuario.ToUpper() && x.AdseSw == permiso.NombreServicio).FirstOrDefaultAsync();

                    if (servicio != null)
                    {
                        return(new Response {
                            IsSuccess = true
                        });
                    }
                }
                return(new Response {
                    IsSuccess = false
                });
            }
            catch (Exception)
            {
                return(new Response {
                    IsSuccess = false
                });
            }
        }
        public async Task <JsonResult> ConsumirSWExterno([FromBody] PermisoUsuarioSwExternos objeto)
        {
            try
            {
                using (HttpClient client = new HttpClient())
                {
                    if (objeto != null)
                    {
                        var uriServicio = db.Adscswext.Where(x => x.AdseSw == objeto.NombreServicio).FirstOrDefaultAsync().Result.AdseUri;
                        var eliminado   = false;
                        if (objeto.parametros == null)
                        {
                            var respuestaGet = await client.GetAsync(new Uri(uriServicio));

                            var resultadoGet = await respuestaGet.Content.ReadAsStringAsync();

                            var respuesta = JsonConvert.DeserializeObject(resultadoGet);
                            eliminado = await EliminarToken(objeto);

                            if (!eliminado)
                            {
                                return(Json(false));
                            }
                            return(Json(respuesta));
                        }

                        var request       = JsonConvert.SerializeObject(objeto.parametros);
                        var content       = new StringContent(request, Encoding.UTF8, "application/json");
                        var respuestaPost = await client.PostAsync(new Uri(uriServicio), content);

                        var resultadoPost = await respuestaPost.Content.ReadAsStringAsync();

                        var resultadoPostD = JsonConvert.DeserializeObject(resultadoPost);

                        ///Eliminar Token de la base de datos
                        ///
                        eliminado = await EliminarToken(objeto);

                        if (!eliminado)
                        {
                            return(Json(false));
                        }

                        return(Json(resultadoPostD));
                    }
                }
            }
            catch (Exception)
            {
                Json(false);
            }
            return(Json(false));
        }
        private async Task <bool> EliminarToken(PermisoUsuarioSwExternos objeto)
        {
            try
            {
                var token = await db.Adsctoken.Where(x => x.AdtoToken == objeto.Token && x.AdpsLogin.ToUpper() == objeto.Usuario.ToUpper()).FirstOrDefaultAsync();

                db.Entry(token).State = EntityState.Deleted;
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public async Task <Response> SalvarTokenSwExternos([FromBody]  PermisoUsuarioSwExternos permisoUsuario)
        {
            try
            {
                var usuario = await db.Adscpassw.Where(x => x.AdpsLogin.ToUpper() == permisoUsuario.Usuario.ToUpper()).FirstOrDefaultAsync();

                if (usuario == null)
                {
                    return(new Response
                    {
                        IsSuccess = false,
                        Message = Mensaje.RegistroNoEncontrado
                    });
                }



                var adsctokenRequest = await db.Adsctoken.Where(x => x.AdpsLogin.ToUpper() == permisoUsuario.Usuario.ToUpper() && x.AdtoNombreServicio == permisoUsuario.NombreServicio).FirstOrDefaultAsync();

                if (adsctokenRequest == null)
                {
                    var adsctoken = new Adsctoken
                    {
                        AdpsLogin          = permisoUsuario.Usuario,
                        AdtoNombreServicio = permisoUsuario.NombreServicio,
                        AdtoToken          = permisoUsuario.Token,
                        AdtoFecha          = DateTime.Now,
                    };
                    db.Adsctoken.Add(adsctoken);
                    await db.SaveChangesAsync();

                    return(new Response
                    {
                        IsSuccess = true,
                        Resultado = adsctoken,
                    });
                }


                var SeleccionarToken = await db.Adsctoken.Where(x => x.AdtoId == adsctokenRequest.AdtoId).FirstOrDefaultAsync();

                db.Adsctoken.Remove(SeleccionarToken);
                await db.SaveChangesAsync();

                var Token = SeleccionarToken;
                Token.AdtoId    = 0;
                Token.AdtoToken = permisoUsuario.Token;
                Token.AdtoFecha = DateTime.Now;
                db.Adsctoken.Add(SeleccionarToken);
                await db.SaveChangesAsync();

                return(new Response
                {
                    IsSuccess = true,
                    Resultado = SeleccionarToken,
                });
            }
            catch (Exception ex)
            {
                await GuardarLogService.SaveLogEntry(new LogEntryTranfer
                {
                    ApplicationName      = Convert.ToString(Aplicacion.SwSeguridad),
                    ExceptionTrace       = ex,
                    LogCategoryParametre = Convert.ToString(LogCategoryParameter.Critical),
                    LogLevelShortName    = Convert.ToString(LogLevelParameter.ERR),
                    Message  = ex.Message,
                    UserName = permisoUsuario.Usuario,
                });

                return(new Response
                {
                    IsSuccess = false,
                    Message = ex.Message,
                });

                throw;
            }
        }