예제 #1
0
        public async Task <ActionResult> LoadBDokenAccount()
        {
            int id = (int)Session["userID"];

            CertUser addingNewAddress = (from n in db.CertUsers
                                         where n.certUserID == id
                                         select n).SingleOrDefault();

            string filepath = GetFilePath();

            if (filepath == "")
            {
                return(RedirectToAction("Index"));
            }

            addingNewAddress.beternumAddress = BDC.LoadFromKeystore(filepath);
            try
            {
                db.SaveChanges();
                await CheckBDokenBalance();
            }
            catch
            {
                return(RedirectToAction("Index", new { mssg = 2 }));
            }

            return(RedirectToAction("Index", new { mssg = 1 }));
        }
예제 #2
0
        /// <summary>
        /// Método para insetar un usuario de aplicación.
        /// </summary>
        /// <param name="correo"></param>
        /// <param name="pass"></param>
        /// <param name="usuario"></param>
        /// <param name="nombre"></param>
        /// <param name="aPaterno"></param>
        /// <param name="aMaterno"></param>
        /// <param name="fechaNacimiento"></param>
        /// <param name="movil"></param>
        /// <returns></returns>
        public int SetUsuarioAplicacion(string correo, string pass, string usuario, string nombre, string aPaterno, string aMaterno, DateTime fechaNacimiento, string movil, string codigoActivacion)
        {
            CAT_USUARIO_APLICACION objUsuario = new CAT_USUARIO_APLICACION();

            try
            {
                using (var conexion = new BDEntities())
                {
                    objUsuario.CORREO            = correo;
                    objUsuario.CONTRASENA        = pass;
                    objUsuario.USUARIO           = usuario;
                    objUsuario.NOMBRE            = nombre;
                    objUsuario.APELLIDO_PATERNO  = aPaterno;
                    objUsuario.APELLIDO_MATERNO  = aMaterno;
                    objUsuario.FECHA_NACIMIENTO  = fechaNacimiento;
                    objUsuario.MOVIL             = movil;
                    objUsuario.IS_ACTIVO         = false;
                    objUsuario.CODIGO_ACTIVACION = codigoActivacion;
                    objUsuario.FECHA_INGRESO     = DateTime.Now;
                    conexion.CAT_USUARIO_APLICACION.Add(objUsuario);
                    conexion.SaveChanges();
                    return(objUsuario.ID_USUARIO_APLICACION);
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
예제 #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="latitud"></param>
        /// <param name="longitud"></param>
        /// <param name="idNegocio"></param>
        /// <returns></returns>
        public string SetPositionNegocio(double latitud, double longitud, int idNegocio)
        {
            string      r          = string.Empty;
            CAT_NEGOCIO ObjNegocio = null;

            try
            {
                using (var Conexion = new BDEntities())
                {
                    ObjNegocio = Conexion.CAT_NEGOCIO.Where(p => p.ID_NEGOCIO == idNegocio).FirstOrDefault();
                }
                if (ObjNegocio != null)
                {
                    ObjNegocio.LATITUD  = Convert.ToDouble(latitud);
                    ObjNegocio.LONGITUD = Convert.ToDouble(longitud);
                    using (var Conexion = new BDEntities())
                    {
                        Conexion.Entry(ObjNegocio).State = System.Data.Entity.EntityState.Modified;
                        Conexion.SaveChanges();
                        return("S");
                    }
                }
                else
                {
                    return("N");
                }
            }
            catch (Exception)
            {
                return("N");
            }
        }
예제 #4
0
        public JsonResult SaveVideo(Video newVideo)
        {
            int          status       = 0;
            BDEntities   connection   = new BDEntities();
            List <Video> ListOfVideos = connection.Videos.ToList();

            //if(connection.CertUsers.Find.)
            newVideo.userID     = (int)Session["userID"];
            newVideo.viewsCount = 0;


            foreach (Video d in ListOfVideos)
            {
                if (d.filepath == newVideo.filepath)
                {
                    if (d.userID == newVideo.userID)
                    {
                        status = 1;
                    }
                    else
                    {
                        status = 2;
                    }
                    return(Json(status, JsonRequestBehavior.AllowGet));
                }
            }

            connection.Videos.Add(newVideo);
            connection.SaveChanges();

            status = 0;
            return(Json(status, JsonRequestBehavior.AllowGet));
        }
예제 #5
0
        /// <summary>
        /// Método que activa el registro del usuario.
        /// </summary>
        /// <param name="idUsuario"></param>
        /// <returns></returns>
        public object ActivarCuenta(int idUsuario)
        {
            try
            {
                //Incializamos la conexión a través de EntityFramework.
                using (var Conexion = new BDEntities())
                {
                    //Realizamos la consulta en la cual buscamos obtener un registro de un usuario a partir del id del usuario. El resultado lo guardamos en una variable local.
                    CAT_USUARIO_APLICACION obj = Conexion.CAT_USUARIO_APLICACION.Where(x => x.ID_USUARIO_APLICACION.Equals(idUsuario)).FirstOrDefault();

                    //Cambiamos el valor de la propiedad IS_ACTIVO.
                    obj.IS_ACTIVO = true;

                    //Indicamos el estatus del registro a modificado.
                    Conexion.Entry(obj).State = EntityState.Modified;

                    //Ejecutamos el método para guardar los cambios, retornamos el resultado el cual nos indica el número de registros afectados.
                    return(Conexion.SaveChanges());
                }
            }
            catch (Exception)
            {
                //Si ocurre algún error retornamos un nulo.
                return(null);
            }
        }
예제 #6
0
        public JsonResult SaveVideo(Video newVideo)
        {
            BDEntities connection = new BDEntities();

            newVideo.userID     = (int)Session["userID"];
            newVideo.viewsCount = 0;
            connection.Videos.Add(newVideo);
            connection.SaveChanges();

            List <Video> ListOfVideos = connection.Videos.ToList();

            return(Json(newVideo, JsonRequestBehavior.AllowGet));
        }
예제 #7
0
        public async Task <ActionResult> IncrementViewCount(int?id)
        {
            try
            {
                int sid = (int)Session["userID"];

                var result = (from v in db.Videos
                              where v.videoID == id
                              select v).SingleOrDefault();

                var payer = (from p in db.CertUsers
                             where p.certUserID == sid
                             select p).SingleOrDefault();

                var receiver = (from r in db.CertUsers
                                where r.certUserID == result.userID
                                select r).SingleOrDefault();
                BigInteger bal = await BDC.CheckBalance("0xbb79cc5e10fadfa398b7be548c331e2181499ce3", "password");

                BigInteger bal1 = await BDC.CheckBalance("0x2119ad81730f7da63b56d5d4eecc82d26c226db7", "password");

                if (payer.balance < result.price && result.userID != sid)
                {
                    return(RedirectToAction("Index", new { insufficientFunds = 1 }));
                }
                else
                {
                    result.viewsCount++;
                    if (result.userID != sid)
                    {
                        Payment payment = new Payment
                        {
                            videoID         = result.videoID,
                            payer           = payer.certUserID,
                            receiver        = receiver.certUserID,
                            paymentSum      = result.price,
                            paymentDatetime = DateTime.Now
                        };

                        db.Payments.Add(payment);
                        db.SaveChanges();

                        receiver.balance += result.price;
                        payer.balance    -= result.price;

                        await BDC.Transfer("0xbb79cc5e10fadfa398b7be548c331e2181499ce3", "password", "0x2119ad81730f7da63b56d5d4eecc82d26c226db7", 5);
                    }
                    db.SaveChanges();

                    return(RedirectToAction("VideoPlayer", new { id }));
                }
            }
            catch
            {
                return(Redirect("~/Login/Index"));
            }
        }
예제 #8
0
        public IHttpActionResult UpdateProduct(Product pr)
        {
            using (BDEntities entities = new BDEntities())
            {
                if (!string.IsNullOrEmpty(pr.ProductName) && pr.ID > 0)
                {
                    Product product = entities.Products.FirstOrDefault(p => p.ID == pr.ID);
                    product.stock       = pr.stock;
                    product.ProductName = pr.ProductName;
                    entities.SaveChanges();

                    return(Ok(product));
                }
                else
                {
                    return(NotFound());
                }
            }
        }
예제 #9
0
        public JsonResult SaveUser(CertUser newCertUser)
        //public JsonResult SaveUser(CertUser newCertUser)
        {
            int state = 0;

            //string poruka = "amen chao";
            List <CertUser> ListOfUsers = connection.CertUsers.ToList();

            foreach (CertUser d in ListOfUsers)
            {
                if (newCertUser.email == d.email)
                {
                    state = 2;
                    return(Json(state, JsonRequestBehavior.AllowGet));
                }
                else if (newCertUser.username == d.username)
                {
                    state = 1;
                    return(Json(state, JsonRequestBehavior.AllowGet));
                }
            }

            //String password = Membership.GeneratePassword(8, 0);
            String password = Guid.NewGuid().ToString().Substring(0, 8);

            state = MessageSend(newCertUser.email, password, newCertUser.username);

            if (state == 0)
            {
                newCertUser.password        = password;
                newCertUser.beternumAddress = "";
                connection.CertUsers.Add(newCertUser);
                connection.SaveChanges();
            }
            else
            {
                state = 3;
                return(Json(state, JsonRequestBehavior.AllowGet));
            }


            return(Json(state, JsonRequestBehavior.AllowGet));
        }
예제 #10
0
        /// <summary>
        /// Método en el cual se asigna un taxista a un pedido. Aun no se da como aceptado.
        /// </summary>
        /// <param name="idNegocio"></param>
        /// <param name="idPedido"></param>
        public void SetOperadorServicio(int idNegocio, int idPedido)
        {
            try
            {
                using (var Conexion = new BDEntities())
                {
                    PEDIDOS pedido = Conexion.PEDIDOS.Where(x => x.ID_PEDIDO == idPedido).FirstOrDefault();

                    pedido.ID_NEGOCIO_ASIGNADO = idNegocio;

                    //Asignamos el estatus #6 que representa el estatus "SIN ASIGNAR"
                    pedido.ESTATUS = 6;

                    Conexion.SaveChanges();
                }
            }
            catch (Exception)
            {
            }
        }
예제 #11
0
        public IHttpActionResult AddNewProduct(Product pr)
        {
            using (BDEntities entities = new BDEntities())
            {
                if (!string.IsNullOrEmpty(pr.ProductName))
                {
                    Product p = new Product();
                    p.stock       = pr.stock;
                    p.ProductName = pr.ProductName;
                    entities.Products.Add(p);
                    entities.SaveChanges();

                    return(Ok(p));
                }
                else
                {
                    return(BadRequest());
                }
            }
        }
예제 #12
0
        /// <summary>
        /// Método que actualiza la fecha inicial del pedido.
        /// </summary>
        /// <param name="idNegocio"></param>
        /// <param name="idPedido"></param>
        /// <returns></returns>
        public int SetFechaInicialPedido(int idNegocio, int idPedido)
        {
            try
            {
                using (var Conexion = new BDEntities())
                {
                    PEDIDOS pedido = Conexion.PEDIDOS.Where(x => x.ID_PEDIDO == idPedido && x.ID_NEGOCIO_ASIGNADO == idNegocio).FirstOrDefault();

                    pedido.FECHA_INICIAL = DateTime.Now;

                    Conexion.Entry(pedido).State = EntityState.Modified;

                    return(Conexion.SaveChanges());
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
예제 #13
0
        /// <summary>
        /// Método que cambia el estatus de un negocio.
        /// </summary>
        /// <param name="idNegocio">Entero que representa el id del negocio.</param>
        /// <param name="estatus">Entero que representa el estatus: 1=Libre, 2=Asignado, 3=Ocupado, 4=No disponible</param>
        /// <returns></returns>
        public int SetCambiarEstatus(int idNegocio, int estatus)
        {
            try
            {
                //Realizamos la conexión a travéz de Entity Framework.
                using (var Conexion = new BDEntities())
                {
                    //Obtenemos el registro.
                    CAT_NEGOCIO obj = Conexion.CAT_NEGOCIO.Where(x => x.ID_NEGOCIO == idNegocio).FirstOrDefault();

                    //Cambiamos el valor al estatus deceado.
                    obj.ESTATUS = estatus;

                    //Ejecutamos el método y retornamos el valor.
                    return(Conexion.SaveChanges());
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
예제 #14
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="calificacion"></param>
        /// <param name="idNegocio"></param>
        /// <param name="comentarios"></param>
        /// <returns></returns>
        public string SetCalificacion(double calificacion, int idNegocio, string comentarios)
        {
            try
            {
                using (var Conexion = new BDEntities())
                {
                    TBL_CALIFICACION_NEGOCIO obj = new TBL_CALIFICACION_NEGOCIO();
                    obj.CALIFICACION = Convert.ToDouble(calificacion);
                    obj.ID_NEGOCIO   = idNegocio;
                    obj.COMETARIOS   = comentarios;
                    obj.FECHA        = DateTime.Now;

                    Conexion.TBL_CALIFICACION_NEGOCIO.Add(obj);
                    Conexion.SaveChanges();
                    return("S");
                }
            }
            catch (Exception)
            {
                return("N");
            }
        }
예제 #15
0
        /// <summary>
        /// Método que agrega un objeto de tipo Negocio a la tabla de negocios.
        /// </summary>
        /// <param name="objNegocio">Objeto que representa el negocio que se requiere insertar.</param>
        /// <returns>Retorna el número de registros insertados. Si se generó algún errror retorna un 0</returns>
        public int SetNegocios(CAT_NEGOCIO objNegocio)
        {
            try
            {
                //Realizamos la conexión a través de Entity Framework.
                using (var Conexion = new BDEntities())
                {
                    //Agregamos el objeto recibido a la tabla.
                    Conexion.CAT_NEGOCIO.Add(objNegocio);

                    //Ejecutamos el método para guardar los cambios, el resultado nos indica cuantos registros se afectaron.
                    int r = Conexion.SaveChanges();

                    return(r);
                }
            }
            catch (Exception)
            {
                //Si se generó algún error retornamos una 0
                return(0);
            }
        }
예제 #16
0
        /// <summary>
        /// Método que actualiza la fecha final de un pedido.
        /// </summary>
        /// <param name="idNegocio"></param>
        /// <param name="idPedido"></param>
        /// <returns></returns>
        public int SetFechaFinalPedido(int idNegocio, int idPedido, double latitudDestino, double longitudDestino)
        {
            try
            {
                using (var Conexion = new BDEntities())
                {
                    PEDIDOS pedido = Conexion.PEDIDOS.Where(x => x.ID_PEDIDO == idPedido && x.ID_NEGOCIO_ASIGNADO == idNegocio).FirstOrDefault();

                    pedido.FECHA_FINAL      = DateTime.Now;
                    pedido.LATITUD_DESTINO  = latitudDestino;
                    pedido.LONGITUD_DESTINO = longitudDestino;

                    Conexion.Entry(pedido).State = EntityState.Modified;

                    return(Conexion.SaveChanges());
                }
            }
            catch (Exception)
            {
                return(0);
            }
        }
예제 #17
0
        /// <summary>
        /// Método que cambia el estatus de un pedido.
        /// </summary>
        /// <param name="idNegocio"></param>
        /// <param name="idPedido"></param>
        /// <param name="estatus"></param>
        /// <returns></returns>
        public int SetCambiarEstatusPedido(int idNegocio, int idPedido, int estatus)
        {
            try
            {
                //Inicializamos la conexión a través de EntityFramework.
                using (var Conexion = new BDEntities())
                {
                    //Realizamos la consulta obteniendo el registro del pedidos.
                    PEDIDOS pedido = Conexion.PEDIDOS.Where(x => x.ID_PEDIDO == idPedido && x.ID_NEGOCIO_ASIGNADO == idNegocio).FirstOrDefault();

                    //Cambiamos el estatus del registro por el recibido en el parámetro.
                    pedido.ESTATUS = estatus;

                    //Ejecutamos el método para guardar los cambios, el resultado no indica el número de registros afectados.
                    return(Conexion.SaveChanges());
                }
            }
            catch (Exception)
            {
                //Si ocurre algún error, retornamos un cero.
                return(0);
            }
        }
예제 #18
0
 /// <summary>
 /// Método para generar un pedido.
 /// </summary>
 /// <param name="latitud">Latitud del usuario</param>
 /// <param name="longitud">Longitud del usuario</param>
 /// <param name="idUsuarioAplicacion">Id de la persona que pide el servicio</param>
 /// <returns>Entero que representa el id del servicio generado.</returns>
 public int SetPedido(double latitud, double longitud, int idUsuarioAplicacion, double latitudDestino, double longitudDestino)
 {
     try
     {
         using (var Conexion = new BDEntities())
         {
             PEDIDOS pedido = new PEDIDOS();
             pedido.ESTATUS               = 6;
             pedido.FECHA_PEDIDO          = DateTime.Now;
             pedido.LATITUD_INICIAL       = latitud;
             pedido.LONGITUD_INICIAL      = longitud;
             pedido.ID_USUARIO_APLICACION = idUsuarioAplicacion;
             pedido.LATITUD_DESTINO       = latitudDestino;
             pedido.LONGITUD_DESTINO      = longitudDestino;
             Conexion.PEDIDOS.Add(pedido);
             Conexion.SaveChanges();
             return(pedido.ID_PEDIDO);
         }
     }
     catch (Exception)
     {
         return(0);
     }
 }
예제 #19
0
        public async Task <ActionResult> IncrementViewCount(int?id, string passphrase)
        {
            try
            {
                int sid = (int)Session["userID"];

                var result = (from v in db.Videos
                              where v.videoID == id
                              select v).SingleOrDefault();

                var payer = (from p in db.CertUsers
                             where p.certUserID == sid
                             select p).SingleOrDefault();

                var receiver = (from r in db.CertUsers
                                where r.certUserID == result.userID
                                select r).SingleOrDefault();

                BigInteger BDWei = 0;
                if (result.price != 0 && result.userID != sid)
                {
                    BDWei = (BigInteger)(result.price * (decimal)Math.Pow(10, 18));

                    if (!(await BDC.CheckRequiredFunds(payer.beternumAddress, "", BDWei)) && result.userID != sid)
                    {
                        return(RedirectToAction("Index", new { sortOrder = "", insufficientFunds = 1 }));
                    }
                }
                result.viewsCount++;
                if (result.userID != sid)
                {
                    try
                    {
                        await BDC.PayUp(payer.beternumAddress, passphrase, receiver.beternumAddress, BDWei);
                    }
                    catch
                    {
                        return(RedirectToAction("Index", new { sortOrder = "", insufficientFunds = 2 }));
                    }
                    Payment payment = new Payment
                    {
                        videoTitle       = result.title,
                        payerUsername    = payer.username,
                        receiverUsername = receiver.username,
                        paymentSum       = result.price,
                        paymentDatetime  = DateTime.Now
                    };
                    db.Payments.Add(payment);
                }
                db.SaveChanges();
                return(RedirectToAction("VideoPlayer", new { id }));
            }
            catch (Exception e)
            {
                if (e.Message == "gas required exceeds allowance or always failing transaction")
                {
                    return(RedirectToAction("Index", new { sortOrder = "", insufficientFunds = 1 }));
                }
                return(Redirect("~/Login/Index"));
            }
        }