public async Task <Respuesta <IProductoCompuestoDTO> > LeerProducto(IProductoDTO productoIn) { return(await new Wrapper <IProductoCompuestoDTO>().EjecutarTransaccionAsync(async() => { IProductoCompuestoDTO producto = await contexto.Producto .Include(x => x.IdCategoriaNavigation) .Include(x => x.InventarioProducto) .Where(x => x.IdProducto == productoIn.IdProducto) .Select(x => new ProductoCompuestoDO { IdProducto = x.IdProducto, IdCategoria = x.IdCategoria, Nombre = x.Nombre, Precio = x.Precio, Categoria = x.IdCategoriaNavigation.Descripcion, Cantidad = (int)x.InventarioProducto.FirstOrDefault().Cantidad, IdInventario = x.InventarioProducto.FirstOrDefault().IdInventario }).FirstOrDefaultAsync <IProductoCompuestoDTO>(); if (producto == null) { return FabricaRespuesta <IProductoCompuestoDTO> .RespuestaSinDatos(); } return FabricaRespuesta <IProductoCompuestoDTO> .RespuestaConDatos(new List <IProductoCompuestoDTO> { producto }); })); }
public async Task <Respuesta <IProductoCompuestoDTO> > ActualizarProducto(IProductoCompuestoDTO producto) { return(await new Wrapper <IProductoCompuestoDTO>().EjecutarTransaccionAsync(async() => { InventarioProducto inventario = await contexto.InventarioProducto .FirstOrDefaultAsync(pro => pro.IdProducto == producto.IdProducto); inventario.Cantidad = producto.Cantidad; contexto.Entry(mapper.Map <Producto>(producto)).State = EntityState.Modified; contexto.Entry(inventario).State = EntityState.Modified; await contexto.SaveChangesAsync(); return FabricaRespuesta <IProductoCompuestoDTO> .RespuestaEdicionExitosa(new List <IProductoCompuestoDTO> { producto }); }, async() => await FabricaRespuesta <IProductoCompuestoDTO> .RespuestaFallida(Mensajes.ErrorEnEdición))); }
public async Task <Respuesta <IProductoCompuestoDTO> > CrearProducto(IProductoCompuestoDTO producto) { return(await new Wrapper <IProductoCompuestoDTO>().EjecutarTransaccionAsync(async() => { Producto nuevoProducto = mapper.Map <Producto>(producto); contexto.Add(nuevoProducto); await contexto.SaveChangesAsync(); InventarioProducto inventario = new InventarioProducto() { IdProducto = nuevoProducto.IdProducto, Cantidad = producto.Cantidad }; contexto.Add(inventario); await contexto.SaveChangesAsync(); producto.IdInventario = inventario.IdInventario; producto.IdProducto = nuevoProducto.IdProducto; return FabricaRespuesta <IProductoCompuestoDTO> .RespuestaCreacionExitosa(new List <IProductoCompuestoDTO> { producto }); }, async() => await FabricaRespuesta <IProductoCompuestoDTO> .RespuestaFallida(Mensajes.ErrorEnCreacion))); }
public async Task <Respuesta <IProductoCompuestoDTO> > CrearProducto(IProductoCompuestoDTO producto) { return(await productoDAL.CrearProducto(producto)); }