예제 #1
0
 /// <summary>
 /// raised on address edit click
 /// </summary>
 private void RaiseEditAddressRequest(Address originalItem)
 {
     var item = originalItem.DeepClone(_entityFactory as IKnownSerializationTypes);
     if (RaiseEditAddressRequest(item, "Edit Address"))
     {
         OnUIThread(()=>originalItem.InjectFrom<CloneInjection>(item));
     }
 }
		private void EditAddress(Address item)
		{
			if (AddAddressPhoneEmailInteractioNRequest != null)
			{
				var addressToEdit = item.DeepClone(_entityFactory as IKnownSerializationTypes);
				var countries = CountryRepository.Countries.Expand(c => c.Regions).ToArray();

				var parameters = new List<KeyValuePair<string, object>>
					{
						new KeyValuePair<string, object>("item", addressToEdit),
						new KeyValuePair<string, object>("countries", countries)
					};

				var itemVm = _addressVmFactory.GetViewModelInstance(parameters.ToArray());

				var confirmation = new ConditionalConfirmation { Title = "Enter address details", Content = itemVm };

				AddAddressPhoneEmailInteractioNRequest.Raise(confirmation,
					(x) =>
					{
						if (x.Confirmed)
						{
							var itemToUpdate =
								(x.Content as IAddressDialogViewModel).InnerItem;

							var itemFromInnerItem =
								ContactAddresses.SingleOrDefault(
									a => a.AddressId == itemToUpdate.AddressId);

							if (itemFromInnerItem != null)
							{
								itemFromInnerItem.InjectFrom(itemToUpdate);
								_parentViewModel.IsModified = true;
							}

						}
					});
			}
		}