コード例 #1
0
        /// <summary>
        /// Creates an instance of <see cref="LocationsViewModel"/>
        /// </summary>
        public LocationsViewModel(Compendium compendium, LocationSearchService locationSearchService, LocationSearchInput locationSearchInput,
                                  StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium            = compendium;
            _locationSearchService = locationSearchService;
            _locationSearchInput   = locationSearchInput;
            _stringService         = stringService;
            _dialogService         = dialogService;
            _xmlImporter           = xmlImporter;
            _documentService       = documentService;
            _dataManager           = dataManager;

            _selectLocationCommand     = new RelayCommand(obj => true, obj => SelectLocation(obj as ListItemViewModel <LocationModel>));
            _editLocationCommand       = new RelayCommand(obj => true, obj => EditLocation(obj as LocationViewModel));
            _exportLocationCommand     = new RelayCommand(obj => true, obj => ExportLocation(obj as LocationViewModel));
            _cancelEditLocationCommand = new RelayCommand(obj => true, obj => CancelEditLocation());
            _saveEditLocationCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditLocation());
            _resetFiltersCommand       = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedLocation != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedLocation != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #2
0
        /// <summary>
        /// Creates an instance of <see cref="BackgroundsViewModel"/>
        /// </summary>
        public BackgroundsViewModel(Compendium compendium, BackgroundSearchService backgroundSearchService, BackgroundSearchInput backgroundSearchInput,
                                    StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter)
        {
            _compendium = compendium;
            _backgroundSearchService = backgroundSearchService;
            _backgroundSearchInput   = backgroundSearchInput;
            _stringService           = stringService;
            _dialogService           = dialogService;
            _xmlImporter             = xmlImporter;
            _xmlExporter             = xmlExporter;

            _selectBackgroundCommand     = new RelayCommand(obj => true, obj => SelectBackground(obj as BackgroundListItemViewModel));
            _editBackgroundCommand       = new RelayCommand(obj => true, obj => EditBackground(obj as BackgroundViewModel));
            _exportBackgroundCommand     = new RelayCommand(obj => true, obj => ExportBackground(obj as BackgroundViewModel));
            _cancelEditBackgroundCommand = new RelayCommand(obj => true, obj => CancelEditBackground());
            _saveEditBackgroundCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditBackground());
            _resetFiltersCommand         = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedBackground != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedBackground != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #3
0
        /// <summary>
        /// Creates an instance of <see cref="EncountersViewModel"/>
        /// </summary>
        public EncountersViewModel(Compendium compendium, EncounterSearchService encounterSearchService, EncounterSearchInput encounterSearchInput,
                                   StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium             = compendium;
            _encounterSearchService = encounterSearchService;
            _encounterSearchInput   = encounterSearchInput;
            _stringService          = stringService;
            _dialogService          = dialogService;
            _xmlImporter            = xmlImporter;
            _documentService        = documentService;
            _dataManager            = dataManager;

            _selectEncounterCommand     = new RelayCommand(obj => true, obj => SelectEncounter(obj as EncounterListItemViewModel));
            _editEncounterCommand       = new RelayCommand(obj => true, obj => EditEncounter(obj as EncounterViewModel));
            _exportEncounterCommand     = new RelayCommand(obj => true, obj => ExportEncounter(obj as EncounterViewModel));
            _cancelEditEncounterCommand = new RelayCommand(obj => true, obj => CancelEditEncounter());
            _saveEditEncounterCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditEncounter());
            _resetFiltersCommand        = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedEncounter != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedEncounter != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            _compendium.CharacterChanged += _compendium_CharacterChanged;
            _compendium.EncounterChanged += _compendium_EncounterChanged;

            Search();
        }
