Exemplo n.º 1
0
        public ActionResult AddUser(UserViewModel model, GuildCarsDbContext context)
        {
            var userMgr = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));
            var roleMgr = new RoleManager <ApplicationRole>(new RoleStore <ApplicationRole>(context));

            var user = new ApplicationUser();

            user.FirstName = model.FirstName;
            user.LastName  = model.LastName;
            user.UserName  = model.Email;
            user.Email     = model.Email;

            if (ModelState.IsValid)
            {
                userMgr.Create(user, model.Password);
                userMgr.AddToRole(user.Id, model.Role);
                return(RedirectToAction("Users"));
            }
            else
            {
                var repo = UsersRepositoryFactory.GetRepository();

                List <UserRoles> roles = repo.GetUserRoles();

                var userRoles = (from role in roles
                                 select role.Name).ToList();

                model.Roles = new SelectList(userRoles);

                return(View("AddUser", model));
            }
        }
Exemplo n.º 2
0
        public ActionResult EditUser(string id)
        {
            EditUserViewModel model = new EditUserViewModel();

            var repo = UsersRepositoryFactory.GetRepository();

            var users = repo.GetAll();

            var appUser = (from u in users
                           where id == u.Id
                           select u).FirstOrDefault();


            model.Id = appUser.Id;

            model.FirstName = appUser.FirstName;

            model.LastName = appUser.LastName;

            model.Email = appUser.Email;

            List <UserRoles> roles = repo.GetUserRoles();

            var userRoles = (from role in roles
                             select role.Name).ToList();

            model.Roles = new SelectList(userRoles);

            return(View(model));
        }
        public ActionResult ChangePassword(ChangePasswordViewModel model)
        {
            var usersRepo = UsersRepositoryFactory.GetRepository();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            else
            {
                var userManager = HttpContext.GetOwinContext().GetUserManager <UserManager <AppUser> >();
                var user        = userManager.FindByEmail(User.Identity.Name);

                if (model.NewPassword != null)
                {
                    user.PasswordHash = userManager.PasswordHasher.HashPassword(model.NewPassword);
                    var passwordResult = userManager.Update(user);
                    if (!passwordResult.Succeeded)
                    {
                        AddErrors(passwordResult);
                    }
                    else
                    {
                        RedirectToAction("Index", "Home");
                    }
                }
                else
                {
                    return(RedirectToAction("Index", "Home"));
                }
            }
            return(RedirectToAction("Index", "Home"));
        }
        public async Task <ActionResult> AddUser(AddUserViewModel model)
        {
            var usersRepo = UsersRepositoryFactory.GetRepository();

            if (ModelState.IsValid)
            {
                var userManager = HttpContext.GetOwinContext().GetUserManager <UserManager <AppUser> >();
                //var authManager = HttpContext.GetOwinContext().Authentication;


                var user = new AppUser {
                    FirstName = model.FirstName, LastName = model.LastName, UserName = model.Email, Email = model.Email
                };
                var result = await userManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var currentUser   = userManager.FindByName(user.UserName);
                    var selectedValue = usersRepo.GetRoleNameForId(model.SelectedRole).Name;

                    var roleresult = userManager.AddToRole(currentUser.Id, selectedValue);

                    return(RedirectToAction("Users", "Admin"));
                }
                AddErrors(result);
            }

            model.Roles = new SelectList(usersRepo.GetAllRoles(), "Id", "Name");
            return(View(model));
        }
