public async Task <IActionResult> OnPostAsync() { var valor = false; var strategy = _objeto._context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _objeto._context.Database.BeginTransaction()) { try { var idUser = _objeto._userManager.GetUserId(User); var dataUser = _objeto._context.TUsuarios.Where(u => u.IdUser.Equals(idUser)).ToList().ElementAt(0); var user = await _objeto._userManager.FindByIdAsync(idUser); var role = await _objeto._userManager.GetRolesAsync(user); //_objeto._context.Add(_model); //await _objeto._context.SaveChangesAsync(); var compra = new TCompras { Descripcion = _model.Descripcion, Cantidad = _model.Cantidad, Precio = _model.Precio, Importe = _model.Importe, IdProveedor = _model.IdProveedor, Proveedor = _model.Proveedor, Email = _model.Email, IdSusuario = idUser, Usuario = dataUser.Nombre + " " + dataUser.Apellido, Role = role[0], Dia = Convert.ToInt16(dia), Mes = mes, Year = year, Fecha = _model.Fecha, Credito = _model.Credito }; int data = Convert.ToInt16("fg"); //_objeto._context.Add(compra); //await _objeto._context.SaveChangesAsync(); // si todos los comandos o procesos se ejecutaron con exito, transaction.Commit(); }catch (Exception ex) { Input = new InputModel { TComprasTemp = _model, AvatarImage = Input.AvatarImage, ErrorMessage = ex.Message }; transaction.Rollback(); valor = false; } } }); if (valor) { return(RedirectToPage("Compras")); } else { return(Page()); } }
public async Task <IActionResult> OnPostAsync() { var valor = false; var strategy = _objeto._context.Database.CreateExecutionStrategy(); await strategy.ExecuteAsync(async() => { using (var transaction = _objeto._context.Database.BeginTransaction()) { try { var idUser = _objeto._userManager.GetUserId(User); var dataUser = _objeto._context.TUsuarios.Where(u => u.IdUser.Equals(idUser)).ToList().ElementAt(0); var user = await _objeto._userManager.FindByIdAsync(idUser); var role = await _objeto._userManager.GetRolesAsync(user); _objeto._context.Add(_model); await _objeto._context.SaveChangesAsync(); var compra = new TCompras { Descripcion = _model.Descripcion, Cantidad = _model.Cantidad, Precio = _model.Precio, Importe = _model.Importe, IdProveedor = _model.IdProveedor, Proveedor = _model.Proveedor, Email = _model.Email, IdUsuario = idUser, Usuario = dataUser.Nombre + " " + dataUser.Apellido, Role = role[0], Dia = Convert.ToInt16(dia), Mes = mes, Year = year, Fecha = _model.Fecha, Codigo = _model.Codigo, Credito = _model.Credito }; //int data = Convert.ToInt16("fg"); _objeto._context.Add(compra); await _objeto._context.SaveChangesAsync(); if (_model.Credito) { _objeto._context.Update(tProveedores); await _objeto._context.SaveChangesAsync(); var reportes = new TReportes_proveedores { ReportesID = proveedore_Report.ReportesID, Deuda = Deuda, FechaDeuda = DateTime.Today, Pago = proveedore_Report.Pago, FechaPago = proveedore_Report.FechaPago, Ticket = Ticket, TProveedores = tProveedores }; _objeto._context.Update(reportes); await _objeto._context.SaveChangesAsync(); var ticketsReport = new TTickets { Propietario = "Proveedor", Deuda = Deuda, FechaDeuda = DateTime.Today, Pago = proveedore_Report.Pago, FechaPago = proveedore_Report.FechaPago, Ticket = Ticket, Email = _model.Email }; _objeto._context.Add(ticketsReport); await _objeto._context.SaveChangesAsync(); } // Confirmar transacción si todos los comandos tienen éxito, la transacción se revertirá automáticamente // cuando se desecha si alguno de los comandos falla transaction.Commit(); valor = true; } catch (Exception ex) { Input = new InputModel { TComprasTemp = _model, ErrorMessage = ex.Message }; transaction.Rollback(); valor = false; } } }); if (valor) { return(RedirectToPage("Compras")); } else { return(Page()); } }