Beispiel #1
0
        public ActionResult Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                Location location = db.Locations.Single(x => x.Name.Equals(model.Location));
                var      user     = new AutoMedUser {
                    UserName = model.UserName, LocationId = location.Id, IsDeleted = false
                };

                IdentityResult result = UserManager.Create(user, model.Password);
                if (model.Role == "Administrator")
                {
                    UserManager.AddToRole(user.Id, "Administrator");
                }
                else if (model.Role == "Manager")
                {
                    UserManager.AddToRole(user.Id, "Manager");
                }
                else if (model.Role == "Employee")
                {
                    UserManager.AddToRole(user.Id, "Employee");
                }

                if (result.Succeeded)
                {
                    return(RedirectToAction(nameof(Index)));
                }
                AddErrors(result);
            }

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
Beispiel #2
0
        public ActionResult Edit(string id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            List <SelectListItem> locationList = new List <SelectListItem>();

            db.Locations.ToList().ForEach(
                location => locationList.Add(new SelectListItem {
                Text = location.Name, Value = location.Id.ToString()
            })
                );
            ViewBag.locationList = locationList;

            List <SelectListItem> rolesList = new List <SelectListItem>();

            db.Roles.ToList().ForEach(
                role => rolesList.Add(new SelectListItem {
                Text = role.Name, Value = role.Id.ToString()
            })
                );
            ViewBag.rolesList = rolesList;

            AutoMedUser   user      = UserManager.FindById(id);
            EditViewModel viewModel = new EditViewModel {
                UserName = user.UserName, LocationId = user.LocationId, Id = user.Id, Role = user.Roles.First().RoleId
            };

            return(View(viewModel));
        }
Beispiel #3
0
        public ActionResult DeleteConfirmed(string id)
        {
            AutoMedUser deletion = UserManager.FindById(id);

            deletion.IsDeleted = true;
            UserManager.Update(deletion);
            return(RedirectToAction(nameof(Index)));
        }
Beispiel #4
0
        public ActionResult Edit(EditViewModel model)
        {
            if (ModelState.IsValid)
            {
                RoleManager <IdentityRole> roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(db));
                AutoMedUser userToEdit = UserManager.FindById(model.Id);
                userToEdit.UserName   = model.UserName;
                userToEdit.LocationId = model.LocationId;

                UserManager.RemoveFromRole(model.Id, roleManager.FindById(userToEdit.Roles.First().RoleId).Name);
                UserManager.AddToRole(model.Id, roleManager.FindById(model.Role).Name);

                UserManager.Update(userToEdit);
                return(RedirectToAction(nameof(Index)));
            }
            return(View(model));
        }
Beispiel #5
0
        public ActionResult Create([Bind(Include = "CustomerId,VehicleId,CurrentNumberInHousehold,MandatoryCost,EligibleCost,Income,Expenses,WorkDescription")] Quote quote, List <HttpPostedFileBase> files)
        {
            if (ModelState.IsValid)
            {
                AutoMedUser loggedIn = db.Users.Where(x => x.UserName.Equals(User.Identity.Name)).Include("Location").First();

                quote.Documents = new List <Document>();
                for (int i = 0; i < files.Count; i++)
                {
                    if (i != files.Count - 1)
                    {
                        quote.Documents.Add(new Document()
                        {
                            UploadedImage = files[i]
                        });
                    }
                }
                quote.DateCreated = DateTime.Now;
                quote.LocationId  = loggedIn.Location.Id;
                quote.CreatedById = loggedIn.Id;
                quote.Location    = db.Locations.Find(quote.LocationId);
                SetDiscount(quote);

                string redir;
                if (User.IsInRole("Administrator") || User.IsInRole("Manager"))
                {
                    quote.Approval     = QuoteStatus.Accepted;
                    quote.DateReviewed = quote.DateCreated;
                    redir = nameof(Edit);
                }
                else
                {
                    quote.Approval     = QuoteStatus.Pending;
                    quote.DateReviewed = null;
                    redir = nameof(Details);
                }

                db.Quotes.Add(quote);
                db.SaveChanges();
                UploadDocumentBlobs(quote.Documents);

                return(RedirectToAction(redir, new { id = quote.Id }));
            }

            return(View(quote));
        }
Beispiel #6
0
        public async Task <ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            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.UserName, model.Password, model.RememberMe, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                AutoMedUser  user = db.Users.First(u => u.UserName == model.UserName);
                IdentityRole role = db.Roles.Find(user.Roles.First().RoleId);
                if (role.Name == "Administrator")
                {
                    return(RedirectToAction("Create", "Report", routeValues: null));
                }
                else if (role.Name == "Manager")
                {
                    return(RedirectToAction("Index", "Quotes", routeValues: null));
                }
                else
                {
                    return(RedirectToAction("Index", "Customers"));
                }

            case SignInStatus.LockedOut:
                return(RedirectToAction(nameof(Login)));

            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(View(model));
            }
        }
Beispiel #7
0
        public JsonResult DoesUserNameExist(string userName)
        {
            AutoMedUser user = db.Users.FirstOrDefault(x => x.UserName == userName);

            return(Json(user == null));
        }