public static ProductoCarro CrearProductoCarro(int?_idProducto, int _idUsuario, int _cantidad, TiendaOnlineContext _db, bool esServicio)
        {
            Usuario     usuario = _db.Usuarios.Where(u => u.Id == _idUsuario).FirstOrDefault();
            Carrocompra miCarro = usuario.CarroCompra.First();

            ProductoCarro existeProdCarro = null;
            Producto      repuesto        = null;
            Servicio      servicio        = null;

            if (esServicio)
            {
                servicio        = _db.Servicios.Where(p => p.Id == _idProducto).FirstOrDefault();
                existeProdCarro = miCarro.ProductosCarro.Where(pc => pc.Servicio.Nombre == servicio.Nombre).FirstOrDefault();
            }
            else
            {
                repuesto        = _db.Productos.Where(p => p.Id == _idProducto).FirstOrDefault();
                existeProdCarro = miCarro.ProductosCarro.Where(pc => pc.Producto.Nombre == repuesto.Nombre).FirstOrDefault();
            }

            if (existeProdCarro != null)
            {
                existeProdCarro.Cantidad += _cantidad;
                if (esServicio)
                {
                    existeProdCarro.Total = 0; //Se debe Cotizar
                }
                else
                {
                    existeProdCarro.Total = repuesto.Precio * existeProdCarro.Cantidad;
                }

                _db.SaveChanges();

                return(existeProdCarro);
            }
            else
            {
                ProductoCarro productoCarro = new ProductoCarro();
                productoCarro.Cantidad = _cantidad;

                if (esServicio)
                {
                    productoCarro.Total    = 0; //Se debe Cotizar
                    productoCarro.Servicio = servicio;
                }
                else
                {
                    productoCarro.Total    = repuesto.Precio * _cantidad;
                    productoCarro.Producto = repuesto;
                }
                productoCarro.CarroCompra = usuario.CarroCompra.First();

                _db.ProductosCarro.Add(productoCarro);

                _db.SaveChanges();

                return(productoCarro);
            }
        }
        public static void CambiarPuntuacion(int id, int iduser, int ratingValue, TiendaOnlineContext _db)
        {
            Producto producto = _db.Productos.Find(id);
            Usuario  usuario  = _db.Usuarios.Find(iduser);

            PuntuacionProducto existePuntuacionUsuario = producto.Puntuaciones.Where(ppto => ppto.Usuario.Id == iduser).FirstOrDefault();

            PuntuacionProducto pp = new PuntuacionProducto();

            pp.Puntuacion = (float)ratingValue;
            pp.Producto   = producto;
            pp.Fecha      = DateTime.Now;
            pp.Usuario    = usuario;

            if (existePuntuacionUsuario != null)
            {
                _db.PuntuacionesProducto.Remove(existePuntuacionUsuario);
                _db.SaveChanges();
            }

            producto.Puntuaciones.Add(pp);
            float total = 0;

            Producto productoAct = _db.Productos.Find(id);

            foreach (var p in productoAct.Puntuaciones)
            {
                total += p.Puntuacion;
            }

            productoAct.PuntuacionActual = total / productoAct.Puntuaciones.Count();

            _db.SaveChanges();
        }
        public static bool EditarProducto(Producto _producto, Tienda _tienda, TiendaOnlineContext _db)
        {
            Producto prod = _tienda.Productos.Where(p => p.Id == _producto.Id).FirstOrDefault();

            if (prod == null)
            {
                return(false);
            }

            Categoria categoria = _db.Categorias.Find(_producto.CategoriaId);

            prod.Nombre        = _producto.Nombre;
            prod.Precio        = _producto.Precio;
            prod.Categoria     = categoria;
            prod.SoloCotizable = _producto.SoloCotizable;
            prod.Descripcion   = _producto.Descripcion;
            prod.Stock         = _producto.Stock;
            prod.Marca         = _producto.Marca;
            prod.Modelo        = _producto.Modelo;
            prod.Year          = _producto.Year;

            _db.SaveChanges();

            return(true);
        }
        public static void EliminarProducto(TiendaOnlineContext _db, Tienda _tienda, int id)
        {
            Producto producto = _tienda.Productos.Where(p => p.Id == id).FirstOrDefault();

            if (producto == null)
            {
                return;
            }

            List <Imagen> imagenesProducto = producto.Imagenes.ToList();

            try
            {
                foreach (Imagen imagen in imagenesProducto)
                {
                    System.IO.File.Delete(imagen.DireccionImagen);
                }
            }
            catch
            {
                //carpeta no existe
            }

            _db.Imagenes.RemoveRange(imagenesProducto);

            _db.Productos.Remove(producto);
            _db.SaveChanges();
        }
