public async Task <IActionResult> Create([FromBody] ProductoCreateDto model)
 {
     return(Ok(
                await _producto.CrearProducto(model)
                ));
 }
示例#2
0
        //insertar o actualizar empleado
        public async Task <bool> CrearProducto(ProductoCreateDto model)
        {
            var result = false;


            using (var transaction = _context.Database.BeginTransaction())
            {
                try
                {
                    var producto = new Producto {
                        Id                  = model.Id,
                        Nombre              = model.Nombre,
                        Stock_Maximo        = model.Stock_Maximo,
                        Stock_Minimo        = model.Stock_Minimo,
                        CategoriaProductoId = model.CategoriaId,
                        Descripcion         = model.Descripcion
                    };

                    if (producto.Id > 0)
                    {
                        _context.Producto.Update(producto);
                    }
                    else
                    {
                        _context.Producto.Add(producto);
                    }

                    await _context.SaveChangesAsync();

                    try
                    {
                        var almacen = new Almacen
                        {
                            Id         = model.AlmacenId,
                            ProductoId = producto.Id,
                            Stock      = model.Stock,
                            Precio     = model.Precio,
                            Estado     = model.Estado
                        };

                        if (almacen.Id > 0)
                        {
                            _context.Almacen.Update(almacen);
                        }
                        else
                        {
                            _context.Almacen.Add(almacen);
                        }

                        await _context.SaveChangesAsync();
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                    transaction.Commit();

                    result = true;
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    result = false;
                    throw e;
                }
            }

            return(result);
        }