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);
             }
         }
     }
 }
Beispiel #2
0
        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));
            }
        }