private void EditEmailTemplateLanguage(EmailTemplateLanguage selectedItem)
        {
            var itemToUpdate = selectedItem.DeepClone(EntityFactory as IKnownSerializationTypes);

            if (AddEmailTemplateLanguageRequest != null)
            {
                RaiseAddEditEmailTemplateLanguageRequest(itemToUpdate, OperationType.Edit);
            }
        }
        private void RaiseAddEditEmailTemplateLanguageRequest(EmailTemplateLanguage selectedItem, OperationType operType)
        {
            var selectedLanguageCodes = InnerItem.EmailTemplateLanguages.Select(etl => etl.LanguageCode).ToArray();

            var parameters = new List <KeyValuePair <string, object> >();

            parameters.Add(new KeyValuePair <string, object>("item", selectedItem));
            parameters.Add(new KeyValuePair <string, object>("languageList", LanguagesCodes.ToArray()));
            parameters.Add(new KeyValuePair <string, object>("selectedLanguageList", selectedLanguageCodes));
            parameters.Add((operType == OperationType.Add) ?
                           new KeyValuePair <string, object>("operationType", OperationType.Add) :
                           new KeyValuePair <string, object>("operationType", OperationType.Edit));

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

            var confirmation = new ConditionalConfirmation();

            confirmation.Title   = "Enter language details".Localize();
            confirmation.Content = itemVm;


            AddEmailTemplateLanguageRequest.Raise(confirmation,
                                                  (x) =>
            {
                if (x.Confirmed)
                {
                    if (operType == OperationType.Add)
                    {
                        var itemToAdd = (x.Content as IEmailTemplateAddLanguageViewModel).InnerItem;

                        InnerItem.EmailTemplateLanguages.Add(itemToAdd);
                    }
                    else
                    {
                        var itemFromDialog = (x.Content as IEmailTemplateAddLanguageViewModel).InnerItem;

                        var sameItemFromInnerItem =
                            InnerItem.EmailTemplateLanguages.SingleOrDefault(
                                etl => etl.EmailTemplateLanguageId == itemFromDialog.EmailTemplateLanguageId);
                        if (sameItemFromInnerItem != null)
                        {
                            OnUIThread(() => sameItemFromInnerItem.InjectFrom <CloneInjection>(itemFromDialog));
                            IsModified = true;
                        }
                    }
                }
            });
        }
コード例 #3
0
        public EmailTemplateAddLanguageViewModel(EmailTemplateLanguage item, string[] languageList,
                                                 string[] selectedLanguageList,
                                                 OperationType operationType)
        {
            InnerItem = item;
            InnerItem.PropertyChanged -= InnerItem_PropertyChanged;

            LanguageCodeList         = languageList;
            SelectedLanguageCodeList = selectedLanguageList;
            _operationType           = operationType;


            var view = CollectionViewSource.GetDefaultView(LanguageCodeList);

            view.Filter = FilterItems;
            view.Refresh();

            InnerItem.PropertyChanged += InnerItem_PropertyChanged;
        }
        private void RemoveEmailTemplateLanguage(EmailTemplateLanguage selectedItem)
        {
            ConditionalConfirmation confirmation = new ConditionalConfirmation();

            confirmation.Title   = "Delete confirmation".Localize(null, LocalizationScope.DefaultCategory);
            confirmation.Content = string.Format("Are you sure you want to delete language '{0}'?".Localize(), selectedItem.LanguageCode);

            if (RemoveEmailTemplateLanguageRequest != null)
            {
                RemoveEmailTemplateLanguageRequest.Raise(confirmation,
                                                         (x) =>
                {
                    if (x.Confirmed)
                    {
                        if (selectedItem != null)
                        {
                            InnerItem.EmailTemplateLanguages.Remove(
                                selectedItem);
                        }
                    }
                });
            }
        }