public void RetiroExitoso() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(2000000); IList <string> errores = tarjetaDeCredito.CanWithDraw(1500000); string obtenido; string esperado = $"Su Nuevo Saldo es de ${3500000} pesos"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Retirar(1500000); } Assert.AreEqual(esperado, obtenido); }
private ServicioFinanciero InicializarServicioFinanciero(ServicioFinanciero servicioFinanciero, CrearServicioFinancieroRequest request) { servicioFinanciero.Nombre = request.Nombre; servicioFinanciero.Numero = request.Numero; servicioFinanciero.Ciudad = request.Ciudad; switch (request.TipoCuenta) { case (int)ServicioFinancieroEnum.CUENTA_DE_AHORROS: return(servicioFinanciero); case (int)ServicioFinancieroEnum.CUENTA_CORRIENTE: CuentaCorriente cuentaCorriente = (CuentaCorriente)servicioFinanciero; cuentaCorriente.CupoDeSobregiro = request.CupoDeSobregiro; return(cuentaCorriente); case (int)ServicioFinancieroEnum.CERTIFICADO_DE_DEPOSITO_A_TERMINO: CertificadoDeDepositoATermino cdt = (CertificadoDeDepositoATermino)servicioFinanciero; cdt.DiasDeTermino = request.DiasDeTermino; return(cdt); case (int)ServicioFinancieroEnum.TARJETA_DE_CREDITO: TarjetaDeCredito tarjetaDeCredito = (TarjetaDeCredito)servicioFinanciero; tarjetaDeCredito.ContratarCupo(request.CupoPreAprobado); return(tarjetaDeCredito); default: throw new InvalidOperationException(); } }
public void ValidarAbonoNegativoOCero() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(1000000); IList <string> errores = tarjetaDeCredito.CanConsign(-500); string obtenido; string esperado = "El valor a abonar es incorrecto"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Consignar(-500, "No implementa"); } Assert.AreEqual(esperado, obtenido); }
public void AbonoMayorAlSaldo() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(1000000); IList <string> errores = tarjetaDeCredito.CanConsign(5000000); string obtenido; string esperado = $"El valor del abono no puede superar el saldo de: {tarjetaDeCredito.Saldo}"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Consignar(5000000, "No implementa"); } Assert.AreEqual(esperado, obtenido); }
public void ValidarAvanceNegativoOCero() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(2000000); IList <string> errores = tarjetaDeCredito.CanWithDraw(-500); string obtenido; string esperado = "El valor a avanzar es incorrecto"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Retirar(-500); } Assert.AreEqual(esperado, obtenido); }
public void AbonoCorrecto() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(2000000); IList <string> errores = tarjetaDeCredito.CanConsign(1500000); string obtenido; string esperado = $"Su Nuevo Saldo es de ${500000} pesos"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Consignar(1500000, "No implementa"); } Assert.AreEqual(esperado, obtenido); }
public TarjetaDeCredito SeleccionarTarjeta(int idTarjeta) { TarjetaDeCredito result = null; using (SqlConnection connection = new SqlConnection( Constantes.SqlConnectionString)) { SqlCommand command = new SqlCommand($"SELECT * FROM Tarjetas WHERE Id= {idTarjeta}", connection); command.Connection.Open(); var reader = command.ExecuteReader(); while (reader.Read()) { var tipo = (int)reader[0]; switch (tipo) { case 1: result = new TarjetaClasica(); break; case 2: result = new TarjetaOro(); break; case 3: result = new TarjetaPlatino(); break; } } } return(result); }
public void PagarTarjeta(ICuentaBancaria cuentaOrigen, TarjetaDeCredito tarjeta, Moneda cantidad) { if (cuentaOrigen.Balance.Divisa != tarjeta.Balance.Divisa) { throw new InvalidOperationException("Divisas diferentes"); } if (cuentaOrigen.Titular.Id != tarjeta.Titular.Id) { throw new InvalidOperationException("Las cuentas de transferencia son de usuarios diferentes"); } //generar comision de 5% si se paga desde otra TDC if (!(cuentaOrigen is CuentaDeAhorro)) { FuncionesComunes.RestarCantidad(cuentaOrigen, new Moneda(cantidad.Cantidad * (decimal)0.05, cantidad.Divisa)); } //generar comision de 10% si se paga despues de fecha de corte var hoy = DateTime.Now; if (new DateTime(hoy.Year, hoy.Month, tarjeta.FechaDeCorte.Day) < DateTime.Now) { FuncionesComunes.RestarCantidad(cuentaOrigen, new Moneda(cantidad.Cantidad * 0.10m, cantidad.Divisa)); } cuentaOrigen.Balance.Restar(cantidad); tarjeta.Balance.Agregar(cantidad); }
private void InsertTarjeta(TarjetaDeCredito tarjeta, long numeroFactura) { SqlCommand command = DBConnection.CreateStoredProcedure("InsertTarjetaDeCredito"); AddTarjetaDeCreditoParameters(numeroFactura, tarjeta, command); DBConnection.ExecuteNonQuery(command); }
public async Task <ActionResult> Puja(int?subastaId, [Bind(Include = "puja")] int puja, [Bind(Include = "TarjetaDeCreditoId")] double TarjetaDeCreditoId) { if (subastaId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Subasta subasta = await db.Subastas.FindAsync(subastaId); TarjetaDeCredito tarjetaDeCredito = db.Tarjetas.Find(TarjetaDeCreditoId); if (subasta.PujaActual < puja && tarjetaDeCredito.CreditoDisponible >= puja) { Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); UsuarioConTarjeta usuarioconTarjeta = subasta.UsuarioConTarjeta; if (usuarioconTarjeta != null) { usuarioconTarjeta.TarjetadeCredito.CreditoDisponible += subasta.PujaActual; } usuarioconTarjeta = db.UsuarioConTarjetas.Where(m => (m.CompradorId == comprador.Id && m.TarjetadeCredito.NumDeTarjeta == TarjetaDeCreditoId)).ToList()[0]; subasta.PujaActual = puja; subasta.UsuarioConTarjeta = usuarioconTarjeta; tarjetaDeCredito.CreditoDisponible = tarjetaDeCredito.CreditoDisponible - puja; subasta.Comprador = comprador; db.Entry(subasta).State = EntityState.Modified; await db.SaveChangesAsync(); return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptSubasta" })); } ViewBag.AnuncioId = new SelectList(db.Anuncios, "AnuncioId", "Etiqueta", subasta.AnuncioId); ViewBag.CompradorId = new SelectList(db.Compradores, "CompradorId", "Nombre", subasta.Comprador); return(RedirectToAction("Index", "Home", new { nameAnuncio = "ErrorSubasta" })); }
public void AvanceMayorAlCupo() { string numeroDeCuenta = "1001"; string nombreDeCuenta = "Cuenta de Ejemplo"; TarjetaDeCredito tarjetaDeCredito = new TarjetaDeCredito(); tarjetaDeCredito.Numero = numeroDeCuenta; tarjetaDeCredito.Nombre = nombreDeCuenta; tarjetaDeCredito.ContratarCupo(2000000); IList <string> errores = tarjetaDeCredito.CanWithDraw(2500000); string obtenido; string esperado = $"El valor a avanzar no puede ser mayor al cupo pre-aprobado: " + $"{tarjetaDeCredito.CupoPreAprobado}"; if (errores.Contains(esperado)) { obtenido = esperado; } else { obtenido = tarjetaDeCredito.Retirar(2500000); } Assert.AreEqual(esperado, obtenido); }
public void CrearTarjetaDeCredito(TarjetaDeCredito _tarjeta, int _dni) { Data.DALTarjetaDeCredito _DALTarjeta = new Data.DALTarjetaDeCredito(); Data.DALCliente _DALCliente = new Data.DALCliente(); _tarjeta._cliente = Mapper.Map(_DALCliente.ListarClientePorDNI(_dni)); Data.TarjetaDeCredito _DATATarjeta = Mapper.Map(_tarjeta); _DALTarjeta.AgregarTarjetaDeCredito(_DATATarjeta); }
private void AddTarjetaDeCreditoParameters(long numeroFactura, TarjetaDeCredito tarjeta, SqlCommand command) { command.Parameters.AddWithValue("@facturaNumero", numeroFactura); command.Parameters.AddWithValue("@codigo", tarjeta.Codigo); command.Parameters.AddWithValue("@codigoSeguridad", tarjeta.CodigoSeguridad); command.Parameters.AddWithValue("@fechaVencimiento", tarjeta.FechaVencimiento); command.Parameters.AddWithValue("@numero", tarjeta.Numero); }
private void btnFacturar_Click(object sender, EventArgs e) { Factura factura = new Factura(); string error = string.Empty; TarjetaDeCredito tarjeta = null; if (Convert.ToInt32(cmbMedioDePago.SelectedValue) == 0) { error += "Seleccione un medio de pago"; } factura.TipoPagoId = Convert.ToInt32(cmbMedioDePago.SelectedValue); factura.ClienteId = this.ClienteId; if (factura.TipoPagoId == 2) { error += ValidateTarjeta(); if (string.IsNullOrEmpty(error)) { tarjeta = CreateTarjetaDeCredito(); } } if (string.IsNullOrEmpty(error)) { try { factura.EstadiaId = Convert.ToInt32(txtNroEstadia.Text); factura.Fecha = Session.Fecha; factura.Items = new List <FacturaItem>(); EstadiaService estadiaService = new EstadiaService(); Estadia estadia = estadiaService.GetById(Convert.ToInt32(txtNroEstadia.Text)); ReservaService reservaService = new ReservaService(); Reserva reserva = reservaService.GetReservaByCodigo(estadia.CodigoReserva); RegimenService regimenService = new RegimenService(); Regimen regimen = regimenService.GetByCodigo(reserva.RegimenCodigo); CreateNightsItems(factura, estadia, reserva, regimen.Precio); CreateConsumibleItems(factura, estadia, regimen.ConsumiblesGratis); foreach (FacturaItem fi in factura.Items) { factura.Total += fi.Precio; } FacturaService service = new FacturaService(); factura.Numero = service.Insert(factura, tarjeta); MostrarFactura(factura); } catch (Exception) { MessageBox.Show("Ocurrió un error al crear la factura"); } } else { MessageBox.Show(error); } }
private TarjetaDeCredito CreateTarjetaDeCredito() { TarjetaDeCredito tarjeta = new TarjetaDeCredito(); tarjeta.Codigo = txtCodigo.Text; tarjeta.CodigoSeguridad = Convert.ToInt32(txtCodigoSeguridad.Text); tarjeta.FechaVencimiento = dateVencimiento.Value; tarjeta.Numero = Convert.ToInt64(txtNumero.Text); return(tarjeta); }
public TarjetaDeCredito[] ListarTarjetaDeCredito() { Data.DALTarjetaDeCredito _DALTarjeta = new Data.DALTarjetaDeCredito(); Data.TarjetaDeCredito[] _listaTarjeta = _DALTarjeta.ListarTarjetasDeCredito(); TarjetaDeCredito[] _listaTarjetasEntities = new TarjetaDeCredito[_listaTarjeta.Length]; for (int i = 0; i < _listaTarjeta.Length; i++) { _listaTarjetasEntities[i] = Mapper.Map(_listaTarjeta[i]); } return(_listaTarjetasEntities); }
public ActionResult NuevaAdicional(FormCollection Form) { ClienteTitular _ClienteAdicional = new ClienteTitular(); TarjetaDeCredito _TarjetaCredito = new TarjetaDeCredito(); int _TitularDNI = Convert.ToInt32(Form.Get("titular").ToString()); Business.BLLClienteTitular _BLLCliente = new Business.BLLClienteTitular(); Business.BLLTarjetaDeCredito _BLLTarjeta = new Business.BLLTarjetaDeCredito(); _ClienteAdicional.Apellido = Form.Get("apellidoAdicional").ToString(); _ClienteAdicional.Nombre = Form.Get("nombreAdicional").ToString(); _ClienteAdicional.FechaNacimiento = Convert.ToDateTime(Form.Get("fechaNacimiento").ToString()); _ClienteAdicional.DNI = Convert.ToInt32(Form.Get("numeroDocumento").ToString()); _ClienteAdicional.CUIT = Convert.ToInt32(Form.Get("cuilCuit").ToString()); _ClienteAdicional.Domicilio = Form.Get("domicilioAdicional").ToString(); _ClienteAdicional.Telefono = Convert.ToInt32(Form.Get("numeroTelefono").ToString()); _ClienteAdicional.EstadoCivil = (EstadoCivil)Convert.ToInt32(Form.Get("estadoCivil").ToString()); _ClienteAdicional.IngresosMensualesAprox = Convert.ToInt32(Form.Get("ingresos").ToString()); _ClienteAdicional.Sexo = (Sexo)Convert.ToInt32(Form.Get("Sexo").ToString()); _ClienteAdicional.SituacionLaboral = (SituacionLaboral)Convert.ToInt32(Form.Get("situacionLaboral").ToString()); //_ClienteAdicional.DNIConyuge = Convert.ToInt32(Form.Get("numeroDocumentoCon").ToString()); //_ClienteAdicional.NombreConyuge = Convert.ToInt32(Form.Get("nombreConyuge").ToString()); //_ClienteAdicional.ApellidoConyuge = Convert.ToInt32(Form.Get("apellidoConyuge").ToString()); _TarjetaCredito.Marca = (MarcasTarjetasCredito)Convert.ToInt32(Form.Get("tipoTarjeta").ToString()); _TarjetaCredito.CreditoMaximo = 15000; _TarjetaCredito.Tipo = TipoDeTarjetaDeCredito.Titular; _TarjetaCredito._cliente = _ClienteAdicional; _TarjetaCredito._estadoTarjeta = EstadoTarjeta.Emitida; if (_BLLCliente.AptoNoAPto(_ClienteAdicional.DNI)) { try { _BLLCliente.CrearAdicional(_ClienteAdicional, _TitularDNI); _BLLTarjeta.CrearTarjetaDeCredito(_TarjetaCredito, _ClienteAdicional.DNI); } catch (Exception ex) { throw new Exception("ERROR al crear Cliente / Controller", ex); } } return(RedirectToAction("DatosAdicionales", "Solicitud", Form));//View(); }
public long Insert(Factura factura, TarjetaDeCredito tarjeta) { using (var transaction = new TransactionScope()) { SqlCommand command = DBConnection.CreateStoredProcedure("InsertFactura"); AddFacturaParameters(factura, command); long numeroFactura = (long)DBConnection.ExecuteScalar(command); InsertItemsFactura(factura.Items, numeroFactura); if (tarjeta != null) { InsertTarjeta(tarjeta, numeroFactura); } transaction.Complete(); return(numeroFactura); } }
public void ImprimirTarjeta(TarjetaDeCredito _tarjetaEntities) { TarjetaImpresion _tarjetaIMP = new TarjetaImpresion(_tarjetaEntities); TarjetaPDF _tarjetaPDF = new TarjetaPDF(); if (_tarjetaIMP.Marca == MarcasTarjetasCredito.Visa) { _tarjetaPDF.TarjetaVisa(_tarjetaIMP); } else if (_tarjetaIMP.Marca == MarcasTarjetasCredito.MasterCard) { _tarjetaPDF.TarjetaMaster(_tarjetaIMP); } else if (_tarjetaIMP.Marca == MarcasTarjetasCredito.AmericanExpress) { _tarjetaPDF.TarjetaAmerican(_tarjetaIMP); } else { throw new Exception("ERROR al crear Tarjeta PDF"); } }
public async Task <ActionResult> CrearTarjeta([Bind(Include = "tarjeta")] double tarjeta) { if (tarjeta > 0) { Comprador user; if (User.IsInRole(RoleName.Comprador)) { int credito = QuerysGeneric.random.Next(100, 1000); TarjetaDeCredito tarjetaDeCredito = await db.Tarjetas.FindAsync(tarjeta); if (tarjetaDeCredito == null) { tarjetaDeCredito = new TarjetaDeCredito() { NumDeTarjeta = tarjeta, CreditoDisponible = credito, CreditoContable = credito }; db.Tarjetas.Add(tarjetaDeCredito); await db.SaveChangesAsync(); } user = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); UsuarioConTarjeta usuario = new UsuarioConTarjeta() { Comprador = user, CompradorId = user.Id, TarjetadeCredito = tarjetaDeCredito }; db.UsuarioConTarjetas.Add(usuario); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Home", new { nameAnuncio = "AcceptTarjeta" })); } } return(View()); }
public bool SolicitarTarjeta(Usuario usuario, TarjetaDeCredito tarjetaSolicitada) { //verificar si el usuario ya tiene una tarjeta de ese tipo if (usuario.Cuentas.Any(c => c.GetType() == tarjetaSolicitada.GetType())) { return(false); } //consultar # maximo de tarjetas int numMaximoDeTarjetas = _repositorioConfiguraciones.SeleccionarMaximoDeTarjetasPorUsuario(); if (usuario.Cuentas.Where(c => c is TarjetaDeCredito).Count() >= numMaximoDeTarjetas) { return(false); } //consultar buro de credito var calificacionBuro = _servicioExternoBuro.ConsultarBuro(usuario.RFC); if (tarjetaSolicitada is TarjetaClasica && calificacionBuro < 30) { return(false); } else if (tarjetaSolicitada is TarjetaOro && calificacionBuro < 65) { return(false); } else if (tarjetaSolicitada is TarjetaPlatino && calificacionBuro < 85) { return(false); } return(true); }
public async Task <ActionResult> Create(Producto_Vendido producto_Vendido, int carritoId, int Total) { Comprador comprador = QuerysGeneric.GetComprador(User.Identity.Name, db.Compradores); IEnumerable <TarjetaDeCredito> tarjetas = QuerysGeneric.GetTarjetas(comprador.Tarjetas); ViewBag.NumDesuTarjeta = new SelectList(tarjetas, "NumDeTarjeta", "NumDeTarjeta", new Producto_Vendido()); producto_Vendido.NumDesuTarjeta = db.Tarjetas.Find(producto_Vendido.TarjetaDeCreditoId); TarjetaDeCredito tarjeta = producto_Vendido.NumDesuTarjeta; if (tarjeta.CreditoDisponible < Total) { return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" })); } tarjeta.CreditoDisponible = tarjeta.CreditoDisponible - Total; tarjeta.CreditoContable = tarjeta.CreditoContable - Total; db.Entry(tarjeta).State = EntityState.Modified; if (carritoId != -1) { Carrito carrito = db.Carritos.Find(producto_Vendido.CarritoId); producto_Vendido.CarritoId = carritoId; producto_Vendido.Cantidad = carrito.Cantidad; producto_Vendido.AnuncioId = carrito.AnuncioId; producto_Vendido.CompradorId = carrito.CompradorId; producto_Vendido.FechaSeparado = carrito.FechaSeparado; if (ModelState.IsValid) { db.Producto_Vendido.Add(producto_Vendido as Producto_Vendido); db.Carritos.Remove(carrito); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" })); } } else { var carros = QuerysGeneric.Get_N_Obj_Mientras(db.Carritos, null, m => (m.CompradorId == comprador.Id && !(m is Producto_Vendido))).ToList(); foreach (var item in carros) { Producto_Vendido producto = new Producto_Vendido(); producto.CarritoId = carritoId; producto.Cantidad = item.Cantidad; producto.AnuncioId = item.AnuncioId; producto.CompradorId = item.CompradorId; producto.FechaSeparado = item.FechaSeparado; if (ModelState.IsValid) { db.Producto_Vendido.Add(producto as Producto_Vendido); db.Carritos.Remove(item); await db.SaveChangesAsync(); return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "AcceptCompra" })); } } } return(RedirectToAction("Index", "Anuncios", new { nameAnuncio = "ErrorCompra" })); }
static void Main(string[] args) { int opcion = 0; string value; char continuar = 's'; Persona p1 = new Persona(); p1.Nombre = "Joel"; p1.Apellido = "Mora"; p1.Edad = 20; p1.Saludar(); string datosPersonales = p1.RecuperarDatosPersonales(); Console.WriteLine(datosPersonales); Console.WriteLine("***********************************"); Empleado e1 = new Empleado(); e1.Nombre = "Walter"; e1.Apellido = "Martinez"; e1.Sueldo = 40000; e1.Edad = 20; e1.Saludar(); e1.Trabajar(); Console.WriteLine(e1.RecuperarDatosPersonales()); Banco banco = new Banco(); CuentaCorriente cc1 = new CuentaCorriente(1234, 1000); TarjetaDeCredito tarjetaCredito = new TarjetaDeCredito(); tarjetaCredito.Nombre = "VISA GOLD"; tarjetaCredito.PrecioVenta = 300; banco.VenderProducto(cc1); // banco.VenderProducto(tarjetaCredito); Console.WriteLine(cc1); Console.WriteLine(cc1.ToString()); /* * CajaDeAhorro ca1 = new CajaDeAhorro(); * ca1.Saldo = 500; * ca1.Numero = 123123; * * banco.ExtraerDeCuenta(ca1, 3000); * banco.ExtraerDeCuenta(ca1, 100); * * banco.ExtraerDeCuenta(cc1, 400); * * * RRHH rrhh = new RRHH(); * rrhh.MostrarDatosPersonales(p1); * rrhh.MostrarDatosPersonales(e1); * * do * { * * * * Console.WriteLine("\n1 CAJA DE AHORRO\n" + * "2 CUENTA CORRIENTE\n" + * "3 SALIR\n\n" + * "A que cuenta desea acceder?"); * * value = Console.ReadLine(); * opcion = Convert.ToInt32(value); * * switch (opcion) * { * case 1: * * break; * case 2: * * break; * case 3: * * break; * default: * * break; * } * * } while (continuar == 's'); */ }
public long Insert(Factura factura, TarjetaDeCredito tarjeta) { FacturaRepository facturaRepository = new FacturaRepository(); return(facturaRepository.Insert(factura, tarjeta)); }
public async Task <ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //Codigo Temporal Para añadir Roles var roleStore = new RoleStore <IdentityRole>(new ApplicationDbContext()); var roleManager = new RoleManager <IdentityRole>(roleStore); if (roleManager.FindByName(RoleName.Admin) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Admin)); } if (roleManager.FindByName(RoleName.Comprador) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Comprador)); } if (roleManager.FindByName(RoleName.Vendedor) == null) { await roleManager.CreateAsync(new IdentityRole(RoleName.Vendedor)); } if (model.roles == Roles.Admin) { await UserManager.AddToRoleAsync(user.Id, RoleName.Admin); } else { string Nombre = model.Nombre; string UserId = user.UserName; int credito = QuerysGeneric.random.Next(100, 1000); TarjetaDeCredito tarjetaDeCredito = await db.Tarjetas.FindAsync(model.Tarjeta); if (tarjetaDeCredito == null) { tarjetaDeCredito = new TarjetaDeCredito() { NumDeTarjeta = model.Tarjeta, CreditoDisponible = credito, CreditoContable = credito }; db.Tarjetas.Add(tarjetaDeCredito); await db.SaveChangesAsync(); } if (model.roles == Roles.Comprador) { await UserManager.AddToRoleAsync(user.Id, RoleName.Comprador); Comprador comprador = new Comprador() { Nombre = Nombre, User = UserId, Mensaje = "" }; db.Compradores.Add(comprador); await db.SaveChangesAsync(); UsuarioConTarjeta usuario = new UsuarioConTarjeta() { CompradorId = comprador.Id, Comprador = comprador, TarjetadeCredito = tarjetaDeCredito, }; db.UsuarioConTarjetas.Add(usuario); await db.SaveChangesAsync(); } else { await UserManager.AddToRoleAsync(user.Id, RoleName.Vendedor); Vendedor vendedor = new Vendedor() { Nombre = Nombre, User = UserId, TarjetaDeCredito = tarjetaDeCredito, TarjetadeCreditoId = tarjetaDeCredito.NumDeTarjeta, Mensaje = "" }; db.Vendedores.Add(vendedor); await db.SaveChangesAsync(); } } await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false); // For more information on how to enable account confirmation and password reset please visit https://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return(RedirectToAction("Index", "Home")); } AddErrors(result); } // If we got this far, something failed, redisplay form return(View(model)); }
static void Main() { TarjetaDeCredito tarjeta = new TarjetaDeCredito(); tarjeta.PuedeRetirar(10000); }