コード例 #4
0
        /// <summary>
        /// Creates an instance of <see cref="TablesViewModel"/>
        /// </summary>
        public TablesViewModel(Compendium compendium, TableSearchService tableSearchService, TableSearchInput tableSearchInput,
                               StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium         = compendium;
            _tableSearchService = tableSearchService;
            _tableSearchInput   = tableSearchInput;
            _stringService      = stringService;
            _dialogService      = dialogService;
            _xmlImporter        = xmlImporter;
            _documentService    = documentService;
            _dataManager        = dataManager;

            _selectTableCommand     = new RelayCommand(obj => true, obj => SelectTable(obj as ListItemViewModel <RandomTableModel>));
            _editTableCommand       = new RelayCommand(obj => true, obj => EditTable(obj as RandomTableViewModel));
            _exportTableCommand     = new RelayCommand(obj => true, obj => ExportTable(obj as RandomTableViewModel));
            _cancelEditTableCommand = new RelayCommand(obj => true, obj => CancelEditTable());
            _saveEditTableCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditTable());
            _resetFiltersCommand    = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand             = new RelayCommand(obj => true, obj => Add());
            _copyCommand            = new RelayCommand(obj => _selectedTable != null, obj => Copy());
            _deleteCommand          = new RelayCommand(obj => _selectedTable != null, obj => Delete());
            _importCommand          = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand      = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand  = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #5
0
        /// <summary>
        /// Creates an instance of <see cref="NPCsViewModel"/>
        /// </summary>
        public NPCsViewModel(Compendium compendium, NPCSearchService npcSearchService, NPCSearchInput npcSearchInput,
                             StringService stringService, DialogService dialogService, XMLImporter xmlImporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium       = compendium;
            _npcSearchService = npcSearchService;
            _npcSearchInput   = npcSearchInput;
            _stringService    = stringService;
            _dialogService    = dialogService;
            _xmlImporter      = xmlImporter;
            _documentService  = documentService;
            _dataManager      = dataManager;

            _selectNPCCommand      = new RelayCommand(obj => true, obj => SelectNPC(obj as ListItemViewModel <NPCModel>));
            _editNPCCommand        = new RelayCommand(obj => true, obj => EditNPC(obj as NPCViewModel));
            _exportNPCCommand      = new RelayCommand(obj => true, obj => ExportNPC(obj as NPCViewModel));
            _cancelEditNPCCommand  = new RelayCommand(obj => true, obj => CancelEditNPC());
            _saveEditNPCCommand    = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditNPC());
            _resetFiltersCommand   = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedNPC != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedNPC != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #6
0
        /// <summary>
        /// Creates an instance of <see cref="FeatsViewModel"/>
        /// </summary>
        public FeatsViewModel(Compendium compendium, FeatSearchService classSearchService, FeatSearchInput featSearchInput,
                              StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter)
        {
            _compendium        = compendium;
            _featSearchService = classSearchService;
            _featSearchInput   = featSearchInput;
            _stringService     = stringService;
            _dialogService     = dialogService;
            _xmlImporter       = xmlImporter;
            _xmlExporter       = xmlExporter;

            _selectFeatCommand     = new RelayCommand(obj => true, obj => SelectFeat(obj as FeatListItemViewModel));
            _editFeatCommand       = new RelayCommand(obj => true, obj => EditFeat(obj as FeatViewModel));
            _exportFeatCommand     = new RelayCommand(obj => true, obj => ExportFeat(obj as FeatViewModel));
            _cancelEditFeatCommand = new RelayCommand(obj => true, obj => CancelEditFeat());
            _saveEditFeatCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditFeat());
            _resetFiltersCommand   = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedFeat != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedFeat != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #7