示例#5
0
        public static LogoRemitente CrearNuevoLogo(TiendaOnlineContext _db, LogoRemitente _model, int idtienda, HttpPostedFileBase file)
        {
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }

            _model.Nombre = _model.Nombre.Replace("\"", "");

            string nombreImagen = file.FileName;
            Tienda tienda       = _db.Tienda.Where(t => t.Id == idtienda).FirstOrDefault();

            Imagen imagen = new Imagen();
            string path   = Imagen.GuardarImagenEnTienda(tienda, "LogosRemitente", nombreImagen, file);

            if (path != null || !path.Equals("existe"))
            {
                LogoRemitente nuevo = new LogoRemitente();
                nuevo.Nombre        = _model.Nombre;
                nuevo.Tienda        = tienda;
                nuevo.DireccionLogo = path;
                nuevo.NombreImagen  = nombreImagen;

                _db.LogoRemitente.Add(nuevo);

                _db.SaveChanges();

                return(nuevo);
            }
            else
            {
                return(null);
            }
        }
示例#6
0
        public static void EliminarProductoCarroCompra(int?_idProductoCarro, TiendaOnlineContext _db)
        {
            ProductoCarro prodCarro = _db.ProductosCarro.Where(pc => pc.Id == _idProductoCarro).FirstOrDefault();

            _db.ProductosCarro.Remove(prodCarro);
            _db.SaveChanges();
        }
        public static Producto SubirImagenesProducto(List <HttpPostedFileBase> files, TiendaOnlineContext _db, Producto _producto)
        {
            Producto producto = _db.Productos.Where(e => e.Nombre == _producto.Nombre).FirstOrDefault();

            foreach (HttpPostedFileBase file in files)
            {
                Imagen nuevaImagen = new Imagen();
                string filename    = Path.GetRandomFileName() + Path.GetExtension(file.FileName);
                string path        = GuardarImagenEnTienda(_producto.Tienda, "Productos", filename, file);

                if (path != "existe")
                {
                    nuevaImagen.DireccionImagen = path;
                    nuevaImagen.DimensionImagen = ImagenSize.Regular;
                    nuevaImagen.TipoImagen      = ImagenTipo.Producto;
                    nuevaImagen.Producto        = producto;
                    nuevaImagen.NombreImagen    = filename;

                    _db.Imagenes.Add(nuevaImagen);
                    _db.SaveChanges();
                }
            }

            return(producto);
        }
        public static bool EliminarImagen(TiendaOnlineContext _db, int id)
        {
            Imagen imagen = _db.Imagenes.Find(id);

            if (imagen == null)
            {
                return(false);
            }

            imagen.Producto   = null;
            imagen.ProductoId = null;

            imagen.Servicio   = null;
            imagen.ServicioId = null;

            imagen.Tienda   = null;
            imagen.TiendaId = null;

            try
            {
                File.Delete(imagen.DireccionImagen);
            }
            catch
            {
                //carpeta no existe
            }

            _db.Imagenes.Remove(imagen);
            _db.SaveChanges();

            return(true);
        }
        public static string GuardarLogoEnTienda(TiendaOnlineContext _db, Tienda tienda, string carpeta, string nombrefile, string file, ImagenTipo tipoImagen)
        {
            string convertedBase64String = file.Replace("data:image/png;base64,", String.Empty);

            int    tiendaId = tienda.Id;
            string fullPath = "";

            var basePath = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/ImagenesUsers/" + tiendaId + "/" + carpeta));

            if (!File.Exists(basePath))
            {
                Directory.CreateDirectory(basePath);
            }

            fullPath = Path.Combine(System.Web.Hosting.HostingEnvironment.MapPath("~/ImagenesUsers/" + tiendaId + "/" + carpeta), nombrefile);
            try
            {
                if (File.Exists(fullPath))
                {
                    if (ImagenTipo.HeaderTienda == tipoImagen)
                    {
                        EliminarImagen(_db, tienda.ImageHeader.Id);
                    }
                    else if (ImagenTipo.ProfileTienda == tipoImagen)
                    {
                        EliminarImagen(_db, tienda.ImageProfile.Id);
                    }
                }


                Imagen nuevaImagen = new Imagen();

                nuevaImagen.DireccionImagen = fullPath;
                nuevaImagen.DimensionImagen = ImagenSize.Regular;
                nuevaImagen.TipoImagen      = tipoImagen;
                nuevaImagen.Tienda          = tienda;
                nuevaImagen.NombreImagen    = nombrefile;

                if (ImagenTipo.HeaderTienda == tipoImagen)
                {
                    tienda.ImageHeader = nuevaImagen;
                }
                else if (ImagenTipo.ProfileTienda == tipoImagen)
                {
                    tienda.ImageProfile = nuevaImagen;
                }

                _db.Imagenes.Add(nuevaImagen);
                _db.SaveChanges();

                File.WriteAllBytes(fullPath, Convert.FromBase64String(convertedBase64String));
            }
            catch (Exception e)
            {
                String message = e.StackTrace;
                return(null);
            }

            return(fullPath);
        }
        public static bool CrearServicio(Servicio _servicio, Tienda _tienda, TiendaOnlineContext _db)
        {
            Servicio serv = _tienda.Servicios.Where(p => p.Nombre == _servicio.Nombre).FirstOrDefault();

            _tienda.Servicios.Add(_servicio);
            _db.SaveChanges();

            return(true);
        }
