예제 #1
0
        public ActionResult Create(ColleagueViewModel model, params string[] roles)
        {
            if (ModelState.IsValid)
            {
                var colleague = new Colleague
                {
                    UserName        = model.UserName,
                    Email           = model.Email,
                    FirstName       = model.FirstName,
                    LastName        = model.LastName,
                    ColleagueType   = model.ColleagueType,
                    DepartmentId    = model.DepartmentId,
                    EmploymentType  = model.EmploymentType,
                    ColleagueRegion = model.ColleagueRegion,
                };

                var result = UserManager.Create(colleague, model.Password);

                if (result.Succeeded)
                {
                    // Add user to selected roles
                    var roleResult = UserManager.AddToRoles(colleague.Id, roles);

                    if (roleResult.Succeeded)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        // Display error messages in the view @Html.ValidationSummary()
                        ModelState.AddModelError(string.Empty, roleResult.Errors.First());

                        // Create a check list object
                        ViewBag.Roles = new SelectList(db.Roles.ToList(), "Name", "Name");

                        // Return a view if you want to see error message saved in ModelState
                        // Redirect() and RedirectToAction() clear the messages
                        return(View());
                    }
                }
                else
                {
                    ViewBag.DepartmentId = new SelectList(db.Departments, "DepartmentId", "DepartmentName");
                    ModelState.AddModelError(string.Empty, result.Errors.First());
                    ViewBag.Roles = new SelectList(db.Roles.ToList(), "Name", "Name");
                    return(View());
                }
            }

            else
            {
                ViewBag.DepartmentId = new SelectList(db.Departments, "DepartmentId", "DepartmentName");
                ViewBag.Roles        = new SelectList(db.Roles.ToList(), "Name", "Name");
                return(View());
            }
        }
예제 #2
0
        public ActionResult Edit(int id, ColleagueViewModel model, params string[] roles)
        {
            ModelState.Remove("Password");
            ModelState.Remove("Confirm Password");

            if (ModelState.IsValid)
            {
                var colleague = (Colleague)UserManager.FindById(id);
                if (colleague == null)
                {
                    return(HttpNotFound());
                }

                // Edit colleague information
                colleague.UserName        = model.UserName;
                colleague.Email           = model.Email;
                colleague.FirstName       = model.FirstName;
                colleague.LastName        = model.LastName;
                colleague.ColleagueType   = model.ColleagueType;
                colleague.DepartmentId    = model.DepartmentId;
                colleague.EmploymentType  = model.EmploymentType;
                colleague.ColleagueRegion = model.ColleagueRegion;

                var userResult = UserManager.Update(colleague);

                if (userResult.Succeeded)
                {
                    var userRoles = UserManager.GetRoles(colleague.Id);
                    roles = roles ?? new string[] { };
                    var roleResult = UserManager.AddToRoles(colleague.Id, roles.Except(userRoles).ToArray <string>());

                    if (!roleResult.Succeeded)
                    {
                        ModelState.AddModelError(string.Empty, roleResult.Errors.First());
                        return(View());
                    }

                    roleResult = UserManager.RemoveFromRoles(colleague.Id, userRoles.Except(roles).ToArray <string>());

                    if (!roleResult.Succeeded)
                    {
                        ModelState.AddModelError(string.Empty, roleResult.Errors.First());
                        return(View());
                    }

                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.DepartmentId = new SelectList(db.Departments, "DepartmentId", "DepartmentName");
            return(View());
        }
예제 #3
0
        public ActionResult Edit(int?id)
        {
            if (id != null)
            {
                var userId = id ?? default(int);

                var colleague = (Colleague)UserManager.FindById(userId);
                if (colleague == null)
                {
                    return(View("Error"));
                }

                // Use automapper instead of copying properties one by one
                ColleagueViewModel model = new ColleagueViewModel()
                {
                    Id              = colleague.Id,
                    Department      = colleague.Department.DepartmentName,
                    ColleagueRegion = colleague.ColleagueRegion,
                    UserName        = colleague.UserName,
                    Email           = colleague.Email,
                    FirstName       = colleague.FirstName,
                    LastName        = colleague.LastName,
                    ColleagueType   = colleague.ColleagueType,
                    DepartmentId    = colleague.DepartmentId,
                    EmploymentType  = colleague.EmploymentType,
                };

                var userRoles       = UserManager.GetRoles(userId);
                var rolesSelectList = db.Roles.ToList().Select(r => new SelectListItem()
                {
                    Selected = userRoles.Contains(r.Name),
                    Text     = r.Name,
                    Value    = r.Name
                });

                ViewBag.RolesSelectList = rolesSelectList;

                // Prepare the dropdown list
                ViewBag.DepartmentId = new SelectList(db.Departments, "DepartmentId", "DepartmentName", colleague.DepartmentId);
                return(View(model));
            }
            else
            {
                return(View("Error"));
            }
        }
예제 #4
0
        public ActionResult Details(int?id)
        {
            if (id != null)
            {
                // Convert id to int instead of int?
                int userId = id ?? default(int);

                // find the user in the database
                var user = UserManager.FindById(userId);

                // Check if the user exists
                if (user != null)
                {
                    var colleague = (Colleague)user;

                    ColleagueViewModel model = new ColleagueViewModel()
                    {
                        Id              = colleague.Id,
                        Department      = colleague.Department.DepartmentName,
                        ColleagueRegion = colleague.ColleagueRegion,
                        UserName        = colleague.UserName,
                        Email           = colleague.Email,
                        FirstName       = colleague.FirstName,
                        LastName        = colleague.LastName,
                        ColleagueType   = colleague.ColleagueType,
                        DepartmentId    = colleague.DepartmentId,
                        EmploymentType  = colleague.EmploymentType,
                    };

                    model.Roles = string.Join(" ", UserManager.GetRoles(userId).ToArray());

                    return(View(model));
                }

                else
                {
                    // Customize the error view: /Views/Shared/Error.cshtml
                    return(View("Error"));
                }
            }
            else
            {
                return(View("Error"));
            }
        }
예제 #5
0
        public ActionResult Delete(int id)
        {
            var colleague = (Colleague)UserManager.FindById(id);

            if (colleague == null)
            {
                return(HttpNotFound());
            }

            ColleagueViewModel model = new ColleagueViewModel
            {
                Id              = colleague.Id,
                Email           = colleague.Email,
                FirstName       = colleague.FirstName,
                LastName        = colleague.LastName,
                ColleagueType   = colleague.ColleagueType,
                Department      = colleague.Department.DepartmentName,
                EmploymentType  = colleague.EmploymentType,
                ColleagueRegion = colleague.ColleagueRegion,
                Roles           = string.Join(" ", UserManager.GetRoles(id).ToArray())
            };

            return(View(model));
        }