예제 #1
0
        public IEnumerable <APIUsers.Library.Models.User> GetUsers()
        {
#if false
            List <User> users = new List <User>();
            users.Add(new Models.User()
            {
                CreateDate  = DateTime.Now,
                ID          = 1,
                Name        = "Ramón Gerardo",
                Nick        = "rgatilanov",
                Password    = null,
                accountType = AccountType.Administrator
            });

            users.Add(new Models.User()
            {
                CreateDate  = DateTime.Now,
                ID          = 2,
                Name        = "Juan Perez",
                Nick        = "juan.perez",
                Password    = null,
                accountType = AccountType.Basic,
            });
#endif

            List <APIUsers.Library.Models.User> listUsers = new List <APIUsers.Library.Models.User>();
            var ConnectionStringLocal = _configuration.GetValue <string>("ServidorLocal");
            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                listUsers = User.GetUsers();
            }
            return(listUsers);
        }
        public IEnumerable <ApiProducts.Library.Models.ProductoRes> GetProductsIds(object value)
        {
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");
            var jsonString            = Newtonsoft.Json.JsonConvert.SerializeObject(value);
            List <ApiProducts.Library.Models.ProductoRes> list = new List <ApiProducts.Library.Models.ProductoRes>();

            ApiProducts.Library.Models.Producto objProducto = new ApiProducts.Library.Models.Producto();
            //string json = @"[ {""idPedido"": 1, ""idProducto"": 1, ""cantidad"": 1 }]";
            //Deserialize the data
            var obj = JsonConvert.DeserializeObject <List <ApiProducts.Library.Models.ProductoMinRes> >(value.ToString());

            //Loop thrrouch values and save the details into database
            foreach (ApiProducts.Library.Models.ProductoMinRes p in obj)
            {
                using (IProduct producto = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
                {
                    objProducto = producto.GetProduct(p.Id);

                    list.Add(new ApiProducts.Library.Models.ProductoRes()
                    {
                        Id          = objProducto.Id,
                        Titulo      = objProducto.Titulo,
                        Plataforma  = objProducto.Plataforma,
                        Imagen      = objProducto.Imagen,
                        Imagen2     = objProducto.Imagen2,
                        Imagen3     = objProducto.Imagen3,
                        PrecioVenta = objProducto.PrecioVenta,
                        Edicion     = objProducto.FechaLanzamiento,
                        IdCarrito   = p.IdCarrito
                    });
                }
            }
            return(list);
        }
예제 #3
0
        //public IActionResult Login([FromBody]Models.Login user)
        //{
        //    if (user == null)
        //        return BadRequest("Invalid client request");

        //    //Lógica de consulta a una base de datos
        //    if (user.Nick == "mtwdm" && user.Password == "123123")
        //    {
        //        var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("rgatilanov-2019-mtwdm"));
        //        var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);

        //        var tokeOptions = new JwtSecurityToken(
        //            issuer: "https://userapi2.azurewebsites.net",
        //            audience: "https://userapi2.azurewebsites.net",
        //            claims: new List<System.Security.Claims.Claim>(),
        //            expires: DateTime.Now.AddMinutes(5),
        //           signingCredentials: signinCredentials
        //            );

        //        var tokenString = new JwtSecurityTokenHandler().WriteToken(tokeOptions);
        //        return Ok(new { Token = tokenString });
        //    }

        //    else
        //        return Unauthorized();
        //}
        public Api.Library.Models.User Login([FromBody] Api.Library.Models.UserMin user)
        {
            var ConnectionStringLocal = _configuration.GetValue <string>("ConnectionStringLocal");
            var ConnectionStringAzure = _configuration.GetValue <string>("ConnectionStringAzure");

            using (ILogin Login = Factorizador.CrearConexionServicio(Api.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                Api.Library.Models.User objusr = Login.EstablecerLogin(user.Nick, user.Password);

                if (objusr.ID > 0)
                {
                    var secretKey         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("maestria-mtwdm-2019"));
                    var signinCredentials = new SigningCredentials(secretKey, SecurityAlgorithms.HmacSha256);

                    var tokeOptions = new JwtSecurityToken(
                        issuer: "http://localhost:44308",
                        audience: "http://localhost:44308",
                        claims: new List <System.Security.Claims.Claim>(),
                        expires: DateTime.Now.AddMinutes(5),
                        signingCredentials: signinCredentials
                        );

                    var tokenString = new JwtSecurityTokenHandler().WriteToken(tokeOptions);
                    objusr.JWT = tokenString;
                }
                return(objusr);
            }
        }
예제 #4
0
 public ActionResult <List <User> > GetAllUsers()
 {
     using (ILogin Login = Factorizador.CrearConexionServicio(Api.Library.Models.ConnectionType.MSSQL, ConnectionStringAzure))
     {
         List <Api.Library.Models.User> objusrs = Login.ObtenerUsers();
         return(objusrs);
     }
 }
        public IActionResult InsertOrderDetail(ApiProducts.Library.Models.PedidoCabDet value)
        {
            int id       = 0;
            int idPedido = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");
            var jsonString            = Newtonsoft.Json.JsonConvert.SerializeObject(value);

            int insertCodigo = 0;

            ApiProducts.Library.Models.Producto  objProducto = new ApiProducts.Library.Models.Producto();
            ApiProducts.Library.Models.PedidoCab objPedido   = new ApiProducts.Library.Models.PedidoCab();
            //string json = @"[ {""idPedido"": 1, ""idProducto"": 1, ""cantidad"": 1 }]";
            //Deserialize the data
            //var obj = JsonConvert.DeserializeObject<List<ApiProducts.Library.Models.PedidoCabDet>>(value.ToString());
            //Loop thrrouch values and save the details into database


            using (IOrder Order = Factorizador.CrearConexionServicioOrder(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                idPedido = Order.InsertOrder(value.ClienteId, value.Total, "TC", "");
            }

            foreach (int p in value.ListaProductos)
            {
                using (ICode Code = Factorizador.CrearConexionServicioCode(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
                {
                    insertCodigo = Code.InsertCode(idPedido, p, Functions.RandomCodigo());
                }

                using (IProduct producto = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
                {
                    objProducto = producto.GetProduct(p);
                }

                using (IOrder Order = Factorizador.CrearConexionServicioOrder(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
                {
                    id = Order.InsertDetail(idPedido, p, insertCodigo, 1, objProducto.PrecioVenta);
                }

                using (IOrder order = Factorizador.CrearConexionServicioOrder(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
                {
                    objPedido = order.GetOrder(idPedido);
                }
            }

            if (id > 0)
            {
                return(Ok(new
                {
                    Id = objPedido,
                    Estatus = "success",
                    Code = 200,
                    Msg = "Detalle del pedido insertado correctamente!!"
                }));
            }

            return(NotFound());
        }
예제 #6
0
 public IEnumerable<APIUsers.Library.Models.User> GetUsers()
 {
     List<APIUsers.Library.Models.User> listUsers = new List<APIUsers.Library.Models.User>();
     var ConnectionStringLocal = _configuration.GetValue<string>("ServidorAzure");
     using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal)){
         listUsers = User.GetUsers();
     }
     return listUsers;
 }
예제 #7
0
 public IActionResult GetUserByNick(string nick)
 {
     APIUsers.Library.Models.User user = new APIUsers.Library.Models.User();
     var ConnectionStringLocal = _configuration.GetValue<string>("ServidorAzure");
     using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
     {
         user = User.GetUser(nick);
     }
     return Ok(new { user });
 }
예제 #8
0
 public Boolean UpdateUserDomicilio([FromBody] APIUsers.Library.Models.User value)
 {
     Boolean status;
     var ConnectionStringLocal = _configuration.GetValue<string>("ServidorAzure");
     using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
     {
         status = User.UpdateUser_domicilio(value);
     }
     return status;
 }
예제 #9
0
        public int InsertUser([FromBody] APIUsers.Library.Models.UserMin value)
        {
            int id = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("ServidorLocal");

            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                id = User.InsertUser(value.Nick, Functions.GetSHA256(value.Password));
            }
            return(id);
        }
        public APIUsers.Library.Models.User GetUser(string nick)
        {
            APIUsers.Library.Models.User user = new User();
            var ConnectionStringLocal         = _configuration.GetValue <string>("ServidorLocal");

            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                user = User.GetUser(nick);
            }
            return(user);
        }
        //[Authorize]
        public IEnumerable <ApiProducts.Library.Models.Producto> GetProductsPlataforma(int id)//[FromBody] ApiProducts.Library.Models.ProductoMin value
        {
            List <ApiProducts.Library.Models.Producto> listProducts = new List <ApiProducts.Library.Models.Producto>();
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            using (IProduct product = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                listProducts = product.GetProductsPlataforma(id);
            }
            return(listProducts);
        }
예제 #12
0
        public Boolean DeleteUser(int id)
        {
            Boolean status;

            var ConnectionStringLocal = _configuration.GetValue<string>("ServidorAzure");
            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                status = User.DeleteUser(id);
            }

            return status;
        }
예제 #13
0
 public IActionResult InsertUser([FromBody] APIUsers.Library.Models.UserMin value)
 {
     int id = 0;
     var ConnectionStringLocal = _configuration.GetValue<string>("ServidorAzure");
     using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
     {
         id = User.InsertUser(value);
     }
     if (id != 0) {
         return Ok(id);
     }
     else{
         return BadRequest();
     }
 }
        public IActionResult Revoke()
        {
            var username = User.Identity.Name;
            //var user = userContext.LoginModels.SingleOrDefault(u => u.UserName == username);
            var ConnectionStringLocal = _configuration.GetValue <string>("ServidorLocal");

            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                APIUsers.Library.Models.User user = User.GetUser(username);
                if (user == null)
                {
                    return(BadRequest());
                }
                user.RefreshToken = null;
                //userContext.SaveChanges();
                User.UpdateRefreshToken(user);
                return(NoContent());
            }
        }
        //[Authorize]
        public IActionResult GetProduct(int id)//[FromBody] ApiProducts.Library.Models.CatProductos value
        {
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            //var ConnectionStringAzure = _configuration.GetValue<string>("ConnectionStringAzure");
            using (IProduct producto = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                ApiProducts.Library.Models.Producto objusr = producto.GetProduct(id);

                if (objusr.Id > 0)
                {
                    return(Ok(new
                    {
                        Producto = objusr
                    }));
                }

                return(NotFound());
            }
        }
        public ActionResult <List <Order> > GetOrders()
        {
#if true
            using (IOrder Login = Factorizador.CrearConexionServicio(ConnectionType.MSSQL, ConnectionStringLocal))
            {
                List <Order> objords = Login.GetOrders();
                return(objords);
            }
#endif
            #region Este código es para sacar la ip del cliente que intenta conectarse a sql server en azure
#if false
            List <Order> orders = new List <Order>();
            SqlConexion  sql    = new SqlConexion()
            {
                _conn = new SqlConnection(ConnectionStringAzure)
            };

            try
            {
                sql._conn.Open();
            }
            catch (SqlException sqlEx)
            {
                orders.Add(new Order()
                {
                    ShipAddress = sqlEx.Message,
                });
            }
            catch (Exception ex)
            {
                orders.Add(new Order()
                {
                    ShipAddress = ex.Message,
                });
            }

            return(orders);
#endif
            #endregion
        }
        public IActionResult InsertProduct([FromBody] ApiProducts.Library.Models.CatProductos value)
        {
            int id = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            using (IProduct Product = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                id = Product.InsertProduct(value.Sku, value.Titulo, value.Descripcion, value.IdPlataforma, value.IdGenero, value.idClasificacion, value.Imagen, value.Imagen2, value.Imagen3, value.UrlVideo, value.Costo, value.PrecioVenta, value.Edicion, value.FechaLanzamiento.ToString());

                if (id > 0)
                {
                    return(Ok(new
                    {
                        Id = id,
                        Estatus = "success",
                        Code = 200,
                        Msg = "Producto insertado correctamnete!!"
                    }));
                }
            }

            return(NotFound());
        }
        public IActionResult UpdateImage([FromBody] ApiProducts.Library.Models.Imagen value)
        {
            int id = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            using (IProduct product = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                id = product.UpdateImage(value.Id, value.Campo, value.Ruta);

                if (id > 0)
                {
                    return(Ok(new
                    {
                        Id = value.Id,
                        Estatus = "success",
                        Code = 200,
                        Msg = "Producto actualizado correctamente!!"
                    }));
                }
            }

            return(NotFound());
        }
        public IActionResult DeleteProduct([FromBody] ApiProducts.Library.Models.CatProductos value)
        {
            int id = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            using (IProduct Product = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                id = Product.DeleteProduct(value.Id);

                if (id > 0)
                {
                    return(Ok(new
                    {
                        Id = id,
                        Estatus = "success",
                        Code = 200,
                        Msg = "Producto eliminado correctamnete!!"
                    }));
                }
            }

            return(NotFound());
        }
        public IActionResult InsertProductWishList([FromBody] ApiProducts.Library.Models.WishListMin value)
        {
            int id = 0;
            var ConnectionStringLocal = _configuration.GetValue <string>("CadenaConexion");

            using (IProduct Product = Factorizador.CrearConexionServicio(ApiProducts.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                id = Product.InsertProductWishList(value.IdCliente, value.IdProducto);

                if (id > 0)
                {
                    return(Ok(new
                    {
                        Id = id,
                        Estatus = "success",
                        Code = 200,
                        Msg = "Producto insertado a WishList correctamnete!!"
                    }));
                }
            }

            return(NotFound());
        }
        public IActionResult Refresh(TokenApiModel tokenApiModel)
        {
            if (tokenApiModel is null)
            {
                return(BadRequest("Invalid client request"));
            }
            string accessToken  = tokenApiModel.AccessToken;
            string refreshToken = tokenApiModel.RefreshToken;
            //var principal = tokenService.GetPrincipalFromExpiredToken(accessToken);
            var principal = tokenService.GetPrincipalFromExpiredToken(accessToken, new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetValue <string>("SecretKey"))));
            var username  = principal.Identity.Name; //this is mapped to the Name claim by default
            //En lugar de usar la conexión por contexto, usamos la conexión mediante los servicios ya creados.
            //var user = userContext.LoginModels.SingleOrDefault(u => u.UserName == username);
            //Conexión mediante clase Login
            var ConnectionStringLocal = _configuration.GetValue <string>("ServidorLocal");

            using (IUser User = Factorizador.CrearConexionServicio(APIUsers.Library.Models.ConnectionType.MSSQL, ConnectionStringLocal))
            {
                APIUsers.Library.Models.User user = User.GetUser(username);
                if (user == null || user.RefreshToken != refreshToken || user.RefreshTokenExpiryTime <= DateTime.Now)
                {
                    return(BadRequest("Invalid client request"));
                }
                //var newAccessToken = tokenService.GenerateAccessToken(principal.Claims);
                var newAccessToken  = tokenService.GenerateAccessToken(principal.Claims, new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration.GetValue <string>("SecretKey"))));
                var newRefreshToken = tokenService.GenerateRefreshToken();
                user.RefreshToken = newRefreshToken;
                //userContext.SaveChanges();
                User.UpdateRefreshToken(user);
                return(new ObjectResult(new
                {
                    accessToken = newAccessToken,
                    refreshToken = newRefreshToken
                }));
            }
        }