示例#11
0
        public static void AgregarProductoAlCarroCompra(int _idUsuario, ProductoCarro _productoCarro, TiendaOnlineContext _db)
        {
            Usuario usuario = _db.Usuarios.Where(u => u.Id == _idUsuario).FirstOrDefault();

            usuario.CarroCompra.First().ProductosCarro = new List <ProductoCarro>(); //SOLO POR AHORA PORQUE SE DUPLICAN LOS ITEMS
            usuario.CarroCompra.First().ProductosCarro.Add(_productoCarro);
            usuario.CarroCompra.First().Total += _productoCarro.Total;

            _db.SaveChanges();
        }
        public static Usuario AgregarCarroCompra(TiendaOnlineContext _db, Usuario _model, Carrocompra _carroCompra)
        {
            Usuario user = _db.Usuarios.Where(u => u.NombreUsuario == _model.NombreUsuario).FirstOrDefault();

            user.CarroCompra.Add(_carroCompra);

            _db.SaveChanges();

            return(user);
        }
示例#13
0
        public static void EliminarComentarioRespuesta(TiendaOnlineContext _db, Comentario _comentario, int _idComentarioRespuesta)
        {
            ComentarioRespuesta comentarioRespuesta = _comentario.ComentariosRespuesta.Where(cr => cr.Id == _idComentarioRespuesta).FirstOrDefault();

            if (comentarioRespuesta == null)
            {
                return;
            }

            _db.ComentarioRespuesta.Remove(comentarioRespuesta);
            _db.SaveChanges();
        }
