<file_sep>﻿using PaginaTridentto.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace PaginaTridentto.Controllers
{
    public class SeguridadController : Controller
    {

        private string _strMensaje;
        // GET: Seguridad
        public ActionResult Index()
        {
            ViewBag.Error = "";
            ViewBag.mensaje = "";
            return View();
        }

        [HttpPost]
        public ActionResult Index(Usuario modelo)
        {

            /*Validamos si tiene datos para cargar*/

            if (string.IsNullOrEmpty(modelo.StrEmail) & string.IsNullOrEmpty(modelo.StrNombre) & string.IsNullOrEmpty(modelo.StrPassword))
            {
                ViewBag.Error = "Debe de ingresar los datos correctamenta";
            }
            else
            {
                var vc = new Clases.SeguridadDao();


                var res = vc.AddUsuario(modelo, out _strMensaje);



                if (res)
                {
                    ViewBag.mensaje = _strMensaje;
                }
                else
                {
                    ViewBag.Error = _strMensaje;
                }
            }



            return View();
        }

        public ActionResult ValidarUser(string usuario,string password)
        {
            var vc = new Clases.SeguridadDao();
            var datos = vc.ValidarUsuario(usuario, password, out _strMensaje);

            if (datos != null)
            {
                Session["idUsuario"] = datos.Id;
                Session["usuario"] = datos.StrUsuario;
                Session["nombre"] = datos.StrNombre;
                Session["email"] = datos.StrEmail;
                Session["grupo"] = datos.IdGrupo;


                if (datos != null)
                {
                    return Json(new
                    {
                        datos = datos
                    });
                }
                else
                {
                    return Json(new
                    {
                        Error = _strMensaje
                    });
                }
            }
            else
            {
                return Json(new
                {
                    Error = _strMensaje
                });
            }

           

        }

        public ActionResult Cuentas()
        {

            /*Validamos si esta logueado si no lo redireccionamos al login*/


            string usuario = Session["usuario"].ToString();

            if (usuario != "")
            {
                /*Cargamos los paise*/

                

                /*Cargamos Los Departamentos Primero*/

                var vc = new Clases.MaestrosDao();

                var paises = vc.ListaPaises();
                var dpt = vc.ListaDepartamentos();

                ViewData["paises"] = paises;
                ViewData["departamentos"] = dpt;

                ViewBag.usuario = Session["usuario"].ToString();
                ViewBag.nombre = Session["nombre"].ToString();


                return View();
            }
            else
            {
                return RedirectToAction("Index", "Seguridad");
            }

            /*Fin*/


        }
        [HttpPost]
        public ActionResult AddOtrosDatosUsuario(DatosComplemenatriosUsuario modelo)
        {

            var vc = new Clases.MaestrosDao();

            var paises = vc.ListaPaises();
            var dpt = vc.ListaDepartamentos();

            ViewData["paises"] = paises;
            ViewData["departamentos"] = dpt;

            ViewBag.usuario = Session["usuario"].ToString();
            ViewBag.nombre = Session["nombre"].ToString();

            /*Actualizamos la informacion*/

            Int64 idUsuario =Convert.ToInt64(Session["idUsuario"]);

            modelo.IdUsuario = idUsuario;

            var res = vc.AddDatosComplementariosUsuario(modelo, out _strMensaje);

            if (res)
            {
                return Json(new
                {
                    mensaje = _strMensaje

                });
            }
            else
            {
                return Json(new
                {
                    Error = _strMensaje
                });
            }

            
        }

        public ActionResult ConsultaOtrosDatosUsuario(Int64 idUsuario)
        {
            var vc = new Clases.MaestrosDao();

            var datos = vc.ConsultaOtrosDatosUsuario(idUsuario);

            if (datos != null)
            {
                return Json(new
                {
                    xdato = datos
                });
            }
            else
            {
                return Json(new
                {
                    xdato = string.Empty
                });
            }
        }

        public ActionResult CambioPassword()
        {
            return View();
        }

        [HttpPost]
        public ActionResult CambioPassword(string passNew,string passConfirmar)
        {
            var vc = new Clases.SeguridadDao();

            var validar = passNew.Equals(passConfirmar);
            if (!validar)
            {
                return Json(new
                {
                    Error = "Los dos Pasword no coinciden"
                });
            }
            else
            {
                Int64 idUsuario = Convert.ToInt64(Session["idUsuario"]);

                var res = vc.CambioPassword(idUsuario, passNew, out _strMensaje);

                if (res)
                {
                    return Json(new
                    {
                        mensaje = _strMensaje
                    });
                }
                else
                {
                    return Json(new
                    {
                        Error = _strMensaje
                    });
                }
            }

         
            
        }

        public ActionResult Direcciones()
        {

            return View();
        }

        public ActionResult OrdenesUsuario()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Ciudades(int id)
        {
            var vc = new Clases.MaestrosDao();

            var lista = vc.ListaCiudades(id);
            if (lista != null)
            {
                return Json(new
                {
                    xlista=lista
                });
            }
            else
            {
                return Json(new
                {
                    Error = "No hay datos para cargar"
                });
            }
        }
    }
}<file_sep>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Models
{
    public class pedidos_modelo
    {

    }

    public class Pagos
    {
        public int merchantId { get; set; }

        /*Numero de la Factura o cedula del comprador*/
        public string referenceCode { get; set; }
        public string description { get; set; }

        /*Valor de la comra*/
        public double amount { get; set; }

        /*Iva*/
        public int tax { get; set; }

        /*Base para liquidar el iva*/
        public double taxReturnBase { get; set; }

        /*Llave Publica*/
        public string signature { get; set; }

        public int accountId { get; set; }

        /*Moneda*/
        public string currency { get; set; }

        /*Nombre del comprador*/
        public string buyerFullName { get; set; }

        /*Email*/
        public string buyerEmail { get; set; }

        /*Direccion de entrega de la mercancia*/
        public string shippingAddress { get; set; }

        /*Ciudad de Entrega*/
        public string shippingCity { get; set; }

        /*Pais de Entrega*/
        public string shippingCountry { get; set; }

        /*Telefono del Comprador*/
        public string telephone { get; set; }


    }

}
<file_sep>﻿using MySql.Data.MySqlClient;
using PaginaTridentto.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Clases
{
    public class MaestrosDao
    {

        private DataHelper _dataHelper;
        public MaestrosDao()
        {
            _dataHelper = new DataHelper();
        }

        public List<Paises> ListaPaises()
        {
            try
            {
                var dt = _dataHelper.EjecutarSp<DataTable>("ma_spListaPaises", null);

                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        var lista = new List<Paises>();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            lista.Add(new Paises { Id = Convert.ToInt16(dt.Rows[i]["id"]), StrNombre = dt.Rows[i]["strNombre"].ToString() });

                        }

                        return lista;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            catch (Exception)
            {

                return null;
            }
        }

        public List<Departamentos> ListaDepartamentos()
        {
            try
            {
                var dt = _dataHelper.EjecutarSp<DataTable>("ma_spListaDepartamentos", null);

                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        var listado = new List<Departamentos>();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            listado.Add(new Departamentos { Id = Convert.ToInt16(dt.Rows[i]["id"]), StrNombre = dt.Rows[i]["strNombre"].ToString() });

                        }

                        return listado;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            catch (Exception)
            {

                return null;
            }
        }


        public List<Ciudades> ListaCiudades(int idDepartamento)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("dtp",idDepartamento)
                };

                var dt = _dataHelper.EjecutarSp<DataTable>("ma_spCiudades", parametros);

                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        var lista = new List<Ciudades>();

                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            lista.Add(new Ciudades { Id = Convert.ToInt16(dt.Rows[i]["id"]),IdDepartamento= Convert.ToInt16(dt.Rows[i]["iddpt"]),StrNombre=dt.Rows[i]["strNombre"].ToString() });


                        }

                        return lista;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    return null;
                }
            }
            catch (Exception)
            {

                return null;
            }
        }

        public bool AddDatosComplementariosUsuario(DatosComplemenatriosUsuario modelo,out string strMensaje)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("usuario",modelo.IdUsuario),
                    new MySqlParameter("pais",modelo.IdPais),
                    new MySqlParameter("departamento",modelo.IdDepartamento),
                    new MySqlParameter("ciudad",modelo.IdCiudad),
                    new MySqlParameter("telefono",modelo.StrTelefono),
                    new MySqlParameter("mobil",modelo.StrMobil)
                };

                var mensaje = new MySqlParameter("mensaje", MySqlDbType.VarChar, 100) { Direction = ParameterDirection.Output };
                var log_respuesta = new MySqlParameter("log_respuesta", MySqlDbType.Bit) { Direction = ParameterDirection.Output };

                parametros.Add(mensaje);
                parametros.Add(log_respuesta);

                var res = _dataHelper.EjecutarSp<int>("sg_spAddDatosComplementariosUsuario", parametros);

                if (res >= 0)
                {
                    strMensaje = mensaje.Value.ToString();
                    return Convert.ToBoolean(log_respuesta.Value);
                }
                else
                {
                    strMensaje = "No hay conexion con el servidor";
                    return false;
                }


            }
            catch (Exception ex)
            {

                strMensaje = ex.Message;
                return false;
            }
        
        }

        public DatosComplemenatriosUsuario ConsultaOtrosDatosUsuario(Int64 idUsuario)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("usuario",idUsuario)
                };

                var dt = _dataHelper.EjecutarSp<DataTable>("sg_spConsultaOtros_Datos", parametros);

                if (dt != null)
                {
                    if (dt.Rows.Count > 0) 
                    {

                        var datos = new DatosComplemenatriosUsuario();

                        datos.IdUsuario = Convert.ToInt64(dt.Rows[0]["idUsuario"]);
                        datos.IdPais = Convert.ToInt16(dt.Rows[0]["idPais"]);
                        datos.IdDepartamento = Convert.ToInt16(dt.Rows[0]["idDepartamento"]);
                        datos.IdCiudad = Convert.ToInt16(dt.Rows[0]["idCiudad"]);
                        datos.StrTelefono = dt.Rows[0]["strTelefonoFijo"].ToString();
                        datos.StrMobil = dt.Rows[0]["strMobil"].ToString();

                        return datos;
                    }
                    else
                    {
                        return null;
                    }


                }
                else
                {
                    return null;
                }

            }
            catch (Exception ex)
            {

                return null;
            }
        }
    }
}
<file_sep>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Models
{
    public class Maestros
    {
    }

    public class Paises
    {
        public int Id { get; set; }
        public string StrNombre { get; set; }
    }
    public class Departamentos
    {
        public int Id { get; set; }
        public string  StrNombre { get; set; }
    }

    public class Ciudades
    {
        public int Id { get; set; }
        public int IdDepartamento { get; set; }
        public string StrNombre { get; set; }

    }

    public class DatosComplemenatriosUsuario
    {
        public Int64 IdUsuario { get; set; }
        public int IdPais { get; set; }

        public int IdDepartamento { get; set; }
        public int IdCiudad { get; set; }
        public string StrTelefono { get; set; }
        public string StrMobil { get; set; }

    }
}
<file_sep>﻿using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Clases
{
    public class DataHelper
    {
        private MySqlConnection _connection;
        private bool _connection_open;
        public DataHelper()
        {

        }

        public T EjecutarSp<T>(string spName, List<MySqlParameter> parametros)
        {

            GetConnection();

            try
            {
                var cmd = new MySqlCommand(spName, _connection) { CommandType = System.Data.CommandType.StoredProcedure };
                cmd.CommandTimeout = 0;

                if (parametros != null)
                {
                    cmd.Parameters.AddRange(parametros.ToArray());
                }

                //Validamos el tipo de dato a retornar


                if (typeof(T) == typeof(DataSet))
                {
                    var ds = new DataSet();
                    using (var adapter = new MySqlDataAdapter(cmd))
                    {
                        adapter.Fill(ds);
                    }

                    return (T)(Object)ds;
                }

                if (typeof(T) == typeof(DataTable))
                {
                    var dt = new DataTable();

                    using (var adapter = new MySqlDataAdapter(cmd))
                    {
                        adapter.Fill(dt);
                    }

                    return (T)(Object)dt;
                }

                if (typeof(T) == typeof(MySqlDataReader))
                {
                    var reader = cmd.ExecuteReader();
                    return (T)(Object)reader;
                }

                if (typeof(T) == typeof(int))
                {
                    var entero = cmd.ExecuteNonQuery();
                    return (T)(Object)entero;
                }

                if (typeof(T) == typeof(bool))
                {
                    bool retorno = Convert.ToBoolean(cmd.ExecuteNonQuery());
                    return (T)(Object)retorno;

                }
                else
                {
                    throw new NotSupportedException(string.Format("El tipo {0} no es soportado", typeof(T).Name));
                }




            }
            finally
            {
                if (_connection_open == true)
                {
                    _connection.Close();
                    _connection_open = false;
                }
            }





        }

        private void GetConnection()
        {
            _connection_open = false;

            _connection = new MySqlConnection();

            _connection.ConnectionString = Properties.Settings.Default.conexion_datos;

            if (Open_Local_Connection())
            {
                _connection_open = true;
            }



        }

        private bool Open_Local_Connection()
        {
            try
            {
                _connection.Open();
                return true;
            }
            catch (Exception)
            {

                return false;
            }

        }
    }
}<file_sep>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace PaginaTridentto.Controllers
{
    public class PedidosController : Controller
    {
        // GET: Pedidos
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Pago()
        {
            return View();
        }

        public ActionResult Carro_Compras()
        {
            return View();
        }

        public ActionResult ConfirmarDireccion()
        {
            return View();
        }

        public ActionResult AddProducto()
        {
            return View();
        }
    }
}<file_sep>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace PaginaTridentto.Controllers
{
    public class MaestrosController : Controller
    {
        // GET: Maestros
        public ActionResult Index()
        {
            return View();
        }

        public ActionResult Productos()
        {
            return View();
        }


    }
}<file_sep>﻿using MySql.Data.MySqlClient;
using PaginaTridentto.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Clases
{
    public class SeguridadDao
    {
        private DataHelper _dataHelper;
        public SeguridadDao()
        {
            _dataHelper = new DataHelper();
        }

        public bool AddUsuario(Usuario modelo,out string strMensaje)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("usuario",modelo.StrEmail),
                    new MySqlParameter("password",modelo.StrPassword),
                    new MySqlParameter("nombre",modelo.StrNombre),
                    new MySqlParameter("grupo",5),
                    new MySqlParameter("email",modelo.StrEmail)

                };

                var mensaje = new MySqlParameter("mensaje", MySqlDbType.VarChar, 100) { Direction = ParameterDirection.Output };
                var log_respuesta = new MySqlParameter("log_respuesta", MySqlDbType.Bit) { Direction = ParameterDirection.Output };

                parametros.Add(mensaje);
                parametros.Add(log_respuesta);

                var res = _dataHelper.EjecutarSp<int>("sg_spAddUsuario", parametros);

                if (res >= 0)
                {
                    strMensaje = mensaje.Value.ToString();
                    return Convert.ToBoolean(log_respuesta.Value);
                }
                else
                {
                    strMensaje = "La operación no se pudo realizar no hay conexion xon el servidor";
                    return false;
                }



            }
            catch (Exception ex)
            {
                strMensaje = ex.Message;
                return false;
            }
        }


        public Usuario ValidarUsuario(string usuario,string password,out string strMensaje)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("usuario",usuario),
                    new MySqlParameter("password",<PASSWORD>)
                };

                var dt = _dataHelper.EjecutarSp<DataTable>("sg_spValidar_Usuario", parametros);

                if (dt != null)
                {
                    if (dt.Rows.Count > 0)
                    {
                        var log_respuesta = Convert.ToBoolean(dt.Rows[0]["logRespuesta"]);

                        if (log_respuesta)
                        {
                            var datos = new Usuario();

                            datos.Id = Convert.ToInt64(dt.Rows[0]["id"]);
                            datos.StrUsuario = dt.Rows[0]["strUsuario"].ToString();
                            datos.StrNombre = dt.Rows[0]["strNombre"].ToString();
                            datos.IdGrupo = Convert.ToInt16(dt.Rows[0]["idGrupo"]);
                            datos.StrNombreGrupo = dt.Rows[0]["Nombre_Grupo"].ToString();

                            strMensaje = "";
                            return datos;

                        }
                        else
                        {
                            strMensaje = dt.Rows[0]["Mensaje"].ToString();
                            return null;
                        }
                    }
                    else
                    {
                        strMensaje = "El usuario no existe";
                        return null;
                    }
                }
                else
                {
                    strMensaje = "No hay conexion con el servidor";
                    return null;
                }

            }
            catch (Exception ex)
            {
                strMensaje = ex.Message;
                return null;
            }
        }

        public bool CambioPassword(Int64 idUsuario,string strPassword,out string strMensaje)
        {
            try
            {
                var parametros = new List<MySqlParameter>()
                {
                    new MySqlParameter("usuario",idUsuario),
                    new MySqlParameter("pass",strPassword)
                };

                var mensaje = new MySqlParameter("mensaje", MySqlDbType.VarChar, 100) { Direction = ParameterDirection.Output };
                var log_res = new MySqlParameter("log_respuesta", MySqlDbType.Bit) { Direction = ParameterDirection.Output };

                parametros.Add(mensaje);
                parametros.Add(log_res);

                var res = _dataHelper.EjecutarSp<int>("sg_spCambioPass", parametros);

                if (res >= 0)
                {
                    strMensaje = mensaje.Value.ToString();
                    return Convert.ToBoolean(log_res.Value);
                }
                else
                {
                    strMensaje = "No hay conexion con la base de datos";
                    return false;
                }

            }
            catch (Exception ex)
            {
                strMensaje = ex.Message;
                return false;
               
            }
        }
    }
}
<file_sep>﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace PaginaTridentto.Models
{
    public class Seguridad
    {
    }

    public class Usuario
    {
        public Int64 Id { get; set; }
        public string StrUsuario { get; set; }
        public string StrPassword { get; set; }
        public string StrNombre { get; set; }

        public int IdGrupo { get; set; }

        public string StrNombreGrupo { get; set; }

        public string StrEmail { get; set; }

        public bool LogActivo { get; set; }

        public DateTime DtmFechaCreacion { get; set; }

    }
}
