public async Task <IActionResult> Edit(int id, [Bind("usuariosdisponibles,fechaPago,clave,idPlataforma,idCuenta")] PlataformaCuenta plataformaCuenta) { if (id != plataformaCuenta.idCuenta) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(plataformaCuenta); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!PlataformaCuentaExists(plataformaCuenta.idCuenta)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["idCuenta"] = new SelectList(_context.CUENTA, "idCuenta", "idCuenta", plataformaCuenta.idCuenta); ViewData["idPlataforma"] = new SelectList(_context.PLATAFORMA, "idPlataforma", "idPlataforma", plataformaCuenta.idPlataforma); return(View(plataformaCuenta)); }
public async Task <IActionResult> Create([Bind("usuariosdisponibles,fechaPago,clave,idPlataforma,idCuenta")] PlataformaCuenta plataformaCuenta) { if (ModelState.IsValid) { _context.Add(plataformaCuenta); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["idCuenta"] = new SelectList(_context.CUENTA, "idCuenta", "idCuenta", plataformaCuenta.idCuenta); ViewData["idPlataforma"] = new SelectList(_context.PLATAFORMA, "idPlataforma", "idPlataforma", plataformaCuenta.idPlataforma); return(View(plataformaCuenta)); }
public async Task <string> InsertUsuario(UsuarioDTO usuario) { List <UsuarioPlataformaCuenta> plataformasxusuario = new List <UsuarioPlataformaCuenta>(); List <PlataformaCuenta> plataformacuentasTemporal = new List <PlataformaCuenta>(); List <PlataformaCuenta> plataformacuentas = new List <PlataformaCuenta>(); PlataformaCuenta plataformacuenta = new PlataformaCuenta(); List <string> resultadonulo = new List <string>(); try { if (usuario.netflix > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 1, cantidad = usuario.netflix }); } if (usuario.amazon > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 2, cantidad = usuario.amazon }); } if (usuario.disney > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 3, cantidad = usuario.disney }); } if (usuario.hbo > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 4, cantidad = usuario.hbo }); } if (usuario.youtube > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 5, cantidad = usuario.youtube }); } if (usuario.spotify > 0) { plataformasxusuario.Add(new UsuarioPlataformaCuenta() { idPlataforma = 6, cantidad = usuario.spotify }); } foreach (var item in plataformasxusuario) { plataformacuentas = new List <PlataformaCuenta>(); plataformacuenta = await _plataformaCuentaRepository.GetPlataformaCuentaDisponible(item.idPlataforma, item.cantidad); if (plataformacuenta == null) { for (int i = 0; i < item.cantidad; i++) { plataformacuenta = await _plataformaCuentaRepository.GetPlataformaCuentaDisponible(item.idPlataforma, 1); if (plataformacuenta != null) { plataformacuentas.Add(plataformacuenta); plataformacuenta = await _plataformaCuentaRepository.GetPlataformaCuentabyIds(plataformacuenta.idPlataforma.ToString() + "-" + plataformacuenta.idCuenta.ToString()); await _plataformaCuentaRepository.UpdatePlataformaCuenta(new PlataformaCuentaDTO() { idCuenta = plataformacuenta.idCuenta, idPlataforma = plataformacuenta.idPlataforma, fechaPago = plataformacuenta.fechaPago, usuariosdisponibles = plataformacuenta.usuariosdisponibles - 1 }); } } if (item.cantidad > plataformacuentas.Count) { resultadonulo.Add(item.cantidad + "-" + (_plataformaRepository.GetPlataformabyId(item.idPlataforma)).Result.descripcion); foreach (var pfc in plataformacuentas) { plataformacuenta = await _plataformaCuentaRepository.GetPlataformaCuentabyIds(pfc.idPlataforma.ToString() + "-" + pfc.idCuenta.ToString()); await _plataformaCuentaRepository.InsertPlataformaCuenta(new PlataformaCuentaDTO() { idCuenta = plataformacuenta.idCuenta, idPlataforma = plataformacuenta.idPlataforma, fechaPago = plataformacuenta.fechaPago, usuariosdisponibles = plataformacuenta.usuariosdisponibles + 1 }); } } } else { plataformacuentas.Add(plataformacuenta); plataformacuenta = await _plataformaCuentaRepository.GetPlataformaCuentabyIds(plataformacuenta.idPlataforma.ToString() + "-" + plataformacuenta.idCuenta.ToString()); await _plataformaCuentaRepository.InsertPlataformaCuenta(new PlataformaCuentaDTO() { idCuenta = plataformacuenta.idCuenta, idPlataforma = plataformacuenta.idPlataforma, fechaPago = plataformacuenta.fechaPago, usuariosdisponibles = plataformacuenta.usuariosdisponibles - item.cantidad }); } } if (resultadonulo.Count != 0) { string mensaje = "NO HAY SUFICIENTES USUARIOS DISPONIBLES: " + Environment.NewLine; for (int i = 0; i < resultadonulo.Count; i++) { mensaje += resultadonulo[i]; if (i < resultadonulo.Count - 1) { mensaje += Environment.NewLine; } } return(mensaje); } return(await _commonRepository.InsertObjeto(usuario, new Usuario() { descripcion = usuario.descripcion, fechaInscripcion = DateTime.Now, idEstado = 1, facturacion = ObtenerFechaFacturacion(), pago = await ObtenerMontoPagoAsync(plataformasxusuario) }, _context)); //plataformacuentasTemporal = plataformacuentas.GroupBy(x => x.idPlataformaCuenta) // .Select(group => group.First()).ToList(); //foreach (var plataformasxusuario in usuario.plataformasxusuario) //{ // for (int i = 0; i < plataformacuentasTemporal.Count; i++) // { // user = await GetUsuariobyName(usuario.descripcion); // await _context.UsuarioPlataformaCuenta.AddAsync(new UsuarioPlataformaCuenta() // { // idUsuario = user.idUsuario, // idPlataforma = plataformasxusuario.idPlataforma, // cantidad = plataformasxusuario.cantidad, // idCuenta = plataformacuentasTemporal[i].idCuenta // }); // await Save(); // } //} } catch (Exception ex) { Console.WriteLine(ex.Message); return(_commonRepository.ExceptionMessage(usuario, "C")); } }