private void ImportConditons() { foreach (ConditionModel conditionModel in _conditions) { if (_addAllEntries) { _compendium.AddCondition(conditionModel); } else if (_skipDuplicateEntries) { if (!_compendium.Conditions.Any(x => x.Name.Equals(conditionModel.Name, StringComparison.CurrentCultureIgnoreCase))) { _compendium.AddCondition(conditionModel); } } else if (_replaceExistingEntries) { ConditionModel existing = _compendium.Conditions.FirstOrDefault(x => x.Name.Equals(conditionModel.Name, StringComparison.CurrentCultureIgnoreCase)); if (existing == null) { _compendium.AddCondition(conditionModel); } else { conditionModel.Id = existing.Id; _compendium.UpdateCondition(conditionModel); } } } }
private void Add() { bool addCondition = true; if (_editConditionXML != null) { if (_editHasUnsavedChanges) { string body = String.Format("{0} has unsaved changes.{1}What would you like to do?", _selectedCondition.Name, Environment.NewLine + Environment.NewLine); string accept = "Save and Continue"; string reject = "Discard Changes"; string cancel = "Cancel Navigation"; bool? result = _dialogService.ShowConfirmationDialog("Unsaved Changes", body, accept, reject, cancel); if (result == true) { if (!SaveEditCondition()) { addCondition = false; } } else if (result == false) { CancelEditCondition(); } else { addCondition = false; } } else { CancelEditCondition(); } } if (addCondition) { string xml = "<name>New Condition</name><text></text>"; ConditionModel conditionModel = _xmlImporter.GetCondition(xml); _compendium.AddCondition(conditionModel); if (_conditionSearchService.SearchInputApplies(_conditionSearchInput, conditionModel)) { ConditionListItemViewModel listItem = new ConditionListItemViewModel(conditionModel); _conditions.Add(listItem); foreach (ConditionListItemViewModel item in _conditions) { item.IsSelected = false; } listItem.IsSelected = true; } _selectedCondition = new ConditionViewModel(conditionModel); _editConditionXML = conditionModel.XML; SortConditions(); _compendium.SaveConditions(); OnPropertyChanged(nameof(EditingConditionXML)); OnPropertyChanged(nameof(IsEditingCondition)); OnPropertyChanged(nameof(SelectedCondition)); } }