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