Ejemplo n.º 1
0
        public IActionResult AdminRegister()
        {
            AdminRegisterVM Model = TempData.Get <AdminRegisterVM>("AdminRegisterVM") ?? new AdminRegisterVM();

            TempData.Remove("AdminRegisterVM");
            return(View(Model));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AdminRegister(AdminRegisterVM model)
        {
            bool ValidModel = true;

            #region Validacija Modela

            #region Username

            if (string.IsNullOrEmpty(model.Username))
            {
                model.UsernameError = "Polje za Username ne moze biti prazno";
                ValidModel          = false;
            }
            else
            {
                if (_context.Korisnik.FirstOrDefault(w => w.UserName == model.Username) != null)
                {
                    model.UsernameError = "Username vec postoji";
                    ValidModel          = false;
                }
                else
                {
                    model.UsernameError = null;
                }
            }

            #endregion

            #region Email

            if (string.IsNullOrEmpty(model.Email))
            {
                model.EmailError = "Polje za Email ne moze biti prazno";
                ValidModel       = false;
            }
            else
            {
                if (_context.Korisnik.FirstOrDefault(w => w.Email == model.Email) != null)
                {
                    model.EmailError = "Vec postoji nalog sa email-om";
                    ValidModel       = false;
                }
                else
                {
                    model.EmailError = null;
                }
            }

            #endregion

            #region Password

            if (string.IsNullOrEmpty(model.Password))
            {
                model.PasswordError = "Polje za password ne moze biti prazno";
                ValidModel          = false;
                model.Password      = null;
            }
            else
            {
                if (model.Password != model.ConfirmPassword)
                {
                    model.PasswordError = "Password i Confirm Password moraju biti jednaki";
                    ValidModel          = false;
                    model.Password      = null;
                }
                else
                {
                    model.PasswordError = null;
                }
            }

            #endregion

            #endregion

            if (!ValidModel)
            {
                model.Password        = "";
                model.ConfirmPassword = "";
                TempData.Put("AdminRegisterVM", model);
                return(RedirectToAction("AdminRegister"));
            }

            #region Kreiranje naloga

            await _userManager.CreateAsync(new Korisnik
            {
                UserName = model.Username,
                Email    = model.Email
            }, model.Password);

            _context.Administrator.Add(new Administrator
            {
                KorisnikId = _context.Korisnik.Where(w => w.UserName == model.Username).Select(s => s.Id)
                             .FirstOrDefault(),
                Username = model.Username
            });

            _context.SaveChanges();

            //Dodavanje u grupu Administrator
            await _userManager.AddToRoleAsync(await _userManager.FindByNameAsync(model.Username), "Admin");

            #endregion

            return(Redirect("/Admin/Index"));
        }