예제 #1
0
 public async Task <Respuesta <IFacturaDTO> > ActualizarFactura(IFacturaDTO factura)
 {
     return(await new Wrapper <IFacturaDTO>().EjecutarTransaccionAsync(async() =>
     {
         contexto.Entry(mapper.Map <Factura>(factura)).State = EntityState.Modified;
         await contexto.SaveChangesAsync();
         return FabricaRespuesta <IFacturaDTO> .RespuestaEdicionExitosa(new List <IFacturaDTO> {
             factura
         });
     }, async() => await FabricaRespuesta <IFacturaDTO> .RespuestaFallida(Mensajes.ErrorEnEdición)));
 }
예제 #2
0
 public async Task <Respuesta <IFacturaDTO> > CrearFactura(IFacturaDTO factura)
 {
     return(await new Wrapper <IFacturaDTO>().EjecutarTransaccionAsync(async() =>
     {
         Factura nuevaFactura = mapper.Map <Factura>(factura);
         contexto.Add(nuevaFactura);
         await contexto.SaveChangesAsync();
         return FabricaRespuesta <IFacturaDTO> .RespuestaCreacionExitosa(new List <IFacturaDTO> {
             nuevaFactura
         });
     }, async() => await FabricaRespuesta <IFacturaDTO> .RespuestaFallida(Mensajes.ErrorEnCreacion)));
 }
예제 #3
0
        public async Task <Respuesta <IFacturaDTO> > EliminarFactura(IFacturaDTO factura)
        {
            return(await new Wrapper <IFacturaDTO>().EjecutarTransaccionAsync(async() =>
            {
                int facturaId = await contexto.Factura.Select(fac => fac.IdFactura)
                                .FirstOrDefaultAsync(x => x == factura.IdFactura);

                if (facturaId == default)
                {
                    return FabricaRespuesta <IFacturaDTO> .RespuestaEliminacionFallida();
                }
                else
                {
                    contexto.Factura.Remove(new Factura {
                        IdFactura = facturaId
                    });
                    await contexto.SaveChangesAsync();
                    return FabricaRespuesta <IFacturaDTO> .RespuestaEliminacionExitosa();
                }
            }, async() => await FabricaRespuesta <IFacturaDTO> .RespuestaFallida(Mensajes.ErrorEnEliminacion)));
        }
예제 #4
0
 public async Task <Respuesta <IFacturaCompuestaDTO> > LeerFactura(IFacturaDTO facturaIn)
 {
     return(await new Wrapper <IFacturaCompuestaDTO>().EjecutarTransaccionAsync(async() =>
     {
         IFacturaCompuestaDTO factura = await contexto.Factura
                                        .Include(x => x.IdClienteNavigation)
                                        .Include(x => x.DetalleFactura)
                                        .Where(x => x.IdFactura == facturaIn.IdFactura)
                                        .Select(x => new FacturaCompuestaDO
         {
             IdFactura = x.IdFactura,
             IdCliente = x.IdCliente,
             NombreCliente = $"{x.IdClienteNavigation.PrimerNombre} {x.IdClienteNavigation.PrimerApellido}",
             Fecha = x.Fecha
         }).FirstOrDefaultAsync <IFacturaCompuestaDTO>();
         if (factura == null)
         {
             return FabricaRespuesta <IFacturaCompuestaDTO> .RespuestaSinDatos();
         }
         return FabricaRespuesta <IFacturaCompuestaDTO> .RespuestaConDatos(new List <IFacturaCompuestaDTO> {
             factura
         });
     }));
 }
예제 #5
0
 public async Task <Respuesta <IFacturaCompuestaDTO> > LeerFactura(IFacturaDTO factura)
 {
     return(await facturaDAL.LeerFactura(factura));
 }
예제 #6
0
 public async Task <Respuesta <IFacturaDTO> > EliminarFactura(IFacturaDTO factura)
 {
     return(await facturaDAL.EliminarFactura(factura));
 }
예제 #7
0
 public async Task <Respuesta <IFacturaDTO> > ActualizarFactura(IFacturaDTO factura)
 {
     return(await facturaDAL.ActualizarFactura(factura));
 }
예제 #8
0
        public async Task <Respuesta <IDetalleFacturaCompuestoDTO> > ConsultarDetalleFactura(IFacturaDTO factura)
        {
            return(await new Wrapper <IDetalleFacturaCompuestoDTO>().EjecutarTransaccionAsync(async() =>
            {
                List <IDetalleFacturaCompuestoDTO> detalles = await contexto.DetalleFactura
                                                              .Include(x => x.IdProductoNavigation)
                                                              .Where(x => x.IdFactura == factura.IdFactura)
                                                              .Select(x => new DetalleFacturaCompuestoDO()
                {
                    IdDetalleFactura = x.IdDetalleFactura,
                    IdFactura = x.IdFactura,
                    IdProducto = x.IdProducto,
                    NombreProducto = x.IdProductoNavigation.Nombre,
                    Observaciones = x.Observaciones,
                    Precio = x.Precio
                }).ToListAsync <IDetalleFacturaCompuestoDTO>();

                if (detalles != null && detalles.Count > 0)
                {
                    return FabricaRespuesta <IDetalleFacturaCompuestoDTO> .RespuestaConDatos(detalles);
                }
                else
                {
                    return FabricaRespuesta <IDetalleFacturaCompuestoDTO> .RespuestaSinDatos();
                }
            }));
        }
예제 #9
0
 public async Task <Respuesta <IDetalleFacturaCompuestoDTO> > ConsultarDetalleFactura(IFacturaDTO factura)
 {
     return(await detalleFacturaDAL.ConsultarDetalleFactura(factura));
 }