0
        /// <summary>
        /// Creates an instance of <see cref="ItemsViewModel"/>
        /// </summary>
        public ItemsViewModel(Compendium compendium, ItemSearchService itemSearchService, ItemSearchInput itemSearchInput,
                              StringService stringService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter, DocumentService documentService)
        {
            _compendium        = compendium;
            _itemSearchService = itemSearchService;
            _itemSearchInput   = itemSearchInput;
            _stringService     = stringService;
            _dialogService     = dialogService;
            _xmlImporter       = xmlImporter;
            _xmlExporter       = xmlExporter;
            _documentService   = documentService;

            _selectItemCommand     = new RelayCommand(obj => true, obj => SelectItem(obj as ItemListItemViewModel));
            _editItemCommand       = new RelayCommand(obj => true, obj => EditItem(obj as ItemViewModel));
            _exportItemCommand     = new RelayCommand(obj => true, obj => ExportItem(obj as ItemViewModel));
            _cancelEditItemCommand = new RelayCommand(obj => true, obj => CancelEditItem());
            _saveEditItemCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditItem());
            _resetFiltersCommand   = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedItem != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedItem != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            Search();
        }
コード例 #8
0
        private void ReadXMLFile(string fileLocation)
        {
            XMLImporter xmlImporter = new XMLImporter(_stringService);

            xmlImporter.LoadFileXML(fileLocation);

            _backgrounds = xmlImporter.ReadBackgrounds();
            _classes     = xmlImporter.ReadClasses();
            _conditions  = xmlImporter.ReadConditions();
            _feats       = xmlImporter.ReadFeats();
            _items       = xmlImporter.ReadItems();
            _monsters    = xmlImporter.ReadMonsters();
            _races       = xmlImporter.ReadRaces();
            _spells      = xmlImporter.ReadSpells();

            _languages = xmlImporter.LanguagesFound;

            OnPropertyChanged(nameof(BackgroundCount));
            OnPropertyChanged(nameof(ClassCount));
            OnPropertyChanged(nameof(ConditionCount));
            OnPropertyChanged(nameof(FeatCount));
            OnPropertyChanged(nameof(ItemCount));
            OnPropertyChanged(nameof(LanguageCount));
            OnPropertyChanged(nameof(MonsterCount));
            OnPropertyChanged(nameof(RaceCount));
            OnPropertyChanged(nameof(SpellCount));
        }
コード例 #9
0
        /// <summary>
        /// Creates an instance of <see cref="DataManager"/>
        /// </summary>
        public DataManager(XMLImporter xmlImporter, XMLExporter xmlExporter)
        {
            _xmlImporter    = xmlImporter;
            _xmlExporter    = xmlExporter;
            _saveDataFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Crit Compendium");

            _lastVersionLaunched = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            _runCount            = 0;

            CheckFirstLaunch();
        }
コード例 #10
0
        static void Main(string[] args)
        {
            IImporter importer;
            string    command;
            string    argument;

            if (args.Length != 2)
            {
                MessageAndExit("Špatný počet parametrů.");
            }

            command  = args[0];
            argument = args[1];

            switch (command)
            {
            case "import":
                string extension = Path.GetExtension(argument).ToLower();
                if (extension == ".xml")
                {
                    //primitive form of dependency injection
                    importer = new XMLImporter(new DataConnectorDB());
                    importer.Import(argument);
                }
                else if (extension == ".xls" || extension == ".xlsx")
                {
                    importer = new ExcelImporter(new DataConnectorDB());
                    importer.Import(argument);
                }
                else
                {
                    MessageAndExit("Špatný formát souboru (koncovka).");
                }
                break;

            case "list":
                DateTime date;
                bool     isDate = DateTime.TryParse(argument, out date);
                if (!isDate)
                {
                    MessageAndExit("Špatný formát data (má být RRRR-MM-DD).");
                }
                new DataConnectorDB().OutputList(date);
                break;

            default:
                break;
            }

            Console.WriteLine("Hotovo");
            Console.WriteLine("Press Any Key To Continue");
            Console.ReadLine();
        }