示例#14
0
        }                                                         //DEBE SER UNA!!!!!!!!!!!!!

        public static Tienda CrearNuevaTienda(TiendaOnlineContext _db, Tienda _model)
        {
            Tienda tienda = new Tienda();

            tienda         = _model;
            tienda.Horario = new List <HorarioTienda>();

            _db.Tienda.Add(tienda);
            _db.SaveChanges();

            return(tienda);
        }
        public static void EliminarComentario(TiendaOnlineContext _db, Servicio _servicio, int _idComentario)
        {
            Comentario comentario = _servicio.Comentarios.Where(p => p.Id == _idComentario).FirstOrDefault();

            if (comentario == null)
            {
                return;
            }

            _db.Comentarios.Remove(comentario);
            _db.SaveChanges();
        }
        public static Vehiculo CrearVehiculo(TiendaOnlineContext _db, string _marca, string _modelo, int _year)
        {
            Vehiculo vehiculo = new Vehiculo();

            vehiculo.Marca  = _marca;
            vehiculo.Modelo = _modelo;
            vehiculo.Year   = _year;

            _db.Vehiculos.Add(vehiculo);
            _db.SaveChanges();

            return(vehiculo);
        }
示例#17
0
        public static Boolean CrearCategoria(TiendaOnlineContext _db, Categoria _categoria)
        {
            //Categoria existe = _db.Categorias.Where(c => c.NombreCategoria == _categoria.NombreCategoria).FirstOrDefault();
            //if (existe != null)
            //{
            //    return false;
            //}

            _db.Categorias.Add(_categoria);
            _db.SaveChanges();

            return(true);
        }
        public static Usuario EditarUsuario(TiendaOnlineContext _db, Usuario _model,
                                            int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales)
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }


            Usuario usuarioAEditar = _db.Usuarios.Find(_model.Id);

            usuarioAEditar.NombreUsuario  = _model.NombreUsuario;
            usuarioAEditar.Nombre         = _model.Nombre;
            usuarioAEditar.Apellido       = _model.Apellido;
            usuarioAEditar.Email          = _model.Email;
            usuarioAEditar.RolUsuario     = _model.RolUsuario;
            usuarioAEditar.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                UsuarioTienda existeAsoc = usuarioAEditar.UsuarioTiendas.Where(ut => ut.Tienda.Id == _tiendaId).FirstOrDefault();

                if (existeAsoc != null)
                {
                    existeAsoc.RolTienda = _rolTienda;
                }
                else
                {
                    Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                    UsuarioTienda ut     = new UsuarioTienda();
                    ut.RolTienda = _rolTienda;
                    ut.Tienda    = tienda;
                    ut.TiendaId  = tienda.Id;

                    _model.UsuarioTiendas.Add(ut);
                }
            }


            _db.SaveChanges();

            return(usuarioAEditar);
        }
示例#19
0
        public static void EliminarTienda(TiendaOnlineContext _db, int _id)
        {
            Tienda tienda = _db.Tienda.Where(t => t.Id == _id).FirstOrDefault();

            List <UsuarioTienda> usuariosTienda            = tienda.UsuariosTienda.ToList();
            List <Usuario>       usuariosParaRemoverTienda = new List <Usuario>();

            foreach (var usTienda in usuariosTienda)
            {
                usuariosParaRemoverTienda.Add(usTienda.Usuario);
            }

            foreach (var u in usuariosParaRemoverTienda)
            {
                u.UsuarioTiendas = null;
            }

            _db.SaveChanges();

            _db.Tienda.Remove(tienda);

            _db.SaveChanges();
        }
