public CharacterExtended(Character character, SINner mySINnerLoading = null, CharacterCache myCharacterCache = null, bool blnDoSave = true) : this(character, myCharacterCache, false) { if (mySINnerLoading == null) { return; } SINner backup = MySINnerFile; MySINnerFile = mySINnerLoading; if (MySINnerFile?.SiNnerMetaData == null) { return; } if (MySINnerFile.SiNnerMetaData.Id == Guid.Empty) { MySINnerFile.SiNnerMetaData.Id = backup.SiNnerMetaData.Id; } if (MySINnerFile.SiNnerMetaData.Tags?.Count < backup?.SiNnerMetaData?.Tags?.Count) { MySINnerFile.SiNnerMetaData.Tags = new List <Tag>(backup.SiNnerMetaData.Tags); } if (!blnDoSave || MySINnerFile.Id == null) { return; } if (MySINnerFile.Id == null) { MySINnerFile.Id = Guid.NewGuid(); } MySINnerIds.AddOrUpdate(MyCharacter.FileName, MySINnerFile.Id.Value, (x, y) => MySINnerFile.Id.Value); SaveSINnerIds(); //Save it! }
public CharacterExtended(Character character, CharacterCache myCharacterCache = null, bool blnDoSave = true) { MyCharacter = character ?? throw new ArgumentNullException(nameof(character)); MyCharacterCache = myCharacterCache ?? new CharacterCache(MyCharacter.FileName); MySINnerFile = new SINner { Language = GlobalSettings.Language, SiNnerMetaData = new SINnerMetaData { Id = Guid.NewGuid(), Tags = new List <Tag>(), Visibility = new SINnerVisibility { IsGroupVisible = true, IsPublic = true } } }; MySINnerFile.SiNnerMetaData.Visibility = Utils.DefaultSINnerVisibility; if (MySINnerFile.SiNnerMetaData.Visibility != null && MySINnerFile.SiNnerMetaData.Visibility.Id == null) { MySINnerFile.SiNnerMetaData.Visibility.Id = Guid.NewGuid(); } MySINnerFile.LastChange = MyCharacter.FileLastWriteTime; MySINnerFile.Id = MySINnerIds.TryGetValue(MyCharacter.FileName, out Guid singuid) ? singuid : Guid.NewGuid(); if (!blnDoSave) { return; } MySINnerIds.AddOrUpdate(MyCharacter.FileName, MySINnerFile.Id.Value, (x, y) => MySINnerFile.Id.Value); SaveSINnerIds(); //Save it! }