public async Task <IActionResult> Editar(int id, [Bind("CampeonatoID, EquipoID, MontoInscripcion, MontoGarantia, Observacion")] PagosInscripcionesVista pagosInscripcionesVista)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                PagosInscripciones entidad = _context.PagosInscripciones.Find(id);
                if (!(entidad.CampeonatoID == pagosInscripcionesVista.CampeonatoID && entidad.EquipoID == pagosInscripcionesVista.EquipoID))
                {
                    if (PagoInscripcionExiste(pagosInscripcionesVista.CampeonatoID, pagosInscripcionesVista.EquipoID))
                    {
                        return(BadRequest("El pago al campeonato de este equipo ya fue realizado. Seleccione otros datos"));
                    }
                }

                Pagos pagosInscripcion = _context.Pagos.Find(entidad.PagoIDInscripcion);
                pagosInscripcion.Monto = pagosInscripcionesVista.MontoInscripcion;
                pagosInscripcion.UsuarioIDActualizacion = Convert.ToInt32(_userManager.GetUserId(User));
                pagosInscripcion.FechaActulizacion      = DateTime.Now;

                Pagos pagosGarantia = _context.Pagos.Find(entidad.PagoIDGarantia);
                pagosGarantia.Monto = pagosInscripcionesVista.MontoGarantia;
                pagosGarantia.UsuarioIDActualizacion = Convert.ToInt32(_userManager.GetUserId(User));
                pagosGarantia.FechaActulizacion      = DateTime.Now;

                entidad.CampeonatoID = pagosInscripcionesVista.CampeonatoID;
                entidad.EquipoID     = pagosInscripcionesVista.EquipoID;
                entidad.Observacion  = pagosInscripcionesVista.Observacion;

                _context.PagosInscripciones.Update(entidad);
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException ex)
            {
                string errMsg = FormateadorCadenas.ObtenerMensajesErrores(ex);
                return(BadRequest(errMsg));
            }
            catch (Exception ex)
            {
                string errMsg = FormateadorCadenas.ObtenerMensajesErrores(ex);
                return(BadRequest(errMsg));
            }

            return(Ok("Registro Actualizado"));
        }
        public async Task <IActionResult> Crear([Bind("CampeonatoID, EquipoID, MontoInscripcion, MontoGarantia, Observacion")] PagosInscripcionesVista pagosInscripcionesVista)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            try
            {
                if (!PagoInscripcionExiste(pagosInscripcionesVista.CampeonatoID, pagosInscripcionesVista.EquipoID))
                {
                    Pagos pagosInscripcion = new Pagos
                    {
                        TipoPagoID        = 1,
                        Monto             = pagosInscripcionesVista.MontoInscripcion,
                        UsuarioIDCreacion = Convert.ToInt32(_userManager.GetUserId(User)),
                        FechaCreacion     = DateTime.Now
                    };

                    _context.Pagos.Add(pagosInscripcion);
                    _context.SaveChanges();

                    Pagos pagosGarantia = new Pagos
                    {
                        TipoPagoID        = 2,
                        Monto             = pagosInscripcionesVista.MontoGarantia,
                        UsuarioIDCreacion = Convert.ToInt32(_userManager.GetUserId(User)),
                        FechaCreacion     = DateTime.Now
                    };

                    _context.Pagos.Add(pagosGarantia);
                    _context.SaveChanges();

                    PagosInscripciones pagosInscripciones = new PagosInscripciones()
                    {
                        CampeonatoID      = pagosInscripcionesVista.CampeonatoID,
                        EquipoID          = pagosInscripcionesVista.EquipoID,
                        PagoIDGarantia    = pagosGarantia.ID,
                        PagoIDInscripcion = pagosInscripcion.ID,
                        Observacion       = pagosInscripcionesVista.Observacion
                    };

                    _context.PagosInscripciones.Add(pagosInscripciones);
                    await _context.SaveChangesAsync();
                }
                else
                {
                    return(BadRequest("El pago al campeonato de este equipo ya fue realizado. Seleccione otros datos"));
                }
            }
            catch (DbUpdateConcurrencyException ex)
            {
                string errMsg = FormateadorCadenas.ObtenerMensajesErrores(ex);
                return(BadRequest(errMsg));
            }
            catch (Exception ex)
            {
                string errMsg = FormateadorCadenas.ObtenerMensajesErrores(ex);
                return(BadRequest(errMsg));
            }

            return(Ok(pagosInscripcionesVista));
        }