示例#20
0
        public static Carrocompra ActualizarProductoEnCarro(int _idUsuario, int _idProducto, int _cantidad, TiendaOnlineContext _db)
        {
            Usuario     usuario = _db.Usuarios.Where(u => u.Id == _idUsuario).FirstOrDefault();
            Carrocompra miCarro = usuario.CarroCompra.First();

            ProductoCarro prodCarro = miCarro.ProductosCarro.Where(pc => pc.Id == _idProducto).FirstOrDefault();

            prodCarro.Cantidad = _cantidad;
            prodCarro.Total    = prodCarro.Producto.Precio * prodCarro.Cantidad;

            _db.SaveChanges();

            return(miCarro);
        }
        public static bool CrearProducto(Producto _producto, Tienda _tienda, TiendaOnlineContext _db)
        {
            Producto prod = _tienda.Productos.Where(p => p.Nombre == _producto.Nombre).FirstOrDefault();

            if (prod != null)
            {
                return(false);
            }

            _tienda.Productos.Add(_producto);
            _db.SaveChanges();

            return(true);
        }
        public static Cotizacion AsociarMecanicoACotizacion(TiendaOnlineContext _db, int idTienda, int idCotizacion, int idUsuarioMecanico)
        {
            Tienda tienda = _db.Tienda.Where(ut => ut.Id == idTienda).FirstOrDefault();

            Cotizacion            cotizacion            = tienda.Cotizaciones.Where(c => c.Id == idCotizacion).FirstOrDefault();
            UsuarioTiendaMecanico usuarioTiendaMecanico = tienda.UsuarioTiendaMecanicos.Where(ust => ust.UsuarioTienda.Usuario.Id == idUsuarioMecanico).FirstOrDefault();

            cotizacion.UsuarioTiendaMecanico = usuarioTiendaMecanico;
            usuarioTiendaMecanico.Cotizaciones.Add(cotizacion);

            _db.SaveChanges();

            return(cotizacion);
        }
示例#23
0
        public static void EliminarLogoRemitente(TiendaOnlineContext _db, LogoRemitente logoRemitente)
        {
            logoRemitente.Tienda       = null;
            logoRemitente.Cotizaciones = new List <Cotizacion>();

            try {
                File.Delete(logoRemitente.DireccionLogo);
            }
            catch {
                //carpeta no existe
            }

            _db.LogoRemitente.Remove(logoRemitente);
            _db.SaveChanges();
        }
        public static bool AumentarStock(int id, int cantidad, Tienda _tienda, TiendaOnlineContext _db)
        {
            Producto prod = _tienda.Productos.Where(p => p.Id == id).FirstOrDefault();

            if (prod == null)
            {
                return(false);
            }

            prod.Stock += cantidad;

            _db.SaveChanges();

            return(true);
        }
        public static Usuario CrearNuevoUsuario(TiendaOnlineContext _db, Usuario _model,
                                                int _tiendaId = 0, UsuarioTienda.RolEnTienda _rolTienda = UsuarioTienda.RolEnTienda.Admin) //opcionales
        {
            if (_model.NombreUsuario != null)
            {
                _model.NombreUsuario = _model.NombreUsuario.ToUpper();
            }
            if (_model.Nombre != null)
            {
                _model.Nombre = _model.Nombre.ToUpper();
            }
            if (_model.Apellido != null)
            {
                _model.Apellido = _model.Apellido.ToUpper();
            }

            Usuario existe = _db.Usuarios.Where(u => u.NombreUsuario == _model.NombreUsuario).FirstOrDefault();

            if (existe != null)
            {
                return(null);
            }


            string pass = PasswordHash.CreateHash(_model.Password);

            _model.Password       = pass;
            _model.NombreCompleto = _model.Nombre + " " + _model.Apellido;

            if (_tiendaId > 0)
            {
                _model.UsuarioTiendas = new List <UsuarioTienda>();

                Tienda        tienda = _db.Tienda.Where(t => t.Id == _tiendaId).FirstOrDefault();
                UsuarioTienda ut     = new UsuarioTienda();
                ut.RolTienda = _rolTienda;
                ut.Tienda    = tienda;
                ut.TiendaId  = tienda.Id;

                _model.UsuarioTiendas.Add(ut);
            }

            _db.Usuarios.Add(_model);
            _db.SaveChanges();


            return(_model);
        }