コード例 #11
0
        private void ReadEncounterArchive(string fileLocation)
        {
            XMLImporter xmlImporter = new XMLImporter(_stringService);

            using (FileStream fileStream = File.Open(fileLocation, FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(fileStream, ZipArchiveMode.Read))
                {
                    ZipArchiveEntry conditionsEntry = archive.GetEntry("resources/conditions.xml");
                    using (StreamReader reader = new StreamReader(conditionsEntry.Open(), Encoding.UTF8))
                    {
                        string xml = reader.ReadToEnd();
                        _conditions = xmlImporter.ReadConditions(xml);
                    }

                    ZipArchiveEntry monstersEntry = archive.GetEntry("resources/monsters.xml");
                    using (StreamReader reader = new StreamReader(monstersEntry.Open(), Encoding.UTF8))
                    {
                        string xml = reader.ReadToEnd();
                        _monsters = xmlImporter.ReadMonsters(xml);
                    }

                    foreach (ZipArchiveEntry characterEntry in archive.Entries.Where(x => x.Name.Contains(".ccca")))
                    {
                        ReadCharacterArchive(characterEntry.Open());
                    }

                    ZipArchiveEntry encounterEntry = archive.GetEntry("encounter.cce");
                    using (MemoryStream memoryStream = new MemoryStream())
                    {
                        using (Stream stream = encounterEntry.Open())
                        {
                            stream.CopyTo(memoryStream);
                            _encounters.Add(memoryStream.ToArray());
                        }
                    }
                }
            }

            OnPropertyChanged(nameof(CharacterCount));
            OnPropertyChanged(nameof(EncounterCount));
            OnPropertyChanged(nameof(BackgroundCount));
            OnPropertyChanged(nameof(ClassCount));
            OnPropertyChanged(nameof(ConditionCount));
            OnPropertyChanged(nameof(FeatCount));
            OnPropertyChanged(nameof(ItemCount));
            OnPropertyChanged(nameof(LanguageCount));
            OnPropertyChanged(nameof(MonsterCount));
            OnPropertyChanged(nameof(RaceCount));
            OnPropertyChanged(nameof(SpellCount));
        }