Exemplo n.º 5
0
        public ActionResult Users()
        {
            var repo = UsersRepositoryFactory.GetRepository();

            var model = repo.GetAll();

            return(View(model));
        }
        public ActionResult AddUser()
        {
            {
                var model     = new AddUserViewModel();
                var usersRepo = UsersRepositoryFactory.GetRepository();

                model.Roles = new SelectList(usersRepo.GetAllRoles(), "Id", "Name");

                return(View(model));
            }
        }
        public ActionResult Users()
        {
            {
                var repo  = UsersRepositoryFactory.GetRepository();
                var model = new UserReportViewModel();

                model.UsersReportList = repo.GetAllUsers().ToList();

                return(View(model));
            }
        }
        public ActionResult EditUser(EditUserViewModel model)
        {
            var usersRepo = UsersRepositoryFactory.GetRepository();

            if (ModelState.IsValid)
            {
                var userManager = HttpContext.GetOwinContext().GetUserManager <UserManager <AppUser> >();

                var user = userManager.FindById(model.UserId);
                user.FirstName = model.FirstName;
                user.LastName  = model.LastName;
                user.UserName  = model.Email;
                user.Email     = model.Email;

                var result = userManager.Update(user);

                if (result.Succeeded)
                {
                    if (model.OldRole != model.SelectedRole)
                    {
                        var oldSelectedValue = usersRepo.GetRoleNameForId(model.OldRole).Name;
                        userManager.RemoveFromRole(model.UserId, oldSelectedValue);

                        var selectedValue = usersRepo.GetRoleNameForId(model.SelectedRole).Name;
                        userManager.AddToRole(model.UserId, selectedValue);
                    }

                    if (model.Password != null)
                    {
                        user.PasswordHash = userManager.PasswordHasher.HashPassword(model.Password);
                        var passwordResult = userManager.Update(user);
                        if (!passwordResult.Succeeded)
                        {
                            AddErrors(passwordResult);
                        }
                        else
                        {
                            RedirectToAction("Users", "Admin");
                        }
                    }
                    else
                    {
                        return(RedirectToAction("Users", "Admin"));
                    }
                    return(RedirectToAction("Users", "Admin"));
                }
                AddErrors(result);
            }

            model.Roles = new SelectList(usersRepo.GetAllRoles(), "Id", "Name");
            return(View(model));
        }
        public AuthenticationServiceBase(string applicationName, IEncryptionStrategy encryptionStrategy, ILogger logger, IPersistenceConfigurer persistenceConfigurer, Action <Configuration> exposeConfiguration)
        {
            ISessionFactory    sessionFactory    = CreateConfiguration(persistenceConfigurer, exposeConfiguration);
            IUnitOfWorkFactory unitOfWorkFactory = new UnitOfWorkFactory(sessionFactory);

            IUsersRepositoryFactory usersRepositoryFactory = new UsersRepositoryFactory();
            IRolesRepositoryFactory rolesRepositoryFactory = new RolesRepositoryFactory();

            _membershipService  = new MembershipService(applicationName, unitOfWorkFactory, usersRepositoryFactory);
            _roleService        = new RoleService(applicationName, unitOfWorkFactory, usersRepositoryFactory, rolesRepositoryFactory);
            _encryptionStrategy = encryptionStrategy;
            _logger             = logger;
        }
Exemplo n.º 10
0
        public ActionResult AddUser()
        {
            UserViewModel model = new UserViewModel();

            var repo = UsersRepositoryFactory.GetRepository();

            List <UserRoles> roles = repo.GetUserRoles();

            var userRoles = (from role in roles
                             select role.Name).ToList();

            model.Roles = new SelectList(userRoles);

            return(View(model));
        }
Exemplo n.º 11
0
        public ActionResult SalesReport()
        {
            var repo = SalesInformationRepositoryFactory.GetRepository();

            SalesReportViewModel model = new SalesReportViewModel();

            var userRepo = UsersRepositoryFactory.GetRepository();

            var users = userRepo.GetAll();

            var usernames = (from user in users
                             select user.LastName);

            model.Users = new SelectList(usernames);

            return(View(model));
        }
Exemplo n.º 12
0
        public ActionResult EditUser(EditUserViewModel model, GuildCarsDbContext context)
        {
            var userMgr = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(context));
            var roleMgr = new RoleManager <ApplicationRole>(new RoleStore <ApplicationRole>(context));

            ApplicationUser user = userMgr.FindById(model.Id);

            user.FirstName = model.FirstName;
            user.LastName  = model.LastName;
            user.Email     = model.Email;
            user.UserName  = model.Email;

            var repo = UsersRepositoryFactory.GetRepository();

            List <UserRoles> roles = repo.GetUserRoles();

            List <Users> users = repo.GetAll();

            var newUserRole = (from role in roles
                               where model.Role == role.Name
                               select role.Name).FirstOrDefault();

            var oldUserRole = (from u in users
                               where model.FirstName == user.FirstName
                               select u.Role).FirstOrDefault();

            if (ModelState.IsValid)
            {
                userMgr.RemoveFromRole(user.Id, oldUserRole);
                userMgr.AddToRole(user.Id, model.Role);
                userMgr.Update(user);

                return(RedirectToAction("Users"));
            }
            else
            {
                List <UserRoles> rolenames = repo.GetUserRoles();

                var userRoles = (from role in rolenames
                                 select role.Name).ToList();

                model.Roles = new SelectList(userRoles);

                return(View("EditUser", model));
            }
        }
        public ActionResult EditUser(string id)
        {
            {
                var model      = new EditUserViewModel();
                var usersRepo  = UsersRepositoryFactory.GetRepository();
                var userToEdit = usersRepo.GetUserById(id);

                model.FirstName    = userToEdit.FirstName;
                model.LastName     = userToEdit.LastName;
                model.Email        = userToEdit.Email;
                model.SelectedRole = userToEdit.RoleId;
                model.Roles        = new SelectList(usersRepo.GetAllRoles(), "Id", "Name", model.SelectedRole);
                model.UserId       = id;
                model.OldRole      = userToEdit.RoleId;

                return(View(model));
            }
        }