示例#26
0
        public static Tuple <ComentarioRespuesta, Boolean> EditarComentarioRespuesta(TiendaOnlineContext _db, Comentario _comentario, int _idComentarioRespuesta, string _mensajeEdit)
        {
            ComentarioRespuesta comentarioRespuesta = _comentario.ComentariosRespuesta.Where(cr => cr.Id == _idComentarioRespuesta).FirstOrDefault();

            if (comentarioRespuesta == null)
            {
                return(new Tuple <ComentarioRespuesta, Boolean>(null, false));
            }

            comentarioRespuesta.Mensaje = _mensajeEdit;
            comentarioRespuesta.Fecha   = DateTime.Now;

            _db.SaveChanges();

            return(new Tuple <ComentarioRespuesta, Boolean>(comentarioRespuesta, true));
        }
示例#27
0
        public static Categoria EliminarCategoria(TiendaOnlineContext _db, int id)
        {
            Categoria categoria = _db.Categorias.Find(id);

            foreach (Producto p in categoria.Productos)
            {
                p.Categoria   = null;
                p.CategoriaId = null;
            }

            _db.Categorias.Remove(categoria);

            _db.SaveChanges();

            return(categoria);
        }
        public static Tuple <Comentario, Boolean> EditarComentario(TiendaOnlineContext _db, Producto _producto, int _idComentario, string _mensajeEdit)
        {
            Comentario comentario = _producto.Comentarios.Where(p => p.Id == _idComentario).FirstOrDefault();

            if (comentario == null)
            {
                return(new Tuple <Comentario, Boolean>(null, false));
            }

            comentario.Mensaje = _mensajeEdit;
            comentario.Fecha   = DateTime.Now;

            _db.SaveChanges();

            return(new Tuple <Comentario, Boolean>(comentario, true));
        }
        public static void EliminarComentario(TiendaOnlineContext _db, Producto _producto, int _idComentario)
        {
            Comentario comentario = _producto.Comentarios.Where(p => p.Id == _idComentario).FirstOrDefault();

            if (comentario == null)
            {
                return;
            }

            if (comentario.ComentariosRespuesta.Count > 0)
            {
                _db.ComentarioRespuesta.Remove(comentario.ComentariosRespuesta.First());
            }

            _db.Comentarios.Remove(comentario);
            _db.SaveChanges();
        }
        public static Usuario EliminarUsuario(TiendaOnlineContext _db, int id)
        {
            Usuario usuario = _db.Usuarios.Find(id);

            List <UsuarioTienda> ustEliminar = new List <UsuarioTienda>();

            foreach (UsuarioTienda ut in usuario.UsuarioTiendas)
            {
                ut.Usuario = null;
                ut.Tienda  = null;
                ustEliminar.Add(ut);
            }
            _db.UsuariosTienda.RemoveRange(ustEliminar);

            List <Carrocompra> carrosEliminar = new List <Carrocompra>();

            foreach (Carrocompra carr in usuario.CarroCompra)
            {
                carr.Usuario = null;
                carrosEliminar.Add(carr);
            }
            _db.CarrosCompra.RemoveRange(carrosEliminar);

            List <Comentario> comentariosEliminar = new List <Comentario>();

            foreach (Comentario com in usuario.Comentarios)
            {
                com.Usuario = null;
                comentariosEliminar.Add(com);
            }
            _db.Comentarios.RemoveRange(comentariosEliminar);

            List <PuntuacionProducto> puntuacionesEliminar = new List <PuntuacionProducto>();

            foreach (PuntuacionProducto punt in usuario.Puntuaciones)
            {
                punt.Usuario = null;
                puntuacionesEliminar.Add(punt);
            }
            _db.PuntuacionesProducto.RemoveRange(puntuacionesEliminar);

            _db.Usuarios.Remove(usuario);
            _db.SaveChanges();

            return(usuario);
        }