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