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)); }
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)); }
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)); }
// 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)); }
// 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()); }