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)); } }
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 })); }