public void Grabar() { using (var context = new ApplicationDbContext()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { AjusteInventario model = this.ToModel(); if (IsNew) { context.AjusteInventarios.Add(model); } else { if (IsOld) { context.Entry(model).State = EntityState.Modified; } } //Childs foreach (AjusteInventarioDetalleViewModel viewModel in AjusteInventarioDetalleViewModels) { viewModel.Grabar(context); } //Childs deletes foreach (var viewModel in AjusteInventarioDetalleViewModels.GetRemoveItems()) { viewModel.Eliminar(context); } try { context.SaveChanges(); //Se genera el movimiento var tipoAjusteInventario = context.TipoAjusteInventarios .FirstOrDefault(o => o.TipoAjusteInventarioId == _TipoAjusteInventarioId); switch (tipoAjusteInventario.Codigo) { case "AJI": //Recepcion InventarioCommand.GenerarRecepcion(this, context); break; case "AJS": //Despacho InventarioCommand.GenerarDespacho(this, context); break; } _IsNew = false; _IsOld = false; _AjusteInventarioId = model.AjusteInventarioId; } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } } } }
public void Grabar() { using (ApplicationDbContext context = new ApplicationDbContext()) { using (var dbContextTransaction = context.Database.BeginTransaction()) { Venta model = this.ToModel(); if (IsNew) { context.Ventas.Add(model); } else { if (IsOld) { context.Entry(model).State = EntityState.Modified; } } //Childs foreach (VentaDetalleViewModel viewModel in VentaDetalleViewModels) { viewModel.Grabar(context); } //Childs deletes foreach (var viewModel in VentaDetalleViewModels.GetRemoveItems()) { viewModel.Eliminar(context); } try { context.SaveChanges(); var aplicacionConfiguracion = context.AplicacionConfiguracions.FirstOrDefault(); if (aplicacionConfiguracion == null) { throw new Exception("No existe registro de configuración¡¡"); } if (aplicacionConfiguracion.VentaGeneraDespacho) { //Se genera el despacho InventarioCommand.GenerarDespacho(this, context); } dbContextTransaction.Commit(); _IsNew = false; _IsOld = false; _VentaId = model.VentaId; } catch (Exception ex) { dbContextTransaction.Rollback(); throw ex; } } } }