コード例 #1
0
        public async Task <ActionResult> Index(ManageMessageId?message)
        {
            ViewBag.StatusMessage =
                message == ManageMessageId.ChangePasswordSuccess ? "Your password has been changed."
                : message == ManageMessageId.SetPasswordSuccess ? "Your password has been set."
                : message == ManageMessageId.SetTwoFactorSuccess ? "Your two-factor authentication provider has been set."
                : message == ManageMessageId.Error ? "An error has occurred."
                : message == ManageMessageId.AddPhoneSuccess ? "Your phone number was added."
                : message == ManageMessageId.ProfileInfoUpdateSucess ? "Профилът е обновен успешно."
                : message == ManageMessageId.RemovePhoneSuccess ? "Your phone number was removed."
                : "";

            var userId = User.Identity.GetUserId();
            var model  = new IndexViewModel
            {
                HasPassword       = HasPassword(),
                PhoneNumber       = await UserManager.GetPhoneNumberAsync(userId),
                TwoFactor         = await UserManager.GetTwoFactorEnabledAsync(userId),
                Logins            = await UserManager.GetLoginsAsync(userId),
                BrowserRemembered = await AuthenticationManager.TwoFactorBrowserRememberedAsync(userId)
            };

            if (User.IsInRole("Company"))
            {
                var company   = _companyService.GetAll().First(x => x.UserId == userId);
                var viewModel = new IndexCompanyViewModel {
                    UniqueNumber = company.UniqueNumber, Name = company.Name, MOL = company.MOL, Address = company.City, DDS = company.DDS, EIK = company.EIK
                };

                return(View("IndexCompany", viewModel));
            }
            else if (User.IsInRole("Driver"))
            {
                return(View("IndexDriver", model));
            }
            else if (User.IsInRole("Dispatcher"))
            {
                UserManager <Models.ApplicationUser> userManager = new UserManager <Models.ApplicationUser>(new UserStore <Models.ApplicationUser>(new Models.ApplicationDbContext()));
                var user      = userManager.FindById(User.Identity.GetUserId());
                var viewModel = new IndexDispatcherViewModel
                {
                    FirstName = user.FirstName,
                    LastName  = user.LastName,
                    Telephone = user.PhoneNumber
                };
                var dispatcher = _dispatcherService.GetAll().First(x => x.UserId == user.Id);
                var company    = _companyService.GetAll().First(x => x.Id == dispatcher.Company.Id);
                viewModel.CompanyName = company.Name;

                return(View("IndexDispatcher", viewModel));
            }
            else
            {
                return(View("IndexDriver", model));
            }
        }
コード例 #2
0
        public ActionResult UpdateDispatcherInfo(IndexDispatcherViewModel viewModel)
        {
            var store = new UserStore <Models.ApplicationUser>(new Models.ApplicationDbContext());
            UserManager <Models.ApplicationUser> userManager = new UserManager <Models.ApplicationUser>(store);
            var user = userManager.FindById(User.Identity.GetUserId());

            user.PhoneNumber = viewModel.Telephone;
            user.FirstName   = viewModel.FirstName;
            user.LastName    = viewModel.LastName;
            userManager.Update(user);
            var context = store.Context;

            context.SaveChanges();


            var newViewModel = new IndexDispatcherViewModel()
            {
                FirstName = user.FirstName, Telephone = user.Telephone, LastName = user.LastName, CompanyName = viewModel.CompanyName
            };


            return(RedirectToAction("Index", new { message = ManageMessageId.ProfileInfoUpdateSucess }));
        }