예제 #1
0
        public async Task <IActionResult> Create(NewAccountViewModel vm)
        {
            if (ModelState.IsValid)
            {
                var user = new IdentityUser {
                    UserName = vm.Usuario, Email = vm.Correo
                };
                var resul = await _userManager.CreateAsync(user, vm.Contraseña);

                var usuarioentity = _mapper.Map <Users>(vm);
                usuarioentity.Tipo   = vm.RoleSelect;
                usuarioentity.Estado = "Activo";
                usuarioentity.Id     = user.Id;



                if (resul.Succeeded)
                {
                    var resulrol = await _userManager.AddToRoleAsync(user, vm.RoleSelect);

                    if (resulrol.Succeeded)
                    {
                        await _adminrepository.Add(usuarioentity);

                        if (vm.RoleSelect.Equals("cliente"))
                        {
                            var productentity = new ProductosUsers();
                            productentity.Id        = DateTime.Now.ToString("HHyfffmm");
                            productentity.Idusuario = user.Id;
                            productentity.Idtipo    = 1;
                            productentity.Tipo      = "Principal";
                            productentity.Balance   = vm.MontoInicial;

                            await _productsrepository.Add(productentity);
                        }
                        return(RedirectToAction("Management"));
                    }
                }
            }
            return(View());
        }
예제 #2
0
 public ActionResult Crear(Producto producto, int categoriaId)
 {
     if (!ModelState.IsValid)
     {
         ViewBag.CategoriaId = new SelectList(categorias.GetAll(), "Id", "Nombre");
         return(this.View());
     }
     producto.Categoria = categorias.Get(categoriaId);
     productos.Add(producto);
     if (Request.IsAjaxRequest())
     {
         return(this.Json(new { id = producto.Id }));
     }
     TempData["mensaje"] = string.Format("El producto {0} se ha creado correctamente", producto.Nombre);
     return(RedirectToAction("index"));
 }
예제 #3
0
        public async Task <IActionResult> Create(RegisterViewModel vm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var users = await _context.Usuarios.FirstOrDefaultAsync(c => c.UserName == vm.UserName || c.Correo == vm.Correo);

                    var productos = _context.Productos.Where(c => c.Tipo == "Principal" && c.Cuenta == vm.UserName).Count();
                    if (users != null)
                    {
                        ModelState.AddModelError("U/Exists", "Usuario ya existente");
                        return(View(vm));
                    }

                    var usuario = _mapper.Map <Usuario>(vm);
                    usuario.UserType = "client";


                    var user = new IdentityUser {
                        UserName = vm.UserName, Email = vm.Correo
                    };
                    user.LockoutEnabled = true;
                    var result = await _userManager.CreateAsync(user, vm.Password);

                    var resultRol = await _userManager.AddToRoleAsync(user, vm.SelectedRol);

                    if (result.Succeeded)
                    {
                        if (productos < 1)
                        {
                            var prod = new Productos
                            {
                                Producto = "Cuenta de Ahorro",
                                Monto    = vm.Monto,
                                Cuenta   = new Random().Next(100000000, 999999999).ToString(),
                                Tipo     = "Principal",
                                Usuario  = vm.UserName
                            };
                            await _Prepository.Add(prod);
                        }

                        _context.Usuarios.Add(usuario);
                        await _context.SaveChangesAsync();



                        if (resultRol.Succeeded)
                        {
                            await _signInManager.SignInAsync(user, isPersistent : false);

                            return(RedirectToAction("Index", "Client"));
                        }
                    }
                    else
                    {
                        addErrors(result);
                    }
                }
                catch
                {
                    return(View(vm));
                }
            }
            return(View(vm));
        }