public Asset CreateAsset(object assetValue, string path) { path = Paths.GetProjectRelativePath(path); var asset = GetAsset(path); if (asset != null) { asset.Importer.Value = assetValue; asset.Importer.SaveAsset(); asset.Update(); AssetUpdated?.Invoke(path); } else { asset = new Asset(path); asset.Importer.Value = assetValue; asset.Importer.SaveAsset(); asset.Update(); AddAssetInternal(asset); } AssetGuidManager.AddNewGuid(asset.Guid, asset.Path, asset.Hash); if (!IsEditingAssets) { AssetGuidManager.Save(); } return(asset); }
/// <summary> /// Deletes a computer from the database. /// </summary> /// <param name="asset">The computer to be deleted.</param> public override void DeleteAsset(Computer asset) { Db.Remove(asset); Db.SaveChanges(); AssetUpdated?.Invoke(); }
/// <summary> /// Adds a new computer to the database. /// </summary> /// <param name="assets">The computer to be added</param> public override void AddAssets(IEnumerable <Computer> assets) { Db.AddRange(assets); Db.SaveChanges(); AssetUpdated?.Invoke(); }
/// <summary> /// This should be called whenever asset value was modified on disk. Updates hashes and asset value while keeping the reference /// </summary> private void UpdateAssetInternal(Asset oldAsset) { oldAsset.UpdateValueFromDisk(); GuidHashTable[oldAsset.Guid] = oldAsset.Hash; AssetGuidManager.AddNewGuid(oldAsset.Guid, oldAsset.Path, oldAsset.Hash); AssetUpdated?.Invoke(oldAsset.Path); }
public override void AddAsset(Computer asset) { if (asset.AssetRecords.Count == 0) { asset.ComputerRecords.Add(InitialRecord(asset)); } Db.Add(asset); Db.SaveChanges(); AssetUpdated?.Invoke(); }
public void SaveExistngAsset(Asset existingAsset, object newValue) { existingAsset.Importer.Value = newValue; existingAsset.Importer.SaveAsset(); existingAsset.Update(); AssetUpdated?.Invoke(existingAsset.Path); AssetGuidManager.AddNewGuid(existingAsset.Guid, existingAsset.Path, existingAsset.Hash); if (!IsEditingAssets) { AssetGuidManager.Save(); } }
/// <summary> /// This method is invoked by a property change in a computer, /// which saves the changes to the database and invokes the AssetUpdated event. /// </summary> protected override void OnAssetUpdated() { Db.SaveChanges(); AssetUpdated?.Invoke(); }