예제 #1
0
        private void EditEmail(Email item)
        {
            if (AddAddressPhoneEmailInteractioNRequest != null)
            {
                var emailToEdit = item.DeepClone(_entityFactory as IKnownSerializationTypes);

                var itemVm = _emailVmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", emailToEdit));

                var confirmation = new ConditionalConfirmation {
                    Title = "Enter email details".Localize(), Content = itemVm
                };

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

                        var itemFromInnerItem =
                            ContactEmails.SingleOrDefault(
                                e => e.EmailId == itemTUpdate.EmailId);

                        if (itemFromInnerItem != null)
                        {
                            itemFromInnerItem.InjectFrom(itemTUpdate);
                            _parentViewModel.IsModified = true;
                        }
                    }
                });
            }
        }
예제 #2
0
        private void AddPhone()
        {
            if (AddAddressPhoneEmailInteractioNRequest != null)
            {
                var itemVm = _phoneVmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", new Phone()));

                var confirmation = new ConditionalConfirmation {
                    Title = "Enter phone details".Localize(), Content = itemVm
                };

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

                        ContactPhones.Add(phoneToAdd);
                        AddPhoneCommand.RaiseCanExecuteChanged();
                    }
                });
            }
        }
예제 #3
0
        private void AddEmail()
        {
            if (AddAddressPhoneEmailInteractioNRequest != null)
            {
                var itemVm = _emailVmFactory.GetViewModelInstance(new KeyValuePair <string, object>("item", new Email()));

                var confirmation = new ConditionalConfirmation {
                    Title = "Enter email details".Localize(), Content = itemVm
                };

                AddAddressPhoneEmailInteractioNRequest.Raise(confirmation,
                                                             (x) =>
                {
                    if (x.Confirmed)
                    {
                        var itemToAdd =
                            (x.Content as IEmailDialogViewModel)
                            .InnerItem;
                        itemToAdd.MemberId = InnerItem.MemberId;

                        if (ContactEmails.Count == 0 || ContactEmails.All(e => e.Type != EmailType.Primary.ToString()))
                        {
                            itemToAdd.Type =
                                EmailType.Primary.ToString();
                        }

                        ContactEmails.Add(itemToAdd);
                    }
                });
            }
        }
예제 #4
0
        private void AddAddress()
        {
            if (AddAddressPhoneEmailInteractioNRequest != null)
            {
                var countries = CountryRepository.Countries.Expand(c => c.Regions).ToArray();

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

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

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

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

                        ContactAddresses.Add(itemToAdd);
                    }
                });
            }
        }
예제 #5
0
        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".Localize(), 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;
                        }
                    }
                });
            }
        }