コード例 #12
0
ファイル: FormMain.cs プロジェクト: cuplexProjects/C-Projects
        private void btnImportXML_Click(object sender, EventArgs e)
        {
            this.openFileDialog1.Filter   = "XML file(*.xml)|*.xml";
            this.openFileDialog1.FileName = "xmlfile.xml";

            if (this.openFileDialog1.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }

            string path = this.openFileDialog1.FileName;

            try
            {
                this.xmlImporter = new XMLImporter();
                this.xmlImporter.LoadXMLFile(path);

                this.dataGridViewXML.ColumnCount     = this.xmlImporter.XMLDocumentNodes[0].ElementProperties.Count + 2;
                this.dataGridViewXML.Columns[0].Name = "Element type";
                this.dataGridViewXML.Columns[1].Name = "Element InnerText";
                for (int i = 0; i < this.xmlImporter.XMLDocumentNodes[0].ElementProperties.Keys.Count; i++)
                {
                    this.dataGridViewXML.Columns[i + 2].Name = this.xmlImporter.XMLDocumentNodes[0].ElementProperties.Keys[i];
                }

                foreach (var xmlDocumentNode in this.xmlImporter.XMLDocumentNodes)
                {
                    DataGridViewRow row = new DataGridViewRow();
                    row.Cells.Add(new DataGridViewTextBoxCell {
                        Value = xmlDocumentNode.ElementType
                    });
                    row.Cells.Add(new DataGridViewTextBoxCell {
                        Value = xmlDocumentNode.ElementValue
                    });
                    foreach (string attribute in xmlDocumentNode.ElementProperties.AllKeys)
                    {
                        DataGridViewCell cell = new DataGridViewTextBoxCell();
                        cell.Value = xmlDocumentNode.ElementProperties[attribute];
                        row.Cells.Add(cell);
                    }


                    this.dataGridViewXML.Rows.Add(row);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #13
0
        static void Main(string[] args)
        {
            Console.WriteLine("Select your option");
            Console.WriteLine("1: Read from XML");
            Console.WriteLine("2: Read from JSON");
            var key = Console.ReadKey(false);

            IEnumerable <Horse> horses = new List <Horse>();
            IImporter           importer;

            while (key.Key == ConsoleKey.D1 || key.Key == ConsoleKey.D2)
            {
                if (key.Key == ConsoleKey.D1)
                {
                    importer = new XMLImporter();
                    horses   = importer.Import();
                    break;
                }
                else
                {
                    importer = new JsonImporter();
                    horses   = importer.Import();
                    break;
                }
            }

            //Console.WriteLine("Press any key to read from XML file and display horses");

            Console.ReadKey();

            Console.WriteLine("Now printing horses...");

            //Ascending order of horses by price
            horses = horses.OrderBy(h => h.Price);

            Console.WriteLine("-----------------------------------------------");
            Console.WriteLine("Ordering horses by ascending order of their prices.");
            Console.WriteLine("Horse Name | Price");

            foreach (var horse in horses)
            {
                Console.WriteLine(horse.Name + " | " + horse.Price);
            }


            Console.WriteLine("Press any key to end");
            Console.ReadKey();
        }
コード例 #14
0
        /// <summary>
        /// Loads the default compendium.
        /// </summary>
        public void LoadDefaultCompendium()
        {
            XMLImporter importer = DependencyResolver.Resolve <XMLImporter>();

            importer.LoadManifestResourceXML("default_compendium.xml");

            _backgrounds = importer.ReadBackgrounds();
            _classes     = importer.ReadClasses();
            _conditions  = importer.ReadConditions();
            _feats       = importer.ReadFeats();
            _items       = importer.ReadItems();
            _monsters    = importer.ReadMonsters();
            _races       = importer.ReadRaces();
            _spells      = importer.ReadSpells();

            _languages = importer.LanguagesFound;
        }
コード例 #15
0
        private void ReadCharacterArchive(string fileLocation)
        {
            XMLImporter xmlImporter = new XMLImporter(_stringService);

            using (FileStream fileStream = File.Open(fileLocation, FileMode.Open))
            {
                ReadCharacterArchive(fileStream);
            }

            OnPropertyChanged(nameof(CharacterCount));
            OnPropertyChanged(nameof(BackgroundCount));
            OnPropertyChanged(nameof(ClassCount));
            OnPropertyChanged(nameof(ConditionCount));
            OnPropertyChanged(nameof(FeatCount));
            OnPropertyChanged(nameof(ItemCount));
            OnPropertyChanged(nameof(LanguageCount));
            OnPropertyChanged(nameof(MonsterCount));
            OnPropertyChanged(nameof(RaceCount));
            OnPropertyChanged(nameof(SpellCount));
        }
コード例 #16
0
        /// <summary>
        /// Creates an instance of <see cref="CharactersViewModel"/>
        /// </summary>
        public CharactersViewModel(Compendium compendium, CharacterSearchService characterSearchService, CharacterSearchInput characterSearchInput, StringService stringService,
                                   StatService statService, DialogService dialogService, XMLImporter xmlImporter, XMLExporter xmlExporter, DocumentService documentService, DataManager dataManager)
        {
            _compendium             = compendium;
            _characterSearchService = characterSearchService;
            _characterSearchInput   = characterSearchInput;
            _stringService          = stringService;
            _statService            = statService;
            _dialogService          = dialogService;
            _xmlImporter            = xmlImporter;
            _xmlExporter            = xmlExporter;
            _documentService        = documentService;
            _dataManager            = dataManager;

            _selectCharacterCommand     = new RelayCommand(obj => true, obj => SelectCharacter(obj as CharacterListItemViewModel));
            _editCharacterCommand       = new RelayCommand(obj => true, obj => EditCharacter(obj as CharacterViewModel));
            _exportCharacterCommand     = new RelayCommand(obj => true, obj => ExportCharacter(obj as CharacterViewModel));
            _cancelEditCharacterCommand = new RelayCommand(obj => true, obj => CancelEditCharacter());
            _saveEditCharacterCommand   = new RelayCommand(obj => HasUnsavedChanges, obj => SaveEditCharacter());
            _resetFiltersCommand        = new RelayCommand(obj => true, obj => InitializeSearch());
            _addCommand            = new RelayCommand(obj => true, obj => Add());
            _copyCommand           = new RelayCommand(obj => _selectedCharacter != null, obj => Copy());
            _deleteCommand         = new RelayCommand(obj => _selectedCharacter != null, obj => Delete());
            _importCommand         = new RelayCommand(obj => true, obj => Import());
            _selectNextCommand     = new RelayCommand(obj => true, obj => SelectNext());
            _selectPreviousCommand = new RelayCommand(obj => true, obj => SelectPrevious());

            _selectInfoEditCommand        = new RelayCommand(obj => true, obj => SelectInfoEdit());
            _selectLevelsEditCommand      = new RelayCommand(obj => true, obj => SelectLevelsEdit());
            _selectAbilitiesEditCommand   = new RelayCommand(obj => true, obj => SelectAbilitiesEdit());
            _selectProficiencyEditCommand = new RelayCommand(obj => true, obj => SelectProficiencyEdit());

            _compendium.CharacterChanged += _compendium_CharacterChanged;

            Search();
        }
コード例 #17
0
 public SimplifyKroneckerDeltas2(XMLImporter xmlImporter, TextResolver textResolver, LayoutConverter layoutConverter) : base(xmlImporter, textResolver, layoutConverter)
 {
 }
コード例 #18
0
 public DefineThePoissonEquation(XMLImporter xmlImporter, TextResolver textResolver, LayoutConverter layoutConverter) : base(xmlImporter, textResolver, layoutConverter)
 {
 }
コード例 #19
0
 public CalculateTheBeatFrequency1(XMLImporter xmlImporter, TextResolver textResolver, LayoutConverter layoutConverter) : base(xmlImporter, textResolver, layoutConverter)
 {
 }
コード例 #20
0
 public EvaluateTheKroneckerDelta(XMLImporter xmlImporter, TextResolver textResolver, LayoutConverter layoutConverter) : base(xmlImporter, textResolver, layoutConverter)
 {
 }
コード例 #21
0
        private void ReadCharacterArchive(Stream stream)
        {
            XMLImporter xmlImporter = new XMLImporter(_stringService);

            using (ZipArchive archive = new ZipArchive(stream, ZipArchiveMode.Read))
            {
                ZipArchiveEntry backgroundsEntry = archive.GetEntry("resources/backgrounds.xml");
                using (StreamReader reader = new StreamReader(backgroundsEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _backgrounds.AddRange(xmlImporter.ReadBackgrounds(xml));
                }

                ZipArchiveEntry classesEntry = archive.GetEntry("resources/classes.xml");
                using (StreamReader reader = new StreamReader(classesEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _classes.AddRange(xmlImporter.ReadClasses(xml));
                }

                ZipArchiveEntry conditionsEntry = archive.GetEntry("resources/conditions.xml");
                using (StreamReader reader = new StreamReader(conditionsEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _conditions.AddRange(xmlImporter.ReadConditions(xml));
                }

                ZipArchiveEntry featsEntry = archive.GetEntry("resources/feats.xml");
                using (StreamReader reader = new StreamReader(featsEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _feats.AddRange(xmlImporter.ReadFeats(xml));
                }

                ZipArchiveEntry itemsEntry = archive.GetEntry("resources/items.xml");
                using (StreamReader reader = new StreamReader(itemsEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _items.AddRange(xmlImporter.ReadItems(xml));
                }

                ZipArchiveEntry languagesEntry = archive.GetEntry("resources/languages.csv");
                using (StreamReader reader = new StreamReader(languagesEntry.Open(), Encoding.UTF8))
                {
                    while (!reader.EndOfStream)
                    {
                        string languageLine = reader.ReadLine();
                        if (!String.IsNullOrWhiteSpace(languageLine))
                        {
                            string[] parts = languageLine.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                            if (parts.Length == 2)
                            {
                                if (Guid.TryParse(parts[0], out Guid id))
                                {
                                    LanguageModel languageModel = new LanguageModel();
                                    languageModel.Id   = id;
                                    languageModel.Name = parts[1].Trim();
                                    _languages.Add(languageModel);
                                }
                            }
                        }
                    }
                }

                ZipArchiveEntry monstersEntry = archive.GetEntry("resources/monsters.xml");
                using (StreamReader reader = new StreamReader(monstersEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _monsters.AddRange(xmlImporter.ReadMonsters(xml));
                }

                ZipArchiveEntry racesEntry = archive.GetEntry("resources/races.xml");
                using (StreamReader reader = new StreamReader(racesEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _races.AddRange(xmlImporter.ReadRaces(xml));
                }

                ZipArchiveEntry spellsEntry = archive.GetEntry("resources/spells.xml");
                using (StreamReader reader = new StreamReader(spellsEntry.Open(), Encoding.UTF8))
                {
                    string xml = reader.ReadToEnd();
                    _spells.AddRange(xmlImporter.ReadSpells(xml));
                }

                ZipArchiveEntry characterEntry = archive.GetEntry("character.ccc");
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    using (Stream characterEntryStream = characterEntry.Open())
                    {
                        characterEntryStream.CopyTo(memoryStream);
                        _characters.Add(memoryStream.ToArray());
                    }
                }
            }
        }
コード例 #22
0
        private void button1_Click(object sender, EventArgs e)
        {
            var importer = new XMLImporter();

            importer.Import();
        }
コード例 #23
0
        private void RestoreDefaultCompendium()
        {
            string message = "IMPORTANT!" + Environment.NewLine + Environment.NewLine +
                             "This cannot be undone!" + Environment.NewLine + Environment.NewLine +
                             "Restoring your default compendium will remove any custom or imported entries to your compendium. " +
                             "Characters, Encounters, and any custom content they contain will not be removed but may be replaced." + Environment.NewLine + Environment.NewLine +
                             "Are you sure you want to restore the default compendium?";

            bool?result = _dialogService.ShowConfirmationDialog("Restore Default Compendium", message, "Yes", "No", null);

            if (result == true)
            {
                XMLImporter importer = new XMLImporter(_stringService);
                importer.LoadManifestResourceXML("default_compendium.xml");

                List <BackgroundModel> backgrounds = importer.ReadBackgrounds();
                List <ClassModel>      classes     = importer.ReadClasses();
                List <ConditionModel>  conditions  = importer.ReadConditions();
                List <FeatModel>       feats       = importer.ReadFeats();
                List <ItemModel>       items       = importer.ReadItems();
                List <MonsterModel>    monsters    = importer.ReadMonsters();
                List <RaceModel>       races       = importer.ReadRaces();
                List <SpellModel>      spells      = importer.ReadSpells();
                List <LanguageModel>   languages   = importer.LanguagesFound;

                foreach (CharacterModel character in _compendium.Characters)
                {
                    if (character.Background != null &&
                        !backgrounds.Any(x => x.Name.Equals(character.Background.Name, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        backgrounds.Add(character.Background);
                    }

                    if (character.Race != null &&
                        !races.Any(x => x.Name.Equals(character.Race.Name, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        races.Add(character.Race);
                    }

                    foreach (LevelModel level in character.Levels)
                    {
                        if (level.Class != null)
                        {
                            ClassModel defaultClass = classes.FirstOrDefault(x => x.Name.Equals(level.Class.Name, StringComparison.CurrentCultureIgnoreCase));
                            if (defaultClass == null)
                            {
                                classes.Add(level.Class);
                            }
                            else
                            {
                                if (defaultClass.AutoLevels.Count != level.Class.AutoLevels.Count)
                                {
                                    classes.Add(level.Class);
                                }
                                else
                                {
                                    for (int i = 0; i < level.Class.AutoLevels.Count; ++i)
                                    {
                                        if (level.Class.AutoLevels[i].Features.Count != defaultClass.AutoLevels[i].Features.Count)
                                        {
                                            classes.Add(level.Class);
                                            break;
                                        }
                                    }
                                }
                            }
                        }

                        foreach (FeatModel feat in level.Feats)
                        {
                            if (!feats.Any(x => x.Name.Equals(feat.Name, StringComparison.CurrentCultureIgnoreCase)))
                            {
                                feats.Add(feat);
                            }
                        }
                    }

                    foreach (LanguageModel language in character.Languages)
                    {
                        if (!languages.Any(x => x.Name.Equals(language.Name, StringComparison.CurrentCultureIgnoreCase)))
                        {
                            languages.Add(language);
                        }
                    }

                    foreach (AppliedConditionModel appliedCondition in character.Conditions)
                    {
                        if (appliedCondition.ConditionModel != null &&
                            !conditions.Any(x => x.Name.Equals(appliedCondition.ConditionModel.Name, StringComparison.CurrentCultureIgnoreCase)))
                        {
                            conditions.Add(appliedCondition.ConditionModel);
                        }
                    }

                    foreach (CompanionModel companion in character.Companions)
                    {
                        if (companion.MonsterModel != null &&
                            !monsters.Any(x => x.Name.Equals(companion.MonsterModel.Name, StringComparison.CurrentCultureIgnoreCase)))
                        {
                            monsters.Add(companion.MonsterModel);
                        }
                    }

                    foreach (BagModel bag in character.Bags)
                    {
                        foreach (EquipmentModel equipment in bag.Equipment)
                        {
                            if (equipment.Item != null &&
                                !items.Any(x => x.Name.Equals(equipment.Item.Name, StringComparison.CurrentCultureIgnoreCase)))
                            {
                                items.Add(equipment.Item);
                            }
                        }
                    }

                    foreach (SpellbookModel spellbook in character.Spellbooks)
                    {
                        foreach (SpellbookEntryModel spellbookEntry in spellbook.Spells)
                        {
                            if (spellbookEntry.Spell != null &&
                                !spells.Any(x => x.Name.Equals(spellbookEntry.Spell.Name, StringComparison.CurrentCultureIgnoreCase)))
                            {
                                spells.Add(spellbookEntry.Spell);
                            }
                        }
                    }
                }

                foreach (EncounterModel encounter in _compendium.Encounters)
                {
                    foreach (EncounterMonsterModel encounterMonster in encounter.Creatures.Where(x => x is EncounterMonsterModel))
                    {
                        if (encounterMonster.MonsterModel != null &&
                            !monsters.Any(x => x.Name.Equals(encounterMonster.MonsterModel.Name, StringComparison.CurrentCultureIgnoreCase)))
                        {
                            monsters.Add(encounterMonster.MonsterModel);
                        }
                    }
                }

                _compendium.SetCompendium(backgrounds, classes, conditions, feats, items, languages, monsters, races, spells);

                _compendium.SaveBackgrounds();
                _compendium.SaveClasses();
                _compendium.SaveConditions();
                _compendium.SaveFeats();
                _compendium.SaveItems();
                _compendium.SaveMonsters();
                _compendium.SaveRaces();
                _compendium.SaveSpells();
                _compendium.SaveLanguages();

                _compendium.NotifyImportComplete();

                base.OnAccept();
            }
        }