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));
        }
Пример #3
0
        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"));
            }
        }