示例#1
0
		public void SaveDvsUserDetailsFromModel(UserDetailsViewModel userDetails)
		{
			var dvsUser = _dvsUserManager.GetDvsUserByUserId(userDetails.Id);
			dvsUser.User.FirstName = userDetails.FirstName;
			dvsUser.User.LastName = userDetails.LastName;
			dvsUser.Status = userDetails.Status;

			if (dvsUser.User.PrimaryRole.RoleType != userDetails.RoleType)
			{
				dvsUser.User.Roles.Remove(dvsUser.User.PrimaryRole);
				dvsUser.User.Roles.Add(_referenceManager.GetRoleWithoutCache(userDetails.RoleType));
			}

			if (dvsUser.ContactInfo == null)
			{
				dvsUser.ContactInfo = new DvsUserContact();
			}
			if (userDetails.PhysicalAddress != null)
			{
				if (dvsUser.ContactInfo.PhysicalAddress == null)
				{
					dvsUser.ContactInfo.PhysicalAddress = new Address();
				}
				_addressManager.FillAddress(dvsUser.ContactInfo.PhysicalAddress, userDetails.PhysicalAddress);
			}
			dvsUser.ContactInfo.TextMsgNumber = userDetails.TextMsgNumber;

			if (userDetails.Phones != null)
			{
				foreach (var phone in userDetails.Phones)
				{
					var phoneIsExist = dvsUser.User.Phones.FirstOrDefault(el => el.Id.ToString().Equals(phone.Id));
					if (phoneIsExist == null)
					{
						if (!String.IsNullOrEmpty(phone.Number))
							dvsUser.User.Phones.Add(new Phone { Type = phone.PhoneType, Number = phone.Number });
					}
					else
					{
						phoneIsExist.Number = phone.Number;
						phoneIsExist.Type = phone.PhoneType;
					}
				}
			}

			var phonesForDelete = new List<Phone>();
			foreach (var phone in dvsUser.User.Phones)
			{
				var phoneInMemory = userDetails.Phones.FirstOrDefault(e => phone.Id.ToString().Equals(e.Id));
				if (phoneInMemory == null && phone.Id != default(int)) phonesForDelete.Add(phone);
			}

			phonesForDelete.ForEach(e => dvsUser.User.Phones.Remove(e));

			_dvsUserManager.UpdateDvsUser(dvsUser);
		}
示例#2
0
		public ActionResult SaveChanges(UserDetailsViewModel viewModel)
		{
			_dvsUserManagementService.SaveDvsUserDetailsFromModel(viewModel);
			CommitProviderInstance.Commit();
			return RedirectToAction(NameHelper.DvsPipeline.Administrators, NameHelper.DvsPipeline.Controller, null);
		}
示例#3
0
		public PartialViewResult AddPhone()
		{
			var phoneItems = new List<PhoneItemViewModel> { new PhoneItemViewModel { Id = Guid.NewGuid().ToString(), PhoneType = PhoneType.Mobile } };
			var userDetailsViewModel = new UserDetailsViewModel { Phones = phoneItems };
			return PartialView("UserDetailsPartial", userDetailsViewModel);
		}
示例#4
0
		public UserDetailsViewModel GetDvsUserDetailsViewModel(int id)
		{
			var userDetails = new UserDetailsViewModel();
			DvsUser dvsUser = _dvsUserManager.GetDvsUserByUserId(id);
			userDetails.Id = dvsUser.User.Id;
			userDetails.Email = dvsUser.User.Email;
			userDetails.FirstName = dvsUser.User.FirstName;
			userDetails.LastName = dvsUser.User.LastName;
			userDetails.Status = dvsUser.Status;
			userDetails.IsUserLocked = _userManager.CheckFailedAttempts(dvsUser.User.Email) == FailedAttemptResult.Locked;

			var primaryUserRole = (dvsUser.User.Roles != null && dvsUser.User.Roles.Count > 0)
									? dvsUser.User.Roles.First()
									: null;

			if (primaryUserRole != null)
			{
				userDetails.RoleType = primaryUserRole.RoleType;
			}

			if (dvsUser.ContactInfo != null)
			{
				userDetails.TextMsgNumber = dvsUser.ContactInfo.TextMsgNumber;

				if (dvsUser.ContactInfo.PhysicalAddress != null)
				{
					userDetails.PhysicalAddress = _addressManager.GetAddressViewModel<NotRequiredAddressViewModel>(dvsUser.ContactInfo.PhysicalAddress);
				}
			}
			userDetails.Phones = dvsUser.User.Phones.Select(el => new PhoneItemViewModel { Id = el.Id.ToString(), Number = el.Number, PhoneType = el.Type }).ToList();

			return userDetails;
		}
示例#5
0
		public void SaveDvsUserDetailsFromModel_should_save_user()
		{
			var userDetails = new UserDetailsViewModel
			{
				PhysicalAddress = new NotRequiredAddressViewModel(),
				Phones = new List<PhoneItemViewModel>
				{
					new PhoneItemViewModel
					{
						Id = "1",
						Number = "123-123-1234"
					},
					new PhoneItemViewModel
					{
						Id = "2",
						Number = "123-123-1235"
					}
				}
			};
			var roles = new List<Role>
			{
				new Role
				{
					Id = (int) RoleType.DvsSuperAdmin
				}
			};
			var phones = new List<Phone>
			{
				new Phone
				{
					Id = 1,
					Number = "123-123-1234"
				}
			};
			var dvsUser = new DvsUser
			{
				User = new User
				{
					Roles = roles,
					Phones = phones
				}
			};
			_dvsUserManager.GetDvsUserByUserId(Arg.Any<int>()).ReturnsForAnyArgs(dvsUser);

			_target.SaveDvsUserDetailsFromModel(userDetails);
		}