示例#1
0
        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());
            }
        }
示例#2
0
        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());
            }
        }