Example #1
0
        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!
        }
Example #2
0
        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!
        }