Example #1
0
        public async Task <ActionResult> EditProduct(ProductViewModel product)
        {
            if (ModelState.IsValid)
            {
                var producto = await _db.Productos.Where(p => p.Id_Producto == product.ID)
                               .FirstOrDefaultAsync();

                if (product != null)
                {
                    producto.Id_Producto = product.ID;
                    producto.Nombre      = product.Nombre;
                    producto.Descripcion = product.Descripcion;
                    producto.Precio      = product.Precio;
                    producto.Tipo        = product.Tipo;
                    producto.Descuento   = product.Descuento;
                    producto.Escaparate  = product.Escaparate;
                    string nombreFoto = $"{System.Guid.NewGuid().ToString()}_{product.NombreFoto}";
                    producto.Foto = nombreFoto;

                    if (product.FotoAttachment != null)
                    {
                        var storage = new Persistence.PhotoStorage();
                        await storage.UploadImage(product.FotoAttachment.InputStream, nombreFoto);
                    }

                    _db.Entry(producto).State = EntityState.Modified;
                    await _db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            ViewBag.Tipo = new SelectList(_db.Tipo_Producto, "Id_Tipo", "Descripcion", product.Tipo);
            return(View(product));
        }
Example #2
0
        public async Task <ActionResult> CreateProduct(ProductViewModel model)
        {
            if (ModelState.IsValid)
            {
                if (model.FotoAttachment != null)
                {
                    string nombreFoto = $"{System.Guid.NewGuid().ToString()}_{model.NombreFoto}";
                    var    storage    = new Persistence.PhotoStorage();
                    await storage.UploadImage(model.FotoAttachment.InputStream, nombreFoto);
                }

                _db.Productos.Add(new Productos
                {
                    Id_Producto = model.ID,
                    Nombre      = model.Nombre,
                    Descripcion = model.Descripcion,
                    Precio      = model.Precio,
                    Tipo        = model.Tipo,
                    Descuento   = model.Descuento,
                    Foto        = model.NombreFoto,
                    Escaparate  = model.Escaparate
                });

                await _db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.Tipo = new SelectList(_db.Tipo_Producto, "Id_Tipo", "Descripcion", model.Tipo);
            return(View(model));
        }
Example #3
0
        public async Task <ActionResult> EditUser(ManageViewModel model)
        {
            if (ModelState.IsValid)
            {
                var profile = model.Profile;
                var usuario = await _db.Clientes.Where(c => c.Id_Cliente == profile.UsuarioID)
                              .FirstOrDefaultAsync();

                if (usuario != null)
                {
                    usuario.Nombre           = profile.Nombre;
                    usuario.Apellidos        = profile.Apellidos;
                    usuario.Direccion        = profile.Direccion;
                    usuario.Email            = profile.Email;
                    usuario.Fecha_Nacimiento = profile.FechaNacimiento;
                    usuario.Telefono         = profile.Telefono;
                    usuario.Poblacion        = profile.Poblacíon;
                    string nombreFoto = $"{System.Guid.NewGuid().ToString()}_{profile.NombreFoto}";
                    usuario.Foto = nombreFoto;

                    if (profile.FotoAttachment != null)
                    {
                        var storage = new Persistence.PhotoStorage();
                        await storage.UploadImage(profile.FotoAttachment.InputStream, nombreFoto);
                    }

                    _db.Entry(usuario).State = EntityState.Modified;
                    await _db.SaveChangesAsync();
                }
                return(RedirectToAction("Index", "Home"));
            }
            return(View(model));
        }
Example #4
0
        // GET: EditProduct
        public async Task <ActionResult> EditProduct(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Productos producto = await _db.Productos.FindAsync(id);

            if (producto == null)
            {
                return(HttpNotFound());
            }

            var storage = new Persistence.PhotoStorage();
            Uri uri     = null;

            if (await storage.Exists(producto.Foto))
            {
                uri = await storage.GetBlobUri(producto.Foto);
            }

            var model = new ProductViewModel
            {
                ID          = producto.Id_Producto,
                Nombre      = producto.Nombre,
                Descripcion = producto.Descripcion,
                Precio      = producto.Precio,
                Tipo        = producto.Tipo,
                NombreFoto  = producto.Foto,
                RutaFoto    = uri.AbsoluteUri,
                Descuento   = producto.Descuento,
                Escaparate  = producto.Escaparate
            };

            ViewBag.Tipo = new SelectList(_db.Tipo_Producto, "Id_Tipo", "Descripcion", producto.Tipo);
            return(View(model));
        }
Example #5
0
        // GET: /Manage/Index
        public async Task <ActionResult> Index()
        {
            if (User.IsInRole(KoalaRoles.UserCliente))
            {
                var orders = new List <OrderViewModel>();

                var pedidos = await _db.Pedidos.Include(p => p.Clientes)
                              .Include(l => l.Línea_Pedido).ToListAsync();

                var usuario = await base.GetUser();

                var cliente = await _db.Clientes.Where(c => c.DNI_Cliente == usuario.DNI)
                              .FirstOrDefaultAsync();

                pedidos = pedidos.FindAll(p => p.Cliente == cliente.Id_Cliente);

                foreach (var item in pedidos)
                {
                    var order = new OrderViewModel
                    {
                        Descripcion  = "",
                        NumArticulos = item.Línea_Pedido.Sum(p => p.Cantidad),
                        NumPedido    = item.Id_Pedido,
                        TotalPrecio  = item.Línea_Pedido.Sum(l => l.Precio * l.Cantidad),
                        FechaPedido  = item.Fecha_Pedido,
                    };
                    if (item.Confirmado.HasValue)
                    {
                        order.FechaConfirmado = item.Confirmado.Value;
                        order.Estado          = OrderViewModel.EstadoPedido.Confirmado;
                    }
                    if (item.Cobrado.HasValue)
                    {
                        order.FechaPagado = item.Cobrado.Value;
                        order.Estado      = OrderViewModel.EstadoPedido.Pagado;
                    }
                    if (item.Enviado.HasValue)
                    {
                        order.FechaEnviado = item.Enviado.Value;
                        order.Estado       = OrderViewModel.EstadoPedido.Enviado;
                    }
                    if (item.Recibido.HasValue)
                    {
                        order.FechaRecibido = item.Recibido.Value;
                        order.Estado        = OrderViewModel.EstadoPedido.Recibido;
                    }
                    string desc = string.Join(", ", item.Línea_Pedido.Select(l => l.Nombre));
                    order.Descripcion = desc;
                    orders.Add(order);
                }

                var storage = new Persistence.PhotoStorage();
                Uri uri     = null;
                if (await storage.Exists(cliente.Foto))
                {
                    uri = await storage.GetBlobUri(cliente.Foto);
                }
                var model = new ManageViewModel
                {
                    Profile = new ProfileViewModel
                    {
                        Nombre          = cliente.Nombre,
                        Apellidos       = cliente.Apellidos,
                        Nick            = cliente.Nick,
                        Contraseña      = usuario.Contraseña,
                        DNI             = cliente.DNI_Cliente,
                        Email           = cliente.Email,
                        FechaNacimiento = cliente.Fecha_Nacimiento,
                        Direccion       = cliente.Direccion,
                        Poblacíon       = cliente.Poblacion,
                        Telefono        = cliente.Telefono,
                        NombreFoto      = cliente.Foto,
                        UsuarioID       = cliente.Id_Cliente,
                        RutaFoto        = uri != null ? uri.AbsoluteUri : null
                    },
                    Orders = orders
                };
                return(View(model));
            }
            else if (User.IsInRole(KoalaRoles.UserAdmin))
            {
                var resultadoClientes  = new List <ClientsViewModel>();
                var resultadoPedidos   = new List <OrderViewModel>();
                var resultadoProductos = new List <ProductViewModel>();

                var clientes = await _db.Clientes.ToListAsync();

                var pedidos = await _db.Pedidos.Include(p => p.Clientes)
                              .Include(l => l.Línea_Pedido).ToListAsync();

                var productos = await _db.Productos.ToListAsync();

                var usuario = await base.GetUser();

                var administrador = await _db.Administradores.Where(a => a.DNI_Admin == usuario.DNI)
                                    .FirstOrDefaultAsync();

                foreach (var item in clientes)
                {
                    var client = new ClientsViewModel
                    {
                        ID          = item.Id_Cliente,
                        Nombre      = item.Nombre,
                        Apellidos   = item.Apellidos,
                        NickCliente = item.Nick,
                        DNI         = item.DNI_Cliente,
                        Telefono    = item.Telefono,
                        Email       = item.Email,
                        Direccion   = item.Direccion,
                        Poblacion   = item.Poblacion,
                        FechaNac    = item.Fecha_Nacimiento,
                        Estado      = item.Estado
                    };
                    resultadoClientes.Add(client);
                }

                foreach (var item in pedidos)
                {
                    var order = new OrderViewModel
                    {
                        NumPedido   = item.Id_Pedido,
                        Cliente     = item.Clientes.Id_Cliente,
                        Descripcion = "",
                        TotalPrecio = item.Línea_Pedido.Sum(l => l.Precio),
                        FechaPedido = item.Fecha_Pedido,
                    };
                    if (item.Confirmado.HasValue)
                    {
                        order.FechaConfirmado = item.Confirmado.Value;
                        order.Estado          = OrderViewModel.EstadoPedido.Confirmado;
                    }
                    if (item.Cobrado.HasValue)
                    {
                        order.FechaPagado = item.Cobrado.Value;
                        order.Estado      = OrderViewModel.EstadoPedido.Pagado;
                    }
                    if (item.Enviado.HasValue)
                    {
                        order.FechaEnviado = item.Enviado.Value;
                        order.Estado       = OrderViewModel.EstadoPedido.Enviado;
                    }
                    if (item.Recibido.HasValue)
                    {
                        order.FechaRecibido = item.Recibido.Value;
                        order.Estado        = OrderViewModel.EstadoPedido.Recibido;
                    }
                    string desc = string.Empty;
                    foreach (var linea in item.Línea_Pedido)
                    {
                        if (linea.Productos != null)
                        {
                            desc += linea.Productos.Nombre + ", ";
                        }
                    }
                    order.Descripcion = desc;
                    resultadoPedidos.Add(order);
                }

                foreach (var item in productos)
                {
                    var product = new ProductViewModel
                    {
                        ID          = item.Id_Producto,
                        Nombre      = item.Nombre,
                        Descripcion = item.Descripcion,
                        Precio      = item.Precio,
                        Tipo        = item.Tipo,
                        NombreFoto  = item.Foto,
                        Descuento   = item.Descuento,
                        Escaparate  = item.Escaparate
                    };
                    resultadoProductos.Add(product);
                }

                var model = new ManageViewModel
                {
                    Orders   = resultadoPedidos,
                    Clients  = resultadoClientes,
                    Products = resultadoProductos
                };

                return(View("Admin", model));
            }
            return(View());
        }