示例#1
0
		public async Task<ActionResult> EditLoginDetails(AccountEditViewModel.LoginDetailsViewModel input)
		{
			if(!ModelState.IsValid)
				return await FullEditView(model => model.LoginDetails = input.WithValidationSummary());

			var userId = User.Identity.GetUserId();

			using(var transaction = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
			{
				await mUserService.UpdateUserEmail(userId, input.CurrentPassword, input.Email,
					                                new ValidationErrorNotifierAdapter(ModelState));
				if(!ModelState.IsValid)
					return await FullEditView(model => model.LoginDetails = input.WithValidationSummary());

				if(!String.IsNullOrWhiteSpace(input.NewPassword))
				{
					await mUserService.UpdateUserPassword(userId, input.CurrentPassword, input.NewPassword,
					                                      new ValidationErrorNotifierAdapter(ModelState));

					if(!ModelState.IsValid)
						return await FullEditView(model => model.LoginDetails = input.WithValidationSummary());
				}

				transaction.Complete();
			}

			return RedirectToAction("AccountDetailsUpdated");
		}
示例#2
0
		public async Task<ActionResult> EditPersonalInfo(AccountEditViewModel.PersonalInfoViewModel input)
		{
			if(!ModelState.IsValid)
				return await FullEditView(model => model.PersonalInfo = input.WithValidationSummary());

			var user = await mUserService.GetUserById(User.Identity.GetUserId());

			user.FirstName = input.FirstName;
			user.LastName  = input.LastName;
			user.Address   = input.Address;

			await mUserService.UpdateUser(user);

			return RedirectToAction("AccountDetailsUpdated");
		}