Пример #1
0
 public static void LoadConfig(string path)
 {
     try
     {
         if (!File.Exists(Path.Combine(path, "Config.xml")))
         {
             ConfigManager cm = new ConfigManager()
             {
                 PDF = new List <string>()
                 {
                     "DefaultPDF.xml", "AlternatePDF.xml"
                 }
             };
             cm.Save(Path.Combine(path, "Config.xml"));
         }
         ConfigManager loaded = Program.Context.LoadConfig(path);
         PDFExporter = PDF.Load(ImportExtensions.Fullpath(path, loaded.PDF[0]));
         Program.Context.LoadAbilityScores(ImportExtensions.Fullpath(path, loaded.AbilityScores));
     }
     catch (Exception e)
     {
         System.Windows.Forms.MessageBox.Show(e.Message + "\n" + e.InnerException + "\n" + e.StackTrace, "Error while Loading Configuration");
         Program.Exit();
     }
 }
 public static void LoadData()
 {
     Context.LoadPluginManager(Path.Combine(Application.StartupPath, Context.Config.Plugins_Directory));
     Context.LoadLevel(ImportExtensions.Fullpath(Application.StartupPath, "Levels.xml"));
     Context.ImportZips(false);
     Context.ImportSkills(false);
     Context.ImportLanguages(false);
     Context.ImportSpells(false);
     Context.ImportItems(false);
     Context.ImportBackgrounds(false);
     Context.ImportRaces(false);
     Context.ImportSubRaces(false);
     Context.ImportStandaloneFeatures(false);
     Context.ImportConditions(false);
     Context.ImportMagic(false);
     Context.ImportClasses(false, true);
     Context.ImportSubClasses(false, true);
     foreach (ClassDefinition c in Context.Classes.Values)
     {
         c.ApplyKeywords(Context);
     }
     foreach (SubClass c in Context.SubClasses.Values)
     {
         c.ApplyKeywords(Context);
     }
     Context.ImportMonsters(false);
 }
Пример #3
0
 public static PDF Load(String file)
 {
     using (TextReader reader = new StreamReader(file))
     {
         PDF p = (PDF)PDF.Serializer.Deserialize(reader);
         p.File          = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.File);
         p.SpellFile     = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.SpellFile);
         p.ActionsFile   = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.ActionsFile);
         p.ActionsFile2  = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.ActionsFile2);
         p.LogFile       = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.LogFile);
         p.SpellbookFile = ImportExtensions.Fullpath(Path.GetDirectoryName(file), p.SpellbookFile);
         return(p);
     }
 }
Пример #4
0
        private void packToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (ItemCat.SelectedItem == null)
            {
                return;
            }
            Pack i = new Pack()
            {
                Source   = Program.Context.Config.DefaultSource,
                Category = ImportExtensions.Make(Program.Context, (string)ItemCat.SelectedItem)
            };
            PackForm r = new PackForm(i);

            r.Saved += ItemSaved;
            r.Show();
        }
Пример #5
0
 public static void LoadData()
 {
     Context.LoadPluginManager(Path.Combine(Application.StartupPath, Context.Config.Plugins_Directory));
     Context.LoadLevel(ImportExtensions.Fullpath(Application.StartupPath, "Levels.xml"));
     Context.ImportSkills();
     Context.ImportLanguages();
     Context.ImportSpells();
     Context.ImportItems();
     Context.ImportBackgrounds();
     Context.ImportRaces();
     Context.ImportSubRaces();
     Context.ImportStandaloneFeatures();
     Context.ImportConditions();
     Context.ImportMagic();
     Context.ImportClasses(true);
     Context.ImportSubClasses(true);
 }