Exemplo n.º 14
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            var repo = UsersRepositoryFactory.GetRepository();

            var users = repo.GetAll();

            var role = (from user in users
                        where model.Email == user.Email
                        select user.Role).First();

            if (role == "disabled")
            {
                ModelState.AddModelError("Email", "Sorry - disabled users are not allowed to log in");
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true

            var result = await SignInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                return(RedirectToLocal(returnUrl));

            case SignInStatus.LockedOut:
                return(View("Lockout"));

            case SignInStatus.RequiresVerification:
                return(RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe = model.RememberMe }));

            case SignInStatus.Failure:
            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
        public ActionResult Login(LoginViewModel model, string returnUrl)
        {
            var usersRepo = UsersRepositoryFactory.GetRepository();

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            var userManager = HttpContext.GetOwinContext().GetUserManager <UserManager <AppUser> >();
            var authManager = HttpContext.GetOwinContext().Authentication;

            // attempt to load the user with this password
            AppUser user = userManager.Find(model.UserName, model.Password);

            // user will be null if the password or user name is bad
            if (user == null)
            {
                ModelState.AddModelError("", "Invalid username or password");

                return(View(model));
            }
            else if (usersRepo.GetUserById(user.Id).Role == "Disabled")
            {
                ModelState.AddModelError("", "Your account has been disabled.  Please contact your system administrator.");

                return(View(model));
            }
            else
            {
                // successful login, set up their cookies and send them on their way
                var identity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
                authManager.SignIn(new AuthenticationProperties {
                    IsPersistent = model.RememberMe
                }, identity);

                return(RedirectToAction("Index", "Home"));
            }
        }
Exemplo n.º 16
0
        public IHttpActionResult SearchSalesReport(string user, string startDate, string endDate)
        {
            var repo = SalesInformationRepositoryFactory.GetRepository();

            var sales = repo.GetSales();

            List <SalesInformation> salesResults = new List <SalesInformation>();

            var userRepo = UsersRepositoryFactory.GetRepository();

            var users = userRepo.GetAll();

            var username = (from s in sales
                            where s.UserName.Contains(user)
                            select s.UserName).FirstOrDefault();

            if (user != "0")
            {
                salesResults = (from r in sales
                                where username == r.UserName
                                select r).ToList();

                if (salesResults.Count == 0)
                {
                    return(NotFound());
                }
            }
            else
            {
                salesResults = sales;
            }

            if (startDate != "0")
            {
                var beginDate = DateTime.Parse(startDate);

                var correctDate = beginDate.AddDays(1);

                var bDateResults = (from r in salesResults
                                    where r.PurchaseDate >= correctDate
                                    select r).ToList();

                salesResults = bDateResults;
            }
            if (endDate != "0")
            {
                var stopDate = DateTime.Parse(endDate);

                var cDate = stopDate.AddDays(1);

                var eDateResults = (from r in salesResults
                                    where r.PurchaseDate <= cDate
                                    select r).ToList();

                salesResults = eDateResults;
            }
            try
            {
                List <SalesReport> results = salesResults.GroupBy(s => s.Id)
                                             .Select(us => new SalesReport
                {
                    UserName      = us.Select(x => x.UserName).FirstOrDefault(),
                    TotalSales    = us.Sum(x => x.PurchasePrice),
                    TotalVehicles = us.Select(x => x.SalesID).Count(),
                    PurchaseDate  = us.Select(x => x.PurchaseDate).FirstOrDefault()
                }).ToList();

                return(Ok(results));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Exemplo n.º 17
0
        public ActionResult Sales()
        {
            var repo = UsersRepositoryFactory.GetRepository();

            return(View(repo.GetAllSalesUsers()));
        }