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); }
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); } }
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)); } }
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); }
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 }); }
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 }; } }
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 }; } }
public static void LoadCharakter(JSONCharakter json_charakter, out DSAError error) { error = null; charakter.Load(json_charakter, TalentList.ToList()); }