Пример #6
0
        private void ItemCats_SelectedIndexChanged(object sender, EventArgs e)
        {
            string cat = (string)ItemCat.SelectedItem;

            ItemBox.Items.Clear();
            NewItemCat.Enabled = false;
            NewItem.Enabled    = false;
            if (cat != null)
            {
                NewItemCat.Enabled = true;
                NewItem.Enabled    = true;
                Category category = ImportExtensions.Make(Program.Context, cat);
                foreach (Item i in from i in Program.Context.Items.Values where category.Equals(i.Category) orderby i.Name select i)
                {
                    ItemBox.Items.Add(i);
                }
            }
        }
Пример #7
0
        public static bool Save(this MagicProperty mp, Boolean overwrite)
        {
            mp.Name = mp.Name.Replace(ConfigManager.SourceSeperator, '-');
            MagicProperty o = null;

            if (Program.Context.Magic.ContainsKey(mp.Name + " " + ConfigManager.SourceSeperator + " " + mp.Source))
            {
                o = Program.Context.Magic[mp.Name + " " + ConfigManager.SourceSeperator + " " + mp.Source];
            }
            if (o != null && o.Category != mp.Category)
            {
                throw new Exception("Magic Property needs a unique name");
            }
            FileInfo file = SourceManager.GetFileName(mp.Name, mp.Source, ImportExtensions.MagicPropertyCleanname(Program.Context, mp.Category));

            if (file.Exists && (mp.FileName == null || !mp.FileName.Equals(file.FullName)) && !overwrite)
            {
                return(false);
            }
            using (TextWriter writer = new StreamWriter(file.FullName)) MagicProperty.Serializer.Serialize(writer, mp);
            mp.FileName = file.FullName;
            return(true);
        }
