Пример #1
0
        public static string LoadTextAssestFile(string fileString, out DSAError error)
        {
            error = null;
            var retText       = string.Empty;
            var semaphoreSlim = new SemaphoreSlim(0);

            try
            {
                var task = new Task(async() =>
                {
                    var file = await GetAssestFileAsync(fileString, CreationCollisionOption.OpenIfExists);
                    retText  = await FileIO.ReadTextAsync(file);
                    semaphoreSlim.Release();
                });
                task.Start();
                semaphoreSlim.Wait();
            }
            catch (Exception ex)
            {
                error = new DSAError
                {
                    ErrorCode = ErrorCode.Error,
                    Message   = ex.Message
                };
                Logger.Log(LogLevel.ErrorLog, "Laden aus einer Datei fehlgeschlagen " + ex.Message, nameof(FileManagment), nameof(fileString));
            }

            return(retText);
        }
Пример #2
0
 public static void Log(LogLevel logLevel, DSAError error, [CallerMemberName] string callerMemberName = "", [CallerFilePath] string CallerFilePath = "", [CallerLineNumber] int callerLineNumber = 0)
 {
     if (error != null)
     {
         LogStrings.LogString(logLevel, error, callerMemberName, CallerFilePath, callerLineNumber);
     }
 }
Пример #3
0
        public static void WriteToFile(string message, string fileString, CreationCollisionOption option, out DSAError error)
        {
            error = null;

            try
            {
                var semaphoreSlim = new SemaphoreSlim(0);
                var task          = new Task(async() =>
                {
                    var file = await GetFileAsync(fileString, option);
                    await FileIO.AppendTextAsync(file, message);

                    semaphoreSlim.Release();
                });
                task.Start();
                semaphoreSlim.Wait();
            }
            catch (Exception ex)
            {
                error = new DSAError
                {
                    ErrorCode = ErrorCode.Error,
                    Message   = ex.Message
                };
                Logger.Log(LogLevel.ErrorLog, "Schreiben in Datei fehlgeschlagen " + ex.Message, nameof(FileManagment), nameof(fileString));
            }
        }
Пример #4
0
        public static List <string> GetFilesDictionary(string dictionaryString, out DSAError error)
        {
            var ret = new List <string>();

            error = null;

            try
            {
                DSAError innererror    = null;
                var      semaphoreSlim = new SemaphoreSlim(0);
                var      task          = new Task(async() =>
                {
                    try
                    {
                        var files = await GetFilesinFolderAsync(dictionaryString);
                        foreach (var item in files)
                        {
                            ret.Add(item.Name);
                        }
                    }
                    catch (Exception e)
                    {
                        innererror = new DSAError
                        {
                            ErrorCode = ErrorCode.Error,
                            Message   = e.Message
                        };
                    }
                    finally
                    {
                        semaphoreSlim.Release();
                    }
                });
                task.Start();
                semaphoreSlim.Wait();
                error = innererror;
            }
            catch (Exception ex)
            {
                error = new DSAError
                {
                    ErrorCode = ErrorCode.Error,
                    Message   = ex.Message
                };
                Logger.Log(LogLevel.ErrorLog, "Laden aus einer Datei fehlgeschlagen " + ex.Message, nameof(FileManagment), nameof(GetFilesDictionary));
            }

            return(ret);
        }
Пример #5
0
        private void XAML_LoadListView_ItemClick(object sender, ItemClickEventArgs e)
        {
            DSAError error     = null;
            var      charakter = (JSONCharakter)e.ClickedItem;

            charGivenName.TryGetValue(charakter, out bool givenName);

            if (givenName)
            {
                charakter.Name = string.Empty;
            }

            Game.LoadCharakter(charakter, out error);
            Game.RequestNav(new DSAProject.util.EventNavRequest {
                Side = NavEnum.StartPage
            });
        }
Пример #6
0
        public static void CharakterSave(out DSAError error)
        {
            error = null;
            try
            {
                var saveFile = Charakter.CreateSave();
                var filePath = Path.Combine(CharakterSaveFolder, Charakter.ID.ToString() + ".save");
                FileManagment.WriteToFile(saveFile.JSONContent, filePath, Windows.Storage.CreationCollisionOption.ReplaceExisting, out error);

                #region Sicherungskopie
                var task = new Task(async() =>
                {
                    try
                    {
                        var folder = await StorageFolder.GetFolderFromPathAsync("D:\\Dropbox\\07_DSA_PNP_D&D\\DSA_Save");
                        var sfile  = await folder.CreateFileAsync(Charakter.ID.ToString() + ".save", CreationCollisionOption.ReplaceExisting);
                        await FileIO.AppendTextAsync(sfile, saveFile.JSONContent);
                    }
                    catch (Exception)
                    {
                        Logger.Log(LogLevel.ErrorLog, "Sicherung konnte nicht erstellt werden");
                        //"https://support.microsoft.com/de-de/help/4468237/windows-10-file-system-access-and-privacy-microsoft-privacy"
                    }
                });
                task.Start();
                #endregion
            }
            catch (Exception ex)
            {
                error = new DSAError
                {
                    ErrorCode = ErrorCode.Error,
                    Message   = ex.Message
                };
            }
        }
Пример #7
0
        public static void SaveTalent(ITalent talent, GameType gameType, out DSAError error)
        {
            error = null;
            #region Talenttype
            List <JSONTalent> jTalentList = null;
            List <ITalent>    talentList  = null;
            var talenttype = talent.GetType().ToString();
            var lastIndex  = talenttype.LastIndexOf(".");
            talenttype = talenttype.Substring(lastIndex + 1);
            #endregion
            #region GameType
            if (gameType == GameType.DSA)
            {
                if (jSON_talentLocal.Talente == null)
                {
                    jSON_talentLocal.Talente = new List <JSONTalent>();
                }
                jTalentList = jSON_talentLocal.Talente;
                talentList  = TalentList;
            }
            else
            {
                throw new Exception();
            }
            #endregion

            try
            {
                var jsonTalent = TalentHelper.CreateJSON(
                    talent: talent);

                #region Doppelte Elemente Entfernen
                var jdoppledID = jTalentList.Where(x => x.ID == talent.ID).ToList();
                if (jdoppledID.Count > 0)
                {
                    jTalentList.Remove(jdoppledID[0]);
                }
                var tdoppledID = talentList.Where(x => x.ID == talent.ID).ToList();
                if (tdoppledID.Count > 0)
                {
                    tdoppledID.Remove(tdoppledID[0]);
                }
                #endregion
                #region Speichern
                jTalentList.Add(jsonTalent);

                if (!talentList.Contains(talent))
                {
                    talentList.Add(talent);
                }
                FileManagment.WriteToFile(jSON_talentLocal.JSONContent, talentSaveFile, Windows.Storage.CreationCollisionOption.ReplaceExisting, out error);
                #endregion
            }
            catch (Exception ex)
            {
                error = new DSAError
                {
                    ErrorCode = ErrorCode.InvalidValue,
                    Message   = ex.Message
                };
            }
        }
Пример #8
0
 public static void LoadCharakter(JSONCharakter json_charakter, out DSAError error)
 {
     error = null;
     charakter.Load(json_charakter, TalentList.ToList());
 }