Пример #8
0
        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            TabPage tab = TabControls.SelectedTab;

            if (tab == racesTab)
            {
                Program.Context.ImportRaces();
                foreach (Race r in Program.Context.Races.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                Program.Context.ImportSubRaces();
                foreach (SubRace r in Program.Context.SubRaces.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                fill(racesList, Program.Context.Races.Keys, null);
                fill(subRaceList, Program.Context.SubRaces.Keys, null);
            }
            else if (tab == featuresTab)
            {
                Program.Context.ImportStandaloneFeatures();
                foreach (List <FeatureContainer> rr in Program.Context.FeatureContainers.Values)
                {
                    foreach (FeatureContainer r in rr)
                    {
                        CheckFeatures(r.Features, r.category + ":" + r.Name, r.Source);
                    }
                }
                FeatCats.Items.Clear();
                FeatCats.Items.Add("Feats");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Features_Directory))
                {
                    FeatCats.Items.Add(s);
                }
            }
            else if (tab == classesTab)
            {
                Program.Context.ImportClasses();
                foreach (ClassDefinition r in Program.Context.Classes.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                    CheckFeatures(r.MulticlassingFeatures, r.Name, r.Source);
                    CheckFeatures(r.FirstClassFeatures, r.Name, r.Source);
                }
                fill(classList, Program.Context.Classes.Keys, null);
                Program.Context.ImportSubClasses();
                foreach (SubClass r in Program.Context.SubClasses.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                    CheckFeatures(r.MulticlassingFeatures, r.Name, r.Source);
                    CheckFeatures(r.FirstClassFeatures, r.Name, r.Source);
                }
                fill(subclassList, Program.Context.SubClasses.Keys, null);
            }
            else if (tab == langTab)
            {
                Program.Context.ImportLanguages();
                fill(langBox, Program.Context.Languages.Keys, null);
            }
            else if (tab == backTab)
            {
                Program.Context.ImportBackgrounds();
                foreach (Background r in Program.Context.Backgrounds.Values)
                {
                    CheckFeatures(r.Features, r.Name, r.Source);
                }
                fill(backBox, Program.Context.Backgrounds.Keys, null);
            }
            else if (tab == itemTab)
            {
                Program.Context.ImportItems();
                ItemCat.Items.Clear();
                ItemCat.Items.Add("Items");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Items_Directory))
                {
                    ItemCat.Items.Add(s);
                }
            }
            else if (tab == skillsTab)
            {
                Program.Context.ImportSkills();
                fill(skillList, Program.Context.Skills.Keys, null);
            }
            else if (tab == conditionsTab)
            {
                Program.Context.ImportConditions();
                fill(condList, Program.Context.Conditions.Keys, null);
            }
            else if (tab == monsterTab)
            {
                Program.Context.ImportMonsters();
                fill(monsterbox, Program.Context.Monsters.Keys, null);
            }
            else if (tab == levelTab)
            {
                Level c = Program.Context.LoadLevel(Program.Context.Config.Levels);
                LevelXP.Items          = c.Experience;
                LevelProficiency.Items = c.Proficiency;
            }
            else if (tab == arraysTab)
            {
                AbilityScores ab = Program.Context.LoadAbilityScores(Program.Context.Config.AbilityScores);
                PointBuyPoints.DataBindings.Clear();
                PointBuyPoints.DataBindings.Add("Value", ab, "PointBuyPoints", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyMin.DataBindings.Clear();
                PointBuyMin.DataBindings.Add("Value", ab, "PointBuyMinScore", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyMax.DataBindings.Clear();
                PointBuyMax.DataBindings.Add("Value", ab, "PointBuyMaxScore", true, DataSourceUpdateMode.OnPropertyChanged);
                MaxScore.DataBindings.Clear();
                MaxScore.DataBindings.Add("Value", ab, "DefaultMax", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyList.DataBindings.Clear();
                PointBuyList.DataBindings.Add("Start", ab, "PointBuyMinScore", true, DataSourceUpdateMode.OnPropertyChanged);
                PointBuyList.Items = ab.PointBuyCost;
                Arrays.Items       = ab.Arrays;
            }
            else if (tab == spellsTab)
            {
                Program.Context.ImportSpells();
                fill(spellBox, Program.Context.Spells.Keys, null);
            }
            else if (tab == magicTab)
            {
                Program.Context.ImportMagic();
                foreach (MagicProperty r in Program.Context.Magic.Values)
                {
                    CheckFeatures(r.AttunedEquipFeatures, r.Name, r.Source);
                    CheckFeatures(r.AttunedOnUseFeatures, r.Name, r.Source);
                    CheckFeatures(r.AttunementFeatures, r.Name, r.Source);
                    CheckFeatures(r.CarryFeatures, r.Name, r.Source);
                    CheckFeatures(r.EquipFeatures, r.Name, r.Source);
                    CheckFeatures(r.OnUseFeatures, r.Name, r.Source);
                }
                magicCatBox.Items.Clear();
                magicCatBox.Items.Add("Magic");
                foreach (string s in ImportExtensions.EnumerateCategories(Program.Context, Program.Context.Config.Magic_Directory))
                {
                    magicCatBox.Items.Add(s);
                }
            }
            else if (tab == settingsTab)
            {
                DefaultSource.AutoCompleteCustomSource.Clear();
                DefaultSource.AutoCompleteCustomSource.AddRange(SourceManager.Sources.ToArray());
            }
        }
Пример #9
0
        static void Main(string[] args)
        {
            string server, projectId, username, password;

            if (args == null || args.Length < 4)
            {
                Console.WriteLine("Missing arguments.");
                return;
            }
            else
            {
                server    = args[0];
                projectId = args[1];
                username  = args[2];
                password  = args[3];
            }

            Console.WriteLine("----------------------NR CSV to API----------------------");
            Console.WriteLine("Authenticating...");

            DataAPIClient apiClient = new DataAPIClient(new System.Net.Http.HttpClient(), true)
            {
                BaseUri = new Uri(server)
            };

            apiClient.HttpClient.Timeout = Timeout.InfiniteTimeSpan;

            //authorize
            TokenResponse tokenResponse = AccountExtensions.GetToken(apiClient.Account, new TokenRequest(username, password));

            apiClient.HttpClient.DefaultRequestHeaders.Authorization
                = new AuthenticationHeaderValue("Bearer", tokenResponse.AccessToken);
            if (tokenResponse.AccessToken == null || tokenResponse.AccessToken == "")
            {
                Console.WriteLine("AUTHENTICATION FAILED");
                return;
            }
            else
            {
                Console.WriteLine("Authentication COMPLETED!");
            }

            Console.WriteLine("Mapping data from CSV...");

            string filelocation = Path.Combine(Environment.CurrentDirectory + "\\..\\..\\Data\\csv\\test.csv");

            //Mapping CSV data into C# object
            List <CSVData> csvData = DataMapper.getMappedDataFromCSV(filelocation);

            JSONModel uploadData = new JSONModel();

            //Mapping MetaData for JSONModel
            DataMapper.getMetadataForImport().ForEach(uploadData.MetaData.Add);
            //Mapping CaseData for JSONModel
            DataMapper.getCasedataForImport(csvData).ForEach(uploadData.CaseData.Add);
            //Serializing JSONModel C# Object to JSON Object
            var json = new JavaScriptSerializer().Serialize(uploadData);

            Console.WriteLine("Mapping COMPLETED!");

            //Import API of JSON Object data
            Console.WriteLine("Importing data to the server");
            dynamic  importInput    = json;
            Response importResponse = ImportExtensions.PostImport(apiClient.Import, importInput, projectId);

            if (importResponse.Data == null || tokenResponse.AccessToken == "")
            {
                Console.WriteLine("DATA IMPORT FAILED");
                return;
            }
            else
            {
                Console.WriteLine("Import COMPLETED!");
            }

            //GET Import Batches API
            PagedInputOfBatchFilterInput batchFilterInput = new PagedInputOfBatchFilterInput()
            {
                Paging = new PagingInput()
                {
                    PageNumber = 1,
                    PageSize   = 10
                }
            };
            Response batches = ImportExtensions.Batches(apiClient.Import, batchFilterInput, projectId);

            //Isolating ImportId for activation from batches.Data string
            var Ids = batches.Data.ToString();

            Ids = Ids.Substring(Ids.IndexOf("ImportID") + 11, Ids.Length - (Ids.IndexOf("ImportID") + 11));
            Ids = Ids.Substring(0, Ids.IndexOf("\r") - 1);
            string[]     parsedIds      = Ids.Split(',');
            List <long?> IdsToActivates = new List <long?>();

            foreach (string s in parsedIds)
            {
                if (Int32.TryParse(s, out int result))
                {
                    IdsToActivates.Add(result);
                }
            }

            Console.WriteLine("Activating data on the server...");

            //Activate Import Batches API
            ActivateInput activateInput = new ActivateInput()
            {
                IdsToActivate   = IdsToActivates,
                IdsToDeactivate = new List <long?>()
            };

            ActivationExtensions.Activate(apiClient.Activation, activateInput, projectId);

            //GET Activation History API
            PagedInputOfActivationHistoryFilterInput historyFilterInput = new PagedInputOfActivationHistoryFilterInput()
            {
                Paging = new PagingInput()
                {
                    PageNumber = 1,
                    PageSize   = 10
                }
                ,
                Sorting = new SortingInput()
                {
                    OrderBy   = "ActivationTime",
                    Ascending = false
                }
            };
            Response activationHistory = ActivationExtensions.History(apiClient.Activation, historyFilterInput, projectId);

            //Isolating last history record for valdiation
            var history = activationHistory.Data.ToString();

            history = history.Substring(history.IndexOf("ActivationTime") + 18, history.Length - (history.IndexOf("ActivationTime") + 18));
            history = history.Substring(0, history.IndexOf("\r") - 3);
            if (DateTime.TryParse(history, out DateTime lastHistory))
            {
                if (lastHistory > DateTime.Now.AddMinutes(-60))
                {
                    Console.WriteLine("Data activation COMPLETED!");
                }
                else
                {
                    Console.WriteLine("DATA ACTIVATION FAILED");
                    return;
                }
            }
            else
            {
                Console.WriteLine("DATA ACTIVATION FAILED");
                return